diff --git a/404.html b/404.html new file mode 100644 index 0000000..5cdd070 --- /dev/null +++ b/404.html @@ -0,0 +1,1739 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 404: Page not found | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ 404: Page not found +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +

+ 404: Page not found +

+
+ + + + +

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.

+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md deleted file mode 100644 index 2fc12ed..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -Empty file for CI \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..20db61c --- /dev/null +++ b/about/index.html @@ -0,0 +1,1740 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + About | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ About +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +

+ About +

+
+

Hi, I’m Quinn!

+ +

I’m a web dev by day and a writer by night. I write poetry and essays about sexuality, gender, journaling, mental health and much more, as well as LGBTQ+ short stories.

+ +

Find me on Mastodon @cookie@courgett.es or by email (quinn.morrigan(at)proton.me).

+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app.min.js b/app.min.js new file mode 100644 index 0000000..f4ba783 --- /dev/null +++ b/app.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";const e=new Map;var t={set(t,n,o){e.has(t)||e.set(t,new Map);const r=e.get(t);r.has(n)||0===r.size?r.set(n,o):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(r.keys())[0]}.`)},get:(t,n)=>e.has(t)&&e.get(t).get(n)||null,remove(t,n){if(!e.has(t))return;const o=e.get(t);o.delete(n),0===o.size&&e.delete(t)}};const n="transitionend",o=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),r=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),i=e=>r(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(o(e)):null,s=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),a=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,l=[],c=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},u=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void c(e);const o=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const o=Number.parseFloat(t),r=Number.parseFloat(n);return o||r?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const i=o=>{let{target:s}=o;s===t&&(r=!0,t.removeEventListener(n,i),c(e))};t.addEventListener(n,i),setTimeout((()=>{r||t.dispatchEvent(new Event(n))}),o)},d=/[^.]*(?=\..*)\.|.*/,f=/\..*/,h=/::\d+$/,g={};let m=1;const p={mouseenter:"mouseover",mouseleave:"mouseout"},b=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function v(e,t){return t&&`${t}::${m++}`||e.uidEvent||m++}function _(e){const t=v(e);return e.uidEvent=t,g[t]=g[t]||{},g[t]}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function E(e,t,n){const o="string"==typeof t,r=o?n:t||n;let i=C(e);return b.has(i)||(i=e),[o,r,i]}function w(e,t,n,o,r){if("string"!=typeof t||!e)return;let[i,s,a]=E(t,n,o);if(t in p){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=_(e),c=l[a]||(l[a]={}),u=y(c,s,i?n:null);if(u)return void(u.oneOff=u.oneOff&&r);const f=v(s,t.replace(d,"")),h=i?function(e,t,n){return function o(r){const i=e.querySelectorAll(t);for(let{target:s}=r;s&&s!==this;s=s.parentNode)for(const a of i)if(a===s)return T(r,{delegateTarget:s}),o.oneOff&&O.off(e,r.type,t,n),n.apply(s,[r])}}(e,n,s):function(e,t){return function n(o){return T(o,{delegateTarget:e}),n.oneOff&&O.off(e,o.type,t),t.apply(e,[o])}}(e,s);h.delegationSelector=i?n:null,h.callable=s,h.oneOff=r,h.uidEvent=f,c[f]=h,e.addEventListener(a,h,i)}function A(e,t,n,o,r){const i=y(t[n],o,r);i&&(e.removeEventListener(n,i,Boolean(r)),delete t[n][i.uidEvent])}function S(e,t,n,o){const r=t[n]||{};for(const[i,s]of Object.entries(r))i.includes(o)&&A(e,t,n,s.callable,s.delegationSelector)}function C(e){return e=e.replace(f,""),p[e]||e}const O={on(e,t,n,o){w(e,t,n,o,!1)},one(e,t,n,o){w(e,t,n,o,!0)},off(e,t,n,o){if("string"!=typeof t||!e)return;const[r,i,s]=E(t,n,o),a=s!==t,l=_(e),c=l[s]||{},u=t.startsWith(".");if(void 0===i){if(u)for(const n of Object.keys(l))S(e,l,n,t.slice(1));for(const[n,o]of Object.entries(c)){const r=n.replace(h,"");a&&!t.includes(r)||A(e,l,s,o.callable,o.delegationSelector)}}else{if(!Object.keys(c).length)return;A(e,l,s,i,r?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const o=a();let r=null,i=!0,s=!0,l=!1;t!==C(t)&&o&&(r=o.Event(t,n),o(e).trigger(r),i=!r.isPropagationStopped(),s=!r.isImmediatePropagationStopped(),l=r.isDefaultPrevented());const c=T(new Event(t,{bubbles:i,cancelable:!0}),n);return l&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&r&&r.preventDefault(),c}};function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,o]of Object.entries(t))try{e[n]=o}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>o})}return e}function $(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function N(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const j={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${N(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${N(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const o of n){let n=o.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=$(e.dataset[o])}return t},getDataAttribute:(e,t)=>$(e.getAttribute(`data-bs-${N(t)}`))};class D{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=r(t)?j.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...r(t)?j.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[o,i]of Object.entries(t)){const t=e[o],s=r(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(s))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${o}" provided type "${s}" but expected type "${i}".`)}var n}}class I extends D{constructor(e,n){super(),(e=i(e))&&(this._element=e,this._config=this._getConfig(n),t.set(this._element,this.constructor.DATA_KEY,this))}dispose(){t.remove(this._element,this.constructor.DATA_KEY),O.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){u(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return t.get(i(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const L=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>o(e))).join(","):null},k={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let o=e.parentNode.closest(t);for(;o;)n.push(o),o=o.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!s(e)&&(e=>{if(!r(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=L(e);return t&&k.findOne(t)?t:null},getElementFromSelector(e){const t=L(e);return t?k.findOne(t):null},getMultipleElementsFromSelector(e){const t=L(e);return t?k.find(t):[]}},M=".bs.toast",K=`mouseover${M}`,q=`mouseout${M}`,x=`focusin${M}`,P=`focusout${M}`,W=`hide${M}`,Y=`hidden${M}`,F=`show${M}`,V=`shown${M}`,Q="hide",R="show",z="showing",B={animation:"boolean",autohide:"boolean",delay:"number"},H={animation:!0,autohide:!0,delay:5e3};class U extends I{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return H}static get DefaultType(){return B}static get NAME(){return"toast"}show(){if(O.trigger(this._element,F).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove(Q),this._element.offsetHeight,this._element.classList.add(R,z),this._queueCallback((()=>{this._element.classList.remove(z),O.trigger(this._element,V),this._maybeScheduleHide()}),this._element,this._config.animation)}hide(){if(!this.isShown())return;if(O.trigger(this._element,W).defaultPrevented)return;this._element.classList.add(z),this._queueCallback((()=>{this._element.classList.add(Q),this._element.classList.remove(z,R),O.trigger(this._element,Y)}),this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(R),super.dispose()}isShown(){return this._element.classList.contains(R)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){O.on(this._element,K,(e=>this._onInteraction(e,!0))),O.on(this._element,q,(e=>this._onInteraction(e,!1))),O.on(this._element,x,(e=>this._onInteraction(e,!0))),O.on(this._element,P,(e=>this._onInteraction(e,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each((function(){const t=U.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}var G,J;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"hide";const n=`click.dismiss${e.EVENT_KEY}`,o=e.NAME;O.on(document,n,`[data-bs-dismiss="${o}"]`,(function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),s(this))return;const r=k.getElementFromSelector(this)||this.closest(`.${o}`);e.getOrCreateInstance(r)[t]()}))}(U),G=U,J=()=>{const e=a();if(e){const t=G.NAME,n=e.fn[t];e.fn[t]=G.jQueryInterface,e.fn[t].Constructor=G,e.fn[t].noConflict=()=>(e.fn[t]=n,G.jQueryInterface)}},"loading"===document.readyState?(l.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of l)e()})),l.push(J)):J(),"serviceWorker"in navigator){const e="/sw.min.js",t=document.getElementById("notification"),n=t.querySelector(".toast-body>button"),o=U.getOrCreateInstance(t);navigator.serviceWorker.register(e).then((e=>{e.waiting&&o.show(),e.addEventListener("updatefound",(()=>{e.installing.addEventListener("statechange",(()=>{e.waiting&&navigator.serviceWorker.controller&&o.show()}))})),n.addEventListener("click",(()=>{e.waiting&&e.waiting.postMessage("SKIP_WAITING"),o.hide()}))}));let r=!1;navigator.serviceWorker.addEventListener("controllerchange",(()=>{r||(window.location.reload(),r=!0)}))}}(); diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..7fb66a7 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,2102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Archives | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Archives +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + +

+ Archives +

+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/css/jekyll-theme-chirpy.css b/assets/css/jekyll-theme-chirpy.css new file mode 100644 index 0000000..d6a1508 --- /dev/null +++ b/assets/css/jekyll-theme-chirpy.css @@ -0,0 +1 @@ +header .post-desc,#search-results a,h5,h4,h3,h2,h1{color:var(--heading-color);font-weight:400;font-family:Lato,"Microsoft Yahei",sans-serif}h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{font-size:80%}@media(hover: hover){h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{visibility:hidden;opacity:0;transition:opacity .25s ease-in,visibility 0s ease-in .25s}h5:hover .anchor,h4:hover .anchor,h3:hover .anchor,h2:hover .anchor{visibility:visible;opacity:1;transition:opacity .25s ease-in,visibility 0s ease-in 0s}}.post-tags .post-tag:hover,.tag:hover{background:var(--tag-hover);transition:background .35s ease-in-out}.table-wrapper>table tbody tr td,.table-wrapper>table thead th{padding:.4rem 1rem;font-size:95%;white-space:nowrap}#page-category a:hover,#page-tag a:hover,.post-tags .post-tag:hover,.post-tail-wrapper .license-wrapper>a:hover,#search-results a:hover,#topbar #breadcrumb a:hover,.content a:not(.img-link):hover,.post-meta a:not([class]):hover,#access-lastmod a:hover,footer a:hover{color:#d2603a !important;border-bottom:1px solid #d2603a;text-decoration:none}#search-results a,#search-hints .post-tag,a{color:var(--link-color)}.post-tail-wrapper .post-meta a:not(:hover),.content a:not(.img-link){border-bottom:1px solid var(--link-underline-color)}#sidebar .sidebar-bottom a,#sidebar .site-title a,#sidebar .profile-wrapper{transition:all .3s ease-in-out}#sidebar .sidebar-bottom .icon-border,.content a.popup,i.far,i.fas,.code-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#page-category ul>li>a,#page-tag ul>li>a,.post-tags .post-tag:hover,#search-results a,main .categories a:not(:hover),main #tags a:not(:hover),main #archives a:not(:hover),#access-lastmod a{border-bottom:none}.post-tail-wrapper .share-wrapper .share-icons button,#search-cancel,.code-header button{cursor:pointer}#related-posts time,#post-list .card .card-body .post-meta em,.post-meta em{font-style:normal}.categories.card,.categories .list-group,.embed-video,.post-preview::before,.post-preview,.preview-img img,.preview-img,blockquote[class^=prompt-],.code-header button,div[class^=language-],.highlight{border-radius:10px}.embed-audio+em,.embed-video+em,.content a.popup+em{display:block;text-align:center;font-style:normal;font-size:80%;padding:0;color:#6d6c6c}#sidebar .sidebar-bottom #mode-toggle,#sidebar a{color:var(--sidebar-muted-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#related-posts .card h4,#post-list .card .card-body .card-text.content p,#post-list .card .card-body .card-title{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.post-tail-wrapper .license-wrapper>a,header .post-meta em,header .post-meta time,footer em,footer a{color:var(--text-muted-highlight-color);font-weight:600}.post-tail-wrapper .license-wrapper span:last-child,.post-tail-wrapper,.post-meta{font-size:.85rem}#related-posts time,footer{font-size:.8rem}sup:target,.footnotes>ol>li:target{background-color:var(--footnote-target-bg);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;transition:background-color 1.75s ease-in-out}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: rgba(25, 25, 28, 0.05);--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html:not([data-mode]) .highlight table td,html[data-mode=light] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=light] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kd,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kt,html:not([data-mode]) .highlight .kv,html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html:not([data-mode]) .highlight .gr,html[data-mode=light] .highlight .gr{color:#f6f8fa}html:not([data-mode]) .highlight .gd,html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html:not([data-mode]) .highlight .nb,html[data-mode=light] .highlight .nb{color:#953800}html:not([data-mode]) .highlight .nc,html[data-mode=light] .highlight .nc{color:#953800}html:not([data-mode]) .highlight .no,html[data-mode=light] .highlight .no{color:#953800}html:not([data-mode]) .highlight .nn,html[data-mode=light] .highlight .nn{color:#953800}html:not([data-mode]) .highlight .sr,html[data-mode=light] .highlight .sr{color:#116329}html:not([data-mode]) .highlight .na,html[data-mode=light] .highlight .na{color:#116329}html:not([data-mode]) .highlight .nt,html[data-mode=light] .highlight .nt{color:#116329}html:not([data-mode]) .highlight .gi,html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html:not([data-mode]) .highlight .kc,html[data-mode=light] .highlight .kc{color:#0550ae}html:not([data-mode]) .highlight .l,html:not([data-mode]) .highlight .ld,html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html:not([data-mode]) .highlight .sb,html[data-mode=light] .highlight .sb{color:#0550ae}html:not([data-mode]) .highlight .bp,html[data-mode=light] .highlight .bp{color:#0550ae}html:not([data-mode]) .highlight .ne,html[data-mode=light] .highlight .ne{color:#0550ae}html:not([data-mode]) .highlight .nl,html[data-mode=light] .highlight .nl{color:#0550ae}html:not([data-mode]) .highlight .py,html[data-mode=light] .highlight .py{color:#0550ae}html:not([data-mode]) .highlight .nv,html:not([data-mode]) .highlight .vc,html:not([data-mode]) .highlight .vg,html:not([data-mode]) .highlight .vi,html:not([data-mode]) .highlight .vm,html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html:not([data-mode]) .highlight .gh,html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .gu,html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sa,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .se,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html:not([data-mode]) .highlight .ss,html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html:not([data-mode]) .highlight .nd,html[data-mode=light] .highlight .nd{color:#8250df}html:not([data-mode]) .highlight .nf,html:not([data-mode]) .highlight .fm,html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html:not([data-mode]) .highlight .err,html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cp,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html:not([data-mode]) .highlight .gl,html[data-mode=light] .highlight .gl{color:#68717a}html:not([data-mode]) .highlight .gt,html[data-mode=light] .highlight .gt{color:#68717a}html:not([data-mode]) .highlight .ni,html[data-mode=light] .highlight .ni{color:#24292f}html:not([data-mode]) .highlight .si,html[data-mode=light] .highlight .si{color:#24292f}html:not([data-mode]) .highlight .ge,html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html:not([data-mode]) .highlight .gs,html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: rgba(255, 255, 255, 0.05);--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html[data-mode=dark] .highlight .gp{color:#87939d}html[data-mode=dark] .highlight table td{padding:5px}html[data-mode=dark] .highlight table pre{margin:0}html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html[data-mode=dark] .highlight .cp{color:#f4bf75}html[data-mode=dark] .highlight .nt{color:#f4bf75}html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html[data-mode=dark] .highlight .gi{color:#90a959}html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html[data-mode=dark] .highlight .kc{color:#d28445}html[data-mode=dark] .highlight .kt{color:#d28445}html[data-mode=dark] .highlight .kd{color:#d28445}html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html[data-mode=dark] .highlight .sa{color:#aa759f}html[data-mode=dark] .highlight .sr{color:#75b5aa}html[data-mode=dark] .highlight .si{color:#b76d45}html[data-mode=dark] .highlight .se{color:#b76d45}html[data-mode=dark] .highlight .nn{color:#f4bf75}html[data-mode=dark] .highlight .nc{color:#f4bf75}html[data-mode=dark] .highlight .no{color:#f4bf75}html[data-mode=dark] .highlight .na{color:#6a9fb5}html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html[data-mode=dark] .highlight .ss{color:#90a959}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: rgba(255, 255, 255, 0.05);--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html:not([data-mode]) .highlight .gp,html[data-mode=dark] .highlight .gp{color:#87939d}html:not([data-mode]) .highlight table td,html[data-mode=dark] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=dark] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html:not([data-mode]) .highlight .err,html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html:not([data-mode]) .highlight .cp,html[data-mode=dark] .highlight .cp{color:#f4bf75}html:not([data-mode]) .highlight .nt,html[data-mode=dark] .highlight .nt{color:#f4bf75}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html:not([data-mode]) .highlight .p,html:not([data-mode]) .highlight .pi,html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html:not([data-mode]) .highlight .gi,html[data-mode=dark] .highlight .gi{color:#90a959}html:not([data-mode]) .highlight .gd,html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html:not([data-mode]) .highlight .gh,html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kv,html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html:not([data-mode]) .highlight .kc,html[data-mode=dark] .highlight .kc{color:#d28445}html:not([data-mode]) .highlight .kt,html[data-mode=dark] .highlight .kt{color:#d28445}html:not([data-mode]) .highlight .kd,html[data-mode=dark] .highlight .kd{color:#d28445}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sb,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html:not([data-mode]) .highlight .sa,html[data-mode=dark] .highlight .sa{color:#aa759f}html:not([data-mode]) .highlight .sr,html[data-mode=dark] .highlight .sr{color:#75b5aa}html:not([data-mode]) .highlight .si,html[data-mode=dark] .highlight .si{color:#b76d45}html:not([data-mode]) .highlight .se,html[data-mode=dark] .highlight .se{color:#b76d45}html:not([data-mode]) .highlight .nn,html[data-mode=dark] .highlight .nn{color:#f4bf75}html:not([data-mode]) .highlight .nc,html[data-mode=dark] .highlight .nc{color:#f4bf75}html:not([data-mode]) .highlight .no,html[data-mode=dark] .highlight .no{color:#f4bf75}html:not([data-mode]) .highlight .na,html[data-mode=dark] .highlight .na{color:#6a9fb5}html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html:not([data-mode]) .highlight .ss,html[data-mode=dark] .highlight .ss{color:#90a959}html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: rgba(25, 25, 28, 0.05);--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html[data-mode=light] .highlight table td{padding:5px}html[data-mode=light] .highlight table pre{margin:0}html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html[data-mode=light] .highlight .gr{color:#f6f8fa}html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html[data-mode=light] .highlight .nb{color:#953800}html[data-mode=light] .highlight .nc{color:#953800}html[data-mode=light] .highlight .no{color:#953800}html[data-mode=light] .highlight .nn{color:#953800}html[data-mode=light] .highlight .sr{color:#116329}html[data-mode=light] .highlight .na{color:#116329}html[data-mode=light] .highlight .nt{color:#116329}html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html[data-mode=light] .highlight .kc{color:#0550ae}html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html[data-mode=light] .highlight .sb{color:#0550ae}html[data-mode=light] .highlight .bp{color:#0550ae}html[data-mode=light] .highlight .ne{color:#0550ae}html[data-mode=light] .highlight .nl{color:#0550ae}html[data-mode=light] .highlight .py{color:#0550ae}html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html[data-mode=light] .highlight .nd{color:#8250df}html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html[data-mode=light] .highlight .gl{color:#68717a}html[data-mode=light] .highlight .gt{color:#68717a}html[data-mode=light] .highlight .ni{color:#24292f}html[data-mode=light] .highlight .si{color:#24292f}html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}}div[class^=language-],figure.highlight,.highlight{background-color:var(--highlight-bg-color)}td.rouge-code{padding-left:1rem;padding-right:1.5rem}.highlighter-rouge{color:var(--highlighter-rouge-color);margin-top:.5rem;margin-bottom:1.2em}.highlight{overflow:auto;padding-bottom:.75rem}.highlight pre{margin-bottom:0;font-size:.85rem;line-height:1.4rem;word-wrap:normal}.highlight table td:first-child{display:inline-block;margin-left:1rem;margin-right:.75rem}.highlight table td:last-child{padding-right:2rem !important}.highlight table td pre{overflow:visible;word-break:normal}.highlight .lineno{text-align:right;color:var(--highlight-lineno-color);-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}code{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;color:var(--code-color)}code.highlighter-rouge{font-size:.85rem;padding:3px 5px;word-break:break-word;border-radius:6px;background-color:var(--inline-code-bg)}code.filepath{background-color:inherit;color:var(--filepath-text-color);font-weight:600;padding:0}a>code.highlighter-rouge{padding-bottom:0;color:inherit}a:hover>code.highlighter-rouge{border-bottom:none}blockquote code{color:inherit}td.rouge-code a{color:inherit !important;border-bottom:none !important;pointer-events:none}div[class^=language-]{box-shadow:var(--language-border-color) 0 0 0 1px}.content>div[class^=language-]{margin-left:-1rem;margin-right:-1rem;border-radius:0}div[class^=language-] .highlight{border-top-left-radius:0;border-top-right-radius:0}div.nolineno td:first-child,div.language-plaintext td:first-child,div.language-console td:first-child,div.language-terminal td:first-child{padding:0 !important;margin-right:0}div.nolineno td:first-child .lineno,div.language-plaintext td:first-child .lineno,div.language-console td:first-child .lineno,div.language-terminal td:first-child .lineno{display:none}.code-header{display:flex;justify-content:space-between;align-items:center;height:2.25rem;margin-left:.75rem;margin-right:.25rem}.code-header span{line-height:2.25rem}.code-header span i{font-size:1rem;width:1.75rem;color:var(--code-header-icon-color)}.code-header span i.small{font-size:70%}[file] .code-header span>i{position:relative;top:1px}.code-header span::after{content:attr(data-label-text);font-size:.85rem;font-weight:600;color:var(--code-header-text-color)}.code-header button{border:1px solid rgba(0,0,0,0);height:2.25rem;width:2.25rem;padding:0;background-color:inherit}.code-header button i{color:var(--code-header-icon-color)}.code-header button[timeout]:hover{border-color:var(--clipboard-checked-color)}.code-header button[timeout] i{color:var(--clipboard-checked-color)}.code-header button:focus{outline:none}.code-header button:not([timeout]):hover{background-color:rgba(128,128,128,.37)}.code-header button:not([timeout]):hover i{color:#fff}@media all and (min-width: 576px){.content>div[class^=language-]{margin-left:0;margin-right:0;border-radius:10px}div[class^=language-] .code-header{margin-left:0;margin-right:0}div[class^=language-] .code-header::before{content:"";display:inline-block;margin-left:1rem;width:.75rem;height:.75rem;border-radius:50%;background-color:var(--code-header-muted-color);box-shadow:1.25rem 0 0 var(--code-header-muted-color),2.5rem 0 0 var(--code-header-muted-color)}div[class^=language-] .code-header span{margin-left:-0.875rem}}html{font-size:16px}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-highlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-color: gray;--btn-share-hover-color: #0d6efd;--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html:not([data-mode]) [class^=prompt-],html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html:not([data-mode]) .dark,html[data-mode=light] .dark{display:none}html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-highlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html[data-mode=dark] .light{display:none}html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html[data-mode=dark] #disqus_thread{color-scheme:none}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-highlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html:not([data-mode]) .light,html[data-mode=dark] .light{display:none}html:not([data-mode]) .categories.card,html:not([data-mode]) .list-group-item,html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html:not([data-mode]) .categories .card-header,html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html:not([data-mode]) .categories .list-group-item,html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html:not([data-mode]) .categories .list-group-item:last-child,html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html:not([data-mode]) #archives li:nth-child(odd),html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html:not([data-mode]) #disqus_thread,html[data-mode=dark] #disqus_thread{color-scheme:none}html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-highlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-color: gray;--btn-share-hover-color: #0d6efd;--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html[data-mode=light] .dark{display:none}}body{background:var(--main-bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--text-color);-webkit-font-smoothing:antialiased;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif}h1{font-size:2rem}main h2{margin:2.5rem 0 1.25rem}h2{font-size:1.54rem}main h3{margin:2rem 0 1rem}h3{font-size:1.36rem}main h4{margin:2rem 0 1rem}h4{font-size:1.18rem}h5{font-size:1.05rem}a{text-decoration:none}img{max-width:100%;height:auto;transition:all .35s ease-in-out}.blur img{-webkit-filter:blur(20px);filter:blur(20px)}blockquote{border-left:.125rem solid var(--blockquote-border-color);padding-left:1rem;color:var(--blockquote-text-color);margin-top:.5rem}blockquote>p:last-child{margin-bottom:0}blockquote[class^=prompt-]{border-left:0;position:relative;padding:1rem 1rem 1rem 3rem;color:var(--prompt-text-color)}blockquote[class^=prompt-]::before{text-align:center;width:3rem;position:absolute;left:.25rem;margin-top:.4rem;text-rendering:auto;-webkit-font-smoothing:antialiased}blockquote.prompt-tip{background-color:var(--prompt-tip-bg)}blockquote.prompt-tip::before{content:"";color:var(--prompt-tip-icon-color);font:var(--fa-font-regular)}blockquote.prompt-info{background-color:var(--prompt-info-bg)}blockquote.prompt-info::before{content:"";color:var(--prompt-info-icon-color);font:var(--fa-font-solid);transform:rotate(180deg)}blockquote.prompt-warning{background-color:var(--prompt-warning-bg)}blockquote.prompt-warning::before{content:"";color:var(--prompt-warning-icon-color);font:var(--fa-font-solid)}blockquote.prompt-danger{background-color:var(--prompt-danger-bg)}blockquote.prompt-danger::before{content:"";color:var(--prompt-danger-icon-color);font:var(--fa-font-solid)}kbd{font-family:Lato,sans-serif;display:inline-block;vertical-align:middle;line-height:1.3rem;min-width:1.75rem;text-align:center;margin:0 .3rem;padding-top:.1rem;color:var(--kbd-text-color);background-color:var(--kbd-bg-color);border-radius:6px;border:solid 1px var(--kbd-wrap-color);box-shadow:inset 0 -2px 0 var(--kbd-wrap-color)}hr{border-color:var(--main-border-color);opacity:1}footer{background-color:var(--main-bg);height:5rem;border-top:1px solid var(--main-border-color)}footer p{text-align:center;margin-bottom:0}.access{top:2rem;transition:top .2s ease-in-out;margin-top:3rem;margin-bottom:4rem}.access:only-child{position:-webkit-sticky;position:sticky}.access>section{padding-left:1rem;border-left:1px solid var(--main-border-color)}.access>section:not(:last-child){margin-bottom:4rem}.access .content{font-size:.9rem}#panel-wrapper .panel-heading{font-family:inherit;line-height:inherit;color:var(--label-color);font-size:inherit;font-weight:600}#panel-wrapper .post-tag{line-height:1.05rem;font-size:.85rem;border-radius:.8rem;padding:.3rem .5rem;margin:0 .35rem .5rem 0}#panel-wrapper .post-tag:hover{transition:all .3s ease-in}#access-lastmod a{color:inherit}.footnotes>ol{padding-left:2rem;margin-top:.5rem}.footnotes>ol>li:not(:last-child){margin-bottom:.3rem}.footnotes>ol>li>p{margin-left:.25em;margin-top:0;margin-bottom:0}a.footnote{margin-left:1px;margin-right:1px;padding-left:2px;padding-right:2px;border-bottom-style:none !important}a.reversefootnote{font-size:.6rem;line-height:1;position:relative;bottom:.25em;margin-left:.25em;border-bottom-style:none !important}.table-wrapper{overflow-x:auto;margin-bottom:1.5rem}.table-wrapper>table{min-width:100%;overflow-x:auto;border-spacing:0}.table-wrapper>table thead{border-bottom:solid 2px rgba(210,215,217,.75)}.table-wrapper>table tbody tr{border-bottom:1px solid var(--tb-border-color)}.table-wrapper>table tbody tr:nth-child(2n){background-color:var(--tb-even-bg)}.table-wrapper>table tbody tr:nth-child(2n+1){background-color:var(--tb-odd-bg)}.preview-img{aspect-ratio:40/21;width:100%;height:100%;overflow:hidden}.preview-img:not(.no-bg){background:var(--img-bg)}.preview-img img{height:100%;-o-object-fit:cover;object-fit:cover}#post-list .preview-img img{width:100%}.post-preview{border:0;background:var(--card-bg);box-shadow:var(--card-shadow)}.post-preview::before{content:"";width:100%;height:100%;position:absolute;background-color:var(--card-hovor-bg);opacity:0;transition:opacity .35s ease-in-out}.post-preview:hover::before{opacity:.3}main{line-height:1.6;text-align:justify}main h1{margin-top:2rem}main p>a.popup:not(.normal):not(.left):not(.right){position:relative;left:50%;transform:translateX(-50%)}.content{font-size:1.08rem;margin-top:2rem;overflow-wrap:break-word}.content a.popup{margin-top:.5rem;margin-bottom:.5rem;cursor:zoom-in}.content ol:not([class]),.content ol.task-list,.content ul:not([class]),.content ul.task-list{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ol:not([class]) li,.content ol.task-list li,.content ul:not([class]) li,.content ul.task-list li{margin:.25rem 0;padding-left:.25rem}.content ol:not([class]) ol,.content ol:not([class]) ul,.content ol.task-list ol,.content ol.task-list ul,.content ul:not([class]) ol,.content ul:not([class]) ul,.content ul.task-list ol,.content ul.task-list ul{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem;margin:.5rem 0}.content ul.task-list{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.content ul.task-list li{list-style-type:none;padding-left:0}.content ul.task-list li>i{width:2rem;margin-left:-1.25rem;color:var(--checkbox-color)}.content ul.task-list li>i.checked{color:var(--checkbox-checked-color)}.content ul.task-list li ul{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ul.task-list input[type=checkbox]{margin:0 .5rem .2rem -1.3rem;vertical-align:middle}.content dl>dd{margin-left:1rem}.content ::marker{color:var(--text-muted-color)}.post-tag{display:inline-block;min-width:2rem;text-align:center;border-radius:.5rem;border:1px solid var(--btn-border-color);padding:0 .4rem;color:var(--text-muted-color);line-height:1.3rem}.post-tag:not(:last-child){margin-right:.2rem}.rounded-10{border-radius:10px !important}.img-link{color:rgba(0,0,0,0);display:inline-flex}.shimmer{overflow:hidden;position:relative;background:var(--img-bg)}.shimmer::before{content:"";position:absolute;background:var(--shimmer-bg);height:100%;width:100%;-webkit-animation:shimmer 1.3s infinite;animation:shimmer 1.3s infinite}@-webkit-keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.embed-video{width:100%;height:100%;margin-bottom:1rem;aspect-ratio:16/9}.embed-video.twitch{aspect-ratio:310/189}.embed-video.file{display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto;margin-bottom:0}.embed-audio{width:100%;display:block}.btn-lang{border:1px solid !important;padding:1px 3px;border-radius:3px;color:var(--link-color)}.btn-lang:focus{box-shadow:none}.flex-grow-1{flex-grow:1 !important}.btn-box-shadow{box-shadow:var(--card-shadow)}.text-muted{color:var(--text-muted-color) !important}.tooltip-inner{font-size:.7rem;max-width:220px;text-align:left}.btn.btn-outline-primary:not(.disabled):hover{border-color:#007bff !important}.disabled{color:#cec4c4;pointer-events:auto;cursor:not-allowed}.hide-border-bottom{border-bottom:none !important}.input-focus{box-shadow:none;border-color:var(--input-focus-border-color) !important;background:center !important;transition:background-color .15s ease-in-out,border-color .15s ease-in-out}.left{float:left;margin:.75rem 1rem 1rem 0}.right{float:right;margin:.75rem 0 1rem 1rem}.mermaid{text-align:center}mjx-container{overflow-y:hidden;min-width:auto !important}#sidebar{padding-left:0;padding-right:0;position:fixed;top:0;left:0;height:100%;overflow-y:auto;width:260px;z-index:99;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border-color);-ms-overflow-style:none;scrollbar-width:none}#sidebar::-webkit-scrollbar{display:none}#sidebar .sidebar-bottom #mode-toggle:hover,#sidebar .sidebar-bottom a:hover,#sidebar .site-title a:hover{color:var(--sidebar-active-color)}#sidebar #avatar{display:block;width:7rem;height:7rem;overflow:hidden;box-shadow:var(--avatar-border-color) 0 0 0 2px;transform:translateZ(0)}#sidebar #avatar img{transition:transform .5s}#sidebar #avatar img:hover{transform:scale(1.2)}#sidebar .profile-wrapper{margin-top:2.5rem;margin-bottom:2.5rem;padding-left:2.5rem;padding-right:1.25rem;width:100%}#sidebar .site-title{font-family:inherit;font-weight:900;font-size:1.75rem;line-height:1.2;letter-spacing:.25px;margin-top:1.25rem;margin-bottom:.5rem}#sidebar .site-title a{color:var(--site-title-color)}#sidebar .site-subtitle{font-size:95%;color:var(--site-subtitle-color);margin-top:.25rem;word-spacing:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#sidebar ul{margin-bottom:2rem}#sidebar ul li.nav-item{opacity:.9;width:100%;padding-left:1.5rem;padding-right:1.5rem}#sidebar ul li.nav-item a.nav-link{padding-top:.6rem;padding-bottom:.6rem;display:flex;align-items:center;border-radius:.75rem;font-weight:600}#sidebar ul li.nav-item a.nav-link:hover{background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item a.nav-link i{font-size:95%;opacity:.8;margin-right:1.5rem}#sidebar ul li.nav-item a.nav-link span{font-size:90%;letter-spacing:.2px}#sidebar ul li.nav-item.active .nav-link{color:var(--sidebar-active-color);background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item.active .nav-link span{opacity:1}#sidebar ul li.nav-item:not(:first-child){margin-top:.25rem}#sidebar .sidebar-bottom{padding-left:2rem;padding-right:1rem;margin-bottom:1.5rem}#sidebar .sidebar-bottom #mode-toggle,#sidebar .sidebar-bottom a{width:1.75rem;height:1.75rem;margin-bottom:.5rem;border-radius:50%;color:var(--sidebar-btn-color);background-color:var(--sidebar-btn-bg);text-align:center;display:flex;align-items:center;justify-content:center}#sidebar .sidebar-bottom #mode-toggle:not(:focus-visible),#sidebar .sidebar-bottom a:not(:focus-visible){box-shadow:var(--sidebar-border-color) 0 0 0 1px}#sidebar .sidebar-bottom #mode-toggle:hover,#sidebar .sidebar-bottom a:hover{background-color:var(--sidebar-hover-bg)}#sidebar .sidebar-bottom a:not(:last-child){margin-right:.8rem}#sidebar .sidebar-bottom i{line-height:1.75rem}#sidebar .sidebar-bottom .icon-border{margin-left:calc((.8rem - 3px)/2);margin-right:calc((.8rem - 3px)/2);background-color:var(--sidebar-btn-color);content:"";width:3px;height:3px;border-radius:50%;margin-bottom:.5rem}@media(hover: hover){#sidebar ul>li:last-child::after{transition:top .5s ease}.nav-link{transition:background-color .3s ease-in-out}.post-preview{transition:background-color .35s ease-in-out}}#search-result-wrapper{display:none;height:100%;width:100%;overflow:auto}#search-result-wrapper .content{margin-top:2rem}#topbar-wrapper{height:3rem;background-color:var(--topbar-bg)}#topbar button i{color:#999}#topbar #breadcrumb{font-size:1rem;color:var(--text-muted-color);padding-left:.5rem}#topbar #breadcrumb span:not(:last-child)::after{content:"›";padding:0 .3rem}::-webkit-input-placeholder{color:var(--text-muted-color) !important}::-moz-placeholder{color:var(--text-muted-color) !important}:-ms-input-placeholder{color:var(--text-muted-color) !important}::-ms-input-placeholder{color:var(--text-muted-color) !important}::placeholder{color:var(--text-muted-color) !important}:focus::-webkit-input-placeholder{opacity:.6}:focus::-moz-placeholder{opacity:.6}:focus:-ms-input-placeholder{opacity:.6}:focus::-ms-input-placeholder{opacity:.6}:focus::placeholder{opacity:.6}search{display:flex;width:100%;border-radius:1rem;border:1px solid var(--search-border-color);background:var(--main-bg);padding:0 .5rem}search i{z-index:2;font-size:.9rem;color:var(--search-icon-color)}#sidebar-trigger,#search-trigger{display:none}#search-cancel{color:var(--link-color);display:none;white-space:nowrap}#search-input{background:center;border:0;border-radius:0;padding:.18rem .3rem;color:var(--text-color);height:auto}#search-input:focus{box-shadow:none}#search-hints{padding:0 1rem}#search-hints h4{margin-bottom:1.5rem}#search-hints .post-tag{display:inline-block;line-height:1rem;font-size:1rem;background:var(--search-tag-bg);border:none;padding:.5rem;margin:0 1.25rem 1rem 0}#search-hints .post-tag::before{content:"#";color:var(--text-muted-color);padding-right:.2rem}#search-results{padding-bottom:3rem}#search-results a{font-size:1.4rem;line-height:2.5rem}#search-results>article{width:100%}#search-results>article:not(:last-child){margin-bottom:1rem}#search-results>article i{color:#818182;margin-right:.15rem;font-size:80%}#search-results>article>p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}#topbar-title{display:none;font-size:1.1rem;font-weight:600;font-family:sans-serif;color:var(--topbar-text-color);text-align:center;width:70%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#mask{display:none;position:fixed;inset:0 0 0 0;height:100%;width:100%;z-index:1}[sidebar-display] #mask{display:block !important}#main-wrapper{position:relative;padding-left:0;padding-right:0}#main-wrapper>.container{min-height:100vh}#topbar-wrapper.row,#main-wrapper>.container>.row,#search-result-wrapper>.row{margin-left:0;margin-right:0}#tail-wrapper>:not(script){margin-top:3rem}#back-to-top{visibility:hidden;opacity:0;z-index:1;cursor:pointer;position:fixed;right:1rem;bottom:4.625rem;background:var(--button-bg);color:var(--btn-backtotop-color);padding:0;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--btn-backtotop-border-color);transition:opacity .5s ease-in-out,transform .2s ease-out}#back-to-top:hover{transform:translate3d(0, -5px, 0);-webkit-transform:translate3d(0, -5px, 0)}#back-to-top i{line-height:2.75rem;position:relative;bottom:2px}#back-to-top.show{opacity:1;visibility:visible}@-webkit-keyframes popup{from{opacity:0;bottom:0}}@keyframes popup{from{opacity:0;bottom:0}}#notification .toast-header{background:none;border-bottom:none;color:inherit}#notification .toast-body{font-family:Lato,sans-serif;line-height:1.25rem}#notification .toast-body button{font-size:90%;min-width:4rem}#notification.toast.show{display:block;min-width:20rem;border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:rgba(255,255,255,.5);color:rgba(27,27,30,.7294117647);position:fixed;left:50%;bottom:20%;transform:translateX(-50%);-webkit-animation:popup .8s;animation:popup .8s}@media all and (max-width: 576px){main .content>blockquote[class^=prompt-]{margin-left:-1rem;margin-right:-1rem;border-radius:0;max-width:none}#avatar{width:5rem;height:5rem}}@media all and (max-width: 768px){#main-wrapper>.container,#topbar{max-width:100%}#main-wrapper>.container{padding-left:0;padding-right:0}}@media all and (max-width: 849px){footer{transition:transform .4s ease;height:6rem;padding:1.5rem 0}[sidebar-display] #sidebar{transform:translateX(0)}[sidebar-display] #main-wrapper{transform:translateX(260px)}[sidebar-display] #back-to-top{visibility:hidden}#sidebar{transition:transform .4s ease;transform:translateX(-260px);-webkit-transform:translateX(-260px)}#main-wrapper{transition:transform .4s ease}#topbar,#main-wrapper>.container{max-width:100%}#search-result-wrapper{width:100%}#breadcrumb,search{display:none}#topbar-wrapper{transition:transform .4s ease,top .2s ease;left:0}main,#panel-wrapper{margin-top:0}#topbar-title,#sidebar-trigger,#search-trigger{display:block}#search-result-wrapper .content{letter-spacing:0}#tags{justify-content:center !important}h1.dynamic-title{display:none}h1.dynamic-title~.content{margin-top:2.5rem}}@media all and (min-width: 850px){html{overflow-y:scroll}#main-wrapper{margin-left:260px}#sidebar .profile-wrapper{margin-top:3rem}#search-hints{display:none}search{max-width:200px}#search-result-wrapper{max-width:1250px;justify-content:start !important}main h1{margin-top:3rem}div.content .table-wrapper>table{min-width:70%}#back-to-top{right:5%;bottom:3.625rem}#topbar-title{text-align:left}}@media all and (min-width: 992px)and (max-width: 1199px){#main-wrapper>.container .col-lg-11{flex:0 0 96%;max-width:96%}}@media all and (min-width: 850px)and (max-width: 1199px){#search-results>div{max-width:700px}#breadcrumb{width:65%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}}@media all and (max-width: 1199px){#panel-wrapper{display:none}#main-wrapper>.container>div.row{justify-content:center !important}}@media all and (min-width: 1200px){search{margin-right:4rem}#search-input{transition:all .3s ease-in-out}#search-results>article{width:45%}#search-results>article:nth-child(odd){margin-right:1.5rem}#search-results>article:nth-child(even){margin-left:1.5rem}#search-results>article:last-child:nth-child(odd){position:relative;right:24.3%}.content{font-size:1.03rem}}@media all and (min-width: 1400px){#back-to-top{right:calc((100vw - 260px - 1140px)/2 + 3rem)}}@media all and (min-width: 1650px){#main-wrapper{margin-left:300px}#topbar-wrapper{left:300px}search{margin-right:calc(112.5px - .75rem)}#main-wrapper>.container{max-width:1250px;padding-left:1.75rem !important;padding-right:1.75rem !important}main.col-12,#tail-wrapper{padding-right:4.5rem !important}#back-to-top{right:calc((100vw - 300px - 1250px)/2 + 2rem)}#sidebar{width:300px}#sidebar .profile-wrapper{margin-top:3.5rem;margin-bottom:2.5rem;padding-left:3.5rem}#sidebar ul li.nav-item{padding-left:2.75rem;padding-right:2.75rem}#sidebar .sidebar-bottom{padding-left:2.75rem;margin-bottom:1.75rem}#sidebar .sidebar-bottom a:not(:last-child){margin-right:1rem}#sidebar .sidebar-bottom .icon-border{margin-left:calc((1rem - 3px)/2);margin-right:calc((1rem - 3px)/2)}}#post-list{margin-top:2rem}#post-list .card-wrapper:hover{text-decoration:none}#post-list .card-wrapper:not(:last-child){margin-bottom:1.25rem}#post-list .card{border:0;background:none}#post-list .card .preview-img img,#post-list .card .preview-img{border-radius:10px 10px 0 0}#post-list .card .card-body{height:100%;padding:1rem}#post-list .card .card-body .card-title{color:var(--heading-color) !important;font-size:1.25rem}#post-list .card .card-body .post-meta,#post-list .card .card-body .card-text.content{color:var(--text-muted-color) !important}#post-list .card .card-body .card-text.content p{line-height:1.5;margin:0}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.5rem}#post-list .card .card-body .post-meta em{color:inherit}#post-list .card .card-body .post-meta>div:first-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination{color:var(--text-color);font-family:Lato,sans-serif;justify-content:space-evenly}.pagination a:hover{text-decoration:none}.pagination .page-item .page-link{color:var(--btn-patinator-text-color);padding:0 .6rem;display:-webkit-box;-webkit-box-pack:center;-webkit-box-align:center;border-radius:.5rem;border:0;background-color:inherit}.pagination .page-item.active .page-link{background-color:var(--btn-paginator-hover-color)}.pagination .page-item:not(.active) .page-link:hover{box-shadow:inset var(--btn-border-color) 0 0 0 1px}.pagination .page-item.disabled{cursor:not-allowed}.pagination .page-item.disabled .page-link{color:rgba(108,117,125,.57)}@media all and (min-width: 768px){#post-list .card .preview-img,#post-list .card .preview-img img{border-radius:0 10px 10px 0}#post-list .card .card-body{padding:1.75rem 1.75rem 1.25rem 1.75rem}#post-list .card .card-body .card-text{display:inherit !important}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.75rem}}@media all and (max-width: 830px){.pagination .page-item:not(:first-child):not(:last-child){display:none}}@media all and (min-width: 831px){#post-list{margin-top:2.5rem}.pagination{font-size:.85rem;justify-content:center}.pagination .page-item:not(:last-child){margin-right:.7rem}.pagination .page-index{display:none}}.post-navigation .btn.disabled,.post-navigation .btn{width:50%;position:relative;border-color:var(--btn-border-color)}header .post-desc{font-size:1.125rem;line-height:1.6}header .post-meta span+span::before{content:"•";padding-left:.25rem;padding-right:.25rem}header .post-meta em a{color:inherit}header h1+.post-meta{margin-top:1.5rem}.post-tail-wrapper{margin-top:6rem;border-bottom:1px double var(--main-border-color)}.post-tail-wrapper .license-wrapper{line-height:1.2rem}.post-tail-wrapper .share-wrapper{vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.post-tail-wrapper .share-wrapper .share-icons>*,.post-tail-wrapper .share-wrapper .share-icons i{font-size:1.125rem}.post-tail-wrapper .share-wrapper .share-icons{display:flex}.post-tail-wrapper .share-wrapper .share-icons i{color:var(--btn-share-color)}.post-tail-wrapper .share-wrapper .share-icons>*{margin-left:.5rem}.post-tail-wrapper .share-wrapper .share-icons button{padding:0;border:none;line-height:inherit}.share-mastodon{--wc-stm-font-family: $font-family-base;--wc-stm-dialog-background-color: var(--card-bg);--wc-stm-form-button-border: 1px solid var(--btn-border-color);--wc-stm-form-submit-background-color: var(--sidebar-btn-bg);--wc-stm-form-cancel-background-color: var(--sidebar-btn-bg);--wc-stm-form-button-background-color-hover: #007bff;--wc-stm-form-button-color-hover: white;font-size:1rem}.post-tags{line-height:2rem}.post-navigation .btn:not(:hover){color:var(--link-color)}.post-navigation .btn:hover:not(.disabled)::before{color:#f5f5f5}.post-navigation .btn.disabled{pointer-events:auto;cursor:not-allowed;background:none;color:gray}.post-navigation .btn.btn-outline-primary.disabled:focus{box-shadow:none}.post-navigation .btn::before{color:var(--text-muted-color);font-size:.65rem;text-transform:uppercase;content:attr(aria-label)}.post-navigation .btn:first-child{border-radius:10px 0 0 10px;left:.5px}.post-navigation .btn:last-child{border-radius:0 10px 10px 0;right:.5px}.post-navigation p{font-size:1.1rem;line-height:1.5rem;margin-top:.3rem;white-space:normal}@media(hover: hover){.post-navigation .btn,.post-navigation .btn::before{transition:all .35s ease-in-out}}@-webkit-keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}@keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}#toc-wrapper{border-left:1px solid rgba(158,158,158,.17);position:-webkit-sticky;position:sticky;top:4rem;transition:top .2s ease-in-out;-webkit-animation:fade-up .8s;animation:fade-up .8s}#toc-wrapper ul{list-style:none;font-size:.85rem;line-height:1.25;padding-left:0}#toc-wrapper ul li:not(:last-child){margin:.4rem 0}#toc-wrapper ul li a{padding:.2rem 0 .2rem 1.25rem}#toc-wrapper ul .toc-link{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#toc-wrapper ul .toc-link:hover{color:var(--toc-highlight);text-decoration:none}#toc-wrapper ul .toc-link::before{display:none}#toc-wrapper ul .is-active-link{color:var(--toc-highlight) !important;font-weight:600}#toc-wrapper ul .is-active-link::before{display:inline-block;width:1px;left:-1px;height:1.25rem;background-color:var(--toc-highlight) !important}#toc-wrapper ul ul{padding-left:.75rem}#related-posts>h3{color:var(--label-color);font-size:1.1rem;font-weight:600}#related-posts time{color:var(--text-muted-color)}#related-posts p{font-size:.9rem;margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#disqus_thread{min-height:8.5rem}.utterances{max-width:100%}.post-tail-wrapper .share-wrapper .share-icons>*:hover i{color:var(--btn-share-hover-color) !important}.share-label{color:inherit;font-size:inherit;font-weight:400}.share-label::after{content:":"}@media all and (max-width: 576px){.post-tail-bottom{flex-wrap:wrap-reverse !important}.post-tail-bottom>div:first-child{width:100%;margin-top:1rem}}@media all and (max-width: 768px){.content>p>img{max-width:calc(100% + 1rem)}}@media all and (max-width: 849px){.post-navigation{padding-left:0;padding-right:0;margin-left:-0.5rem;margin-right:-0.5rem}}.tag{border-radius:.7em;padding:6px 8px 7px;margin-right:.8rem;line-height:3rem;letter-spacing:0;border:1px solid var(--tag-border) !important;box-shadow:0 0 3px 0 var(--tag-shadow)}.tag span{margin-left:.6em;font-size:.7em;font-family:Oswald,sans-serif}#archives{letter-spacing:.03rem}#archives ul li::before,#archives .year:first-child::before,#archives .year::before{content:"";width:4px;position:relative;float:left;background-color:var(--timeline-color)}#archives .year{height:3.5rem;font-size:1.5rem;position:relative;left:2px;margin-left:-4px}#archives .year::before{height:72px;left:79px;bottom:16px}#archives .year:first-child::before{height:32px;top:24px}#archives .year::after{content:"";display:inline-block;position:relative;border-radius:50%;width:12px;height:12px;left:21.5px;border:3px solid;background-color:var(--timeline-year-dot-color);border-color:var(--timeline-node-bg);box-shadow:0 0 2px 0 #c2c6cc;z-index:1}#archives ul li{font-size:1.1rem;line-height:3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#archives ul li:nth-child(odd){background-color:var(--main-bg, #ffffff);background-image:linear-gradient(to left, #ffffff, #fbfbfb, #fbfbfb, #fbfbfb, #ffffff)}#archives ul li::before{top:0;left:77px;height:3.1rem}#archives ul:last-child li:last-child::before{height:1.5rem}#archives .date{white-space:nowrap;display:inline-block;position:relative;right:.5rem}#archives .date.month{width:1.4rem;text-align:center}#archives .date.day{font-size:85%;font-family:Lato,sans-serif}#archives a{margin-left:2.5rem;position:relative;top:.1rem}#archives a:hover{border-bottom:none}#archives a::before{content:"";display:inline-block;position:relative;border-radius:50%;width:8px;height:8px;float:left;top:1.35rem;left:71px;background-color:var(--timeline-node-bg);box-shadow:0 0 3px 0 #c2c6cc;z-index:1}@media all and (max-width: 576px){#archives{margin-top:-1rem}#archives ul{letter-spacing:0}}.categories i{color:gray}.categories{margin-bottom:2rem;border-color:var(--categories-border)}.categories .card-header{padding:.75rem;border-radius:9px;border-bottom:0}.categories .card-header.hide-border-bottom{border-bottom-left-radius:0;border-bottom-right-radius:0}.categories i{font-size:86%}.categories .list-group-item{border-left:none;border-right:none;padding-left:2rem}.categories .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.categories .list-group-item:last-child{border-bottom:0}.category-trigger{width:1.7rem;height:1.7rem;border-radius:50%;text-align:center;color:#6c757d !important}.category-trigger i{position:relative;height:.7rem;width:1rem;transition:transform 300ms ease}.category-trigger:hover i{color:var(--categories-icon-hover-color)}@media(hover: hover){.category-trigger:hover{background-color:var(--categories-hover-bg)}}.rotate{transform:rotate(-90deg)}.dash{margin:0 .5rem .6rem .5rem;border-bottom:2px dotted var(--dash-color)}#page-category ul>li,#page-tag ul>li{line-height:1.5rem;padding:.6rem 0}#page-category ul>li::before,#page-tag ul>li::before{background:#999;width:5px;height:5px;border-radius:50%;display:block;content:"";position:relative;top:.6rem;margin-right:.5rem}#page-category ul>li>a,#page-tag ul>li>a{font-size:1.1rem}#page-tag h1>i{font-size:1.2rem}#page-category h1>i{font-size:1.25rem}#page-category a:hover,#page-tag a:hover,#access-lastmod a:hover{margin-bottom:-1px}@media all and (max-width: 576px){#page-category ul>li::before,#page-tag ul>li::before{margin:0 .5rem}#page-category ul>li>a,#page-tag ul>li>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}/*# sourceMappingURL=jekyll-theme-chirpy.css.map */ \ No newline at end of file diff --git a/assets/css/jekyll-theme-chirpy.css.map b/assets/css/jekyll-theme-chirpy.css.map new file mode 100644 index 0000000..ecdfbfe --- /dev/null +++ b/assets/css/jekyll-theme-chirpy.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/addon/module.scss","../../_sass/addon/variables.scss","../../_sass/addon/syntax.scss","../../_sass/colors/syntax-light.scss","../../_sass/colors/syntax-dark.scss","../../_sass/addon/commons.scss","../../_sass/colors/typography-light.scss","../../_sass/colors/typography-dark.scss","../../_sass/layout/home.scss","../../_sass/layout/post.scss","../../_sass/layout/tags.scss","../../_sass/layout/archives.scss","../../_sass/layout/categories.scss","../../_sass/layout/category-tag.scss"],"names":[],"mappings":"CAMA,mDACE,2BACA,gBACA,YCwBoB,kCDpBpB,4CACE,cAGF,qBACE,4CACE,kBACA,UACA,2DAIA,oEACE,mBACA,UACA,0DAMR,sCACE,4BACA,uCAGF,+DACE,mBACA,cACA,mBAGF,2QACE,yBACA,gCACA,qBAGF,4CACE,wBAGF,sEACE,oDAGF,4EACE,+BAGF,gFACE,yBACA,sBACA,qBACA,iBAGF,6LACE,mBAGF,yFACE,eAGF,4EACE,kBAGF,wMACE,cChEU,KDoEV,oDACE,cACA,kBACA,kBACA,cACA,UACA,cAIJ,iDACE,iCACA,yBACA,sBACA,qBACA,iBAGF,iHACE,oBACA,gBACA,uBACA,qBACA,4BAGF,qGACE,wCACA,gBAGF,kFACE,iBAGF,2BACE,gBAIA,mCACE,2CACA,uBACA,0BACA,kBACA,8CE5HF,oCACE,4CCHF,iCACA,8BACA,mCACA,kCACA,yCACA,sBACA,kCACA,mCACA,kCACA,mCAIA,oFACE,YAGF,sFACE,SAGF,0IAEE,cACA,yBAGF,ogBAOE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,guBAUE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,kXAKE,cAGF,kJAEE,cAGF,0EACE,cACA,iBAGF,0EACE,cACA,iBAGF,4yBAWE,cAGF,0EACE,cAGF,oJAEE,cAGF,4EACE,cACA,yBAGF,glBAQE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,kBAGF,0EACE,cACA,iBDjMA,qBETF,iCACA,8BACA,mCACA,kCACA,4CACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,oCACE,cAKF,yCACE,YAGF,0CACE,SAGF,mEAEE,cACA,yBAGF,qCACE,cACA,yBAGF,4PAOE,cAGF,oCACE,cAGF,oCACE,cAGF,uEAEE,cAGF,uEAEE,cAGF,oCACE,cAGF,oCACE,cACA,yBAGF,oCACE,cACA,yBACA,iBAGF,mLAKE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,mUASE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,+RAQE,cAGF,oCACE,eF9IF,mCACE,2CEfF,iCACA,8BACA,mCACA,kCACA,4CACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,yEACE,cAKF,mFACE,YAGF,qFACE,SAGF,wIAEE,cACA,yBAGF,2EACE,cACA,yBAGF,+fAOE,cAGF,yEACE,cAGF,yEACE,cAGF,gJAEE,cAGF,gJAEE,cAGF,yEACE,cAGF,yEACE,cACA,yBAGF,yEACE,cACA,yBACA,iBAGF,2WAKE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,+oBASE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,skBAQE,cAGF,yEACE,cFxIA,sBCnBF,iCACA,8BACA,mCACA,kCACA,yCACA,sBACA,kCACA,mCACA,kCACA,mCAIA,0CACE,YAGF,2CACE,SAGF,qEAEE,cACA,yBAGF,kQAOE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,gXAUE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,yLAKE,cAGF,yEAEE,cAGF,qCACE,cACA,iBAGF,qCACE,cACA,iBAGF,sZAWE,cAGF,qCACE,cAGF,0EAEE,cAGF,sCACE,cACA,yBAGF,wSAQE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,kBAGF,qCACE,cACA,kBD9KJ,kDACE,2CAGF,cACE,kBACA,qBAGF,mBACE,qCACA,iBACA,oBAGF,WAIE,cACA,sBAMA,eACE,gBACA,UDrCa,OCsCb,mBACA,iBAKE,gCACE,qBACA,iBACA,oBAGF,+BACE,8BAGF,wBACE,iBACA,kBAKN,mBACE,iBACA,oCACA,yBACA,sBACA,oBACA,qBACA,iBAIJ,KACE,qBACA,iBACA,aACA,wBAEA,uBACE,UD/Ea,OCgFb,gBACA,sBACA,cDxFQ,ICyFR,uCAGF,cACE,yBACA,iCACA,gBACA,UAGF,yBACE,iBACA,cAGF,+BACE,mBAGF,gBACE,cAWF,gBACE,yBACA,8BACA,oBAIJ,sBAIE,kDAEA,+BFPA,YEQiB,MFPjB,aEOiB,MAEf,gBAGF,iCACE,yBACA,0BAUA,2IACE,qBACA,eAEA,2KACE,aAMR,aAGE,aACA,8BACA,mBACA,ODjKmB,QCkKnB,mBACA,oBAGA,kBACE,YDvKiB,QC0KjB,oBACE,eACA,MDzKY,QC0KZ,oCAEA,0BACE,cAIK,2BACP,kBACA,QAIF,yBACE,8BACA,iBACA,gBACA,oCAKJ,oBAIE,+BACA,ODxMiB,QCyMjB,MDzMiB,QC0MjB,UACA,yBAEA,sBACE,oCAIA,mCACE,4CAGF,+BACE,qCAIJ,0BACE,aAGF,yCACE,uCAEA,2CACE,WAMR,kCAEI,+BFpHF,YEqHmB,EFpHnB,aEoHmB,EAEf,cDpPM,KCuPR,mCF1HF,YE2HmB,EF1HnB,aE0HmB,EAIf,2CACE,WACA,qBACA,YALW,KAMX,MDzPQ,OC0PR,OD1PQ,OC2PR,kBACA,gDACA,gGAMF,wCAEE,uBG7RR,KACE,eAEA,oCACE,6DCCF,mBACA,6BAGA,sBACA,4BACA,sCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,wBACA,iCACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAGA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAEA,8EACE,2CAGF,wDACE,aDlGA,qBELF,2BACA,2BACA,qCAGA,iCACA,4BACA,sCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDAEA,kBAEA,4BACE,aAIF,4EAEE,gCAIA,8CACE,uCAGF,kDACE,iBACA,kBACA,kBACA,sCAEA,6DACE,mCAKN,iDACE,+HAWF,oCACE,mBFhIF,mCACE,2CEXF,2BACA,2BACA,qCAGA,iCACA,4BACA,sCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDAEA,kBAEA,yDACE,aAIF,0JAEE,gCAIA,6FACE,uCAGF,qGACE,iBACA,kBACA,kBACA,sCAEA,2HACE,mCAKN,mGACE,+HAWF,yEACE,kBF1HA,sBChBF,iBACA,mBACA,6BAGA,sBACA,4BACA,sCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,wBACA,iCACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAGA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAEA,uCACE,2CAGF,4BACE,cDjFJ,KACE,0BACA,kHAEA,wBACA,mCACA,YJFiB,+CI8Bb,GACE,eAVA,QAEI,wBAON,GACE,kBAVA,QAII,mBAKN,GACE,kBAVA,QAII,mBAKN,GACE,kBAvBN,GA0BI,kBAKN,EAGE,qBAGF,IACE,eACA,YACA,gCAEA,UAGE,0BACA,kBAIJ,WACE,yDACA,kBACA,mCACA,iBAEA,wBACE,gBAGF,2BACE,cACA,kBACA,4BACA,+BAIA,mCACE,kBACA,WACA,kBACA,YACA,iBACA,oBACA,mCLgEJ,sBACE,sCAEA,8BACE,QKhEmB,ILiEnB,mCACA,4BANJ,uBACE,uCAEA,+BACE,QK/DoB,ILgEpB,oCACA,0BAGE,yBATN,0BACE,0CAEA,kCACE,QK9DuB,IL+DvB,uCACA,0BANJ,yBACE,yCAEA,iCACE,QK7DsB,IL8DtB,sCACA,0BK5DN,IACE,4BACA,qBACA,sBACA,mBACA,kBACA,kBACA,eACA,kBACA,4BACA,qCACA,cJtHU,IIuHV,uCACA,gDAGF,GACE,sCACA,UAGF,OACE,gCACA,OJrIc,KIsId,8CAgBA,SACE,kBACA,gBAcJ,QACE,SACA,+BACA,gBACA,mBAEA,mBACE,wBACA,gBAGF,gBACE,kBACA,+CAEA,iCACE,mBAIJ,iBACE,gBAMF,8BACE,oBACA,oBL3CF,MADwD,mBAExD,UK4CiB,QL3CjB,YAH2C,IKiD3C,yBACE,oBACA,iBACA,oBACA,oBACA,wBAEA,+BACE,2BAMJ,kBACE,cAUJ,cACE,kBACA,iBAGE,kCACE,oBAKF,mBACE,kBACA,aACA,gBAMK,WLpHT,YKqHiB,ILpHjB,aKoHiB,IL3GjB,aK4GiB,IL3GjB,cK2GiB,IAEf,oCASO,kBACP,gBACA,cACA,kBACA,aACA,kBACA,oCAOJ,eACE,gBACA,qBAEA,qBACE,eACA,gBACA,iBAEA,2BACE,8CAQA,8BACE,+CAEA,4CACE,mCAGF,8CACE,kCAaV,aACE,mBACA,WACA,YACA,gBAIA,yBACE,yBAGF,iBACE,YACA,oBACA,iBAIS,4BACP,WAKN,cAGE,SACA,0BACA,8BAEA,sBAGE,WACA,WACA,YACA,kBACA,sCACA,UACA,oCAIA,4BACE,WAKN,KACE,gBACA,mBAEA,QACE,gBAKE,mDLrNJ,kBACA,SACA,2BKgPF,SACE,kBACA,gBACA,yBAGE,iBL1RF,WK6RmB,ML5RnB,cK4RmB,MAEf,eAcF,8FAEE,8BACA,6BAEA,0GACE,gBACA,oBAGF,oNAEE,8BACA,6BACA,eAKN,sBACE,8BACA,6BAEA,yBACE,qBACA,eAGA,2BACE,WACA,qBACA,4BAEA,mCACE,oCAIJ,4BACE,8BACA,6BAIJ,2CACE,6BACA,sBAIJ,eACE,iBAGF,kBACE,8BAQJ,UACE,qBACA,eACA,kBACA,oBACA,yCACA,gBACA,8BACA,mBAEA,2BACE,mBAIJ,YACE,8BAGF,UACE,oBACA,oBAGF,SACE,gBACA,kBACA,yBAEA,iBACE,WACA,kBACA,6BACA,YACA,WACA,wCACA,gCAGF,2BACE,GACE,4BAGF,KACE,4BAIJ,mBACE,GACE,4BAGF,KACE,4BAKN,aACE,WACA,YACA,mBACA,kBAIA,oBACE,qBAGF,kBACE,cACA,WACA,YACA,eACA,gBACA,YACA,gBAMJ,aACE,WACA,cAMF,UACE,4BACA,gBACA,kBACA,wBAEA,gBACE,gBAMJ,aACE,uBAGF,gBACE,8BAIF,YACE,yCAIF,eACE,gBACA,gBACA,gBAKA,8CACE,gCAIJ,UACE,cACA,oBACA,mBAGF,oBACE,8BAGF,aACE,gBACA,wDACA,6BACA,2EAGF,MACE,WACA,0BAGF,OACE,YACA,0BAMF,SACE,kBAIF,cACE,kBACA,0BASF,SLhhBE,aKihBe,ELhhBf,cKghBe,EAEf,eACA,MACA,OACA,YACA,gBACA,MJ5qBc,MI6qBd,WACA,6BACA,mDAGA,wBACA,qBAGA,4BACE,aAIA,0GACE,kCAQJ,iBACE,cACA,WACA,YACA,gBACA,gDACA,wBAEA,qBACE,yBAEA,2BACE,qBAKN,0BLhlBA,WKilBiB,OLhlBjB,cKglBiB,OAGf,oBACA,sBACA,WAGF,qBACE,oBACA,gBACA,kBACA,gBACA,qBACA,mBACA,oBAEA,uBAIE,8BAIJ,wBACE,cACA,iCACA,kBACA,iBACA,yBACA,sBACA,qBACA,iBAGF,YACE,mBAEA,wBACE,WACA,WACA,oBACA,qBAEA,mCLpnBJ,YKqnBqB,MLpnBrB,eKonBqB,MAEf,aACA,mBACA,qBACA,gBAEA,yCACE,yCAGF,qCACE,cACA,WACA,oBAGF,wCACE,cACA,oBAKF,yCACE,kCACA,yCAEA,8CACE,UAKN,0CACE,kBAKN,yBACE,kBACA,mBACA,qBAIA,iEACE,MAHS,QAIT,OAJS,QAKT,cApJG,MAqJH,kBACA,+BACA,uCACA,kBACA,aACA,mBACA,uBAEA,yGACE,iDAGF,6EACE,yCASF,4CACE,aJ50BK,MIg1BT,2BACE,YAlCS,QA2CX,sCLltBF,YKotBmB,sBLntBnB,aKmtBmB,sBAEf,0CACA,WACA,MAjMa,IAkMb,OAlMa,IAmMb,kBACA,cAnMG,MAwMT,qBACE,iCACE,wBAGF,UACE,4CAGF,cACE,8CAIJ,uBACE,aACA,YACA,WACA,cAEA,gCACE,gBAMJ,gBACE,OJ/3Bc,KIg4Bd,kCAIA,iBACE,WAGF,oBACE,eACA,8BACA,mBAQI,iDACE,YACA,gBAOV,4BL1wBE,yCK8wBF,mBL9wBE,yCKkxBF,uBLlxBE,yCKsxBF,wBLtxBE,yCK0xBF,cL1xBE,yCK8xBF,kCL1xBE,WK8xBF,yBL9xBE,WKkyBF,6BLlyBE,WKsyBF,8BLtyBE,WK0yBF,oBL1yBE,WK8yBF,OACE,aACA,WACA,mBACA,4CACA,0BACA,gBAEA,SACE,UACA,gBACA,+BAIJ,iCAEE,aAIF,eACE,wBACA,aACA,mBAKF,cACE,kBACA,SACA,gBACA,qBACA,wBACA,YAEA,oBACE,gBAIJ,cACE,eAEA,iBACE,qBAGF,wBACE,qBACA,iBACA,eACA,gCACA,YACA,cACA,wBAEA,gCACE,YACA,8BACA,oBAON,gBACE,oBAEA,kBACE,iBACA,mBAWF,wBACE,WAEA,yCACE,mBAIF,0BACE,cACA,oBACA,cAGF,0BACE,gBACA,uBACA,oBACA,qBACA,4BAKN,cACE,aACA,iBACA,gBACA,uBACA,+BACA,kBACA,UACA,gBACA,uBACA,oBACA,mBAGF,MACE,aACA,eACA,cACA,YACA,WACA,UAES,wBACP,yBAMJ,cACE,kBLj8BA,aKm8Be,ELl8Bf,cKk8Be,EAEf,yBACE,iBAIJ,8ELp9BE,YKu9Be,ELt9Bf,aKs9Be,EAIf,2BACE,gBAMJ,aACE,kBACA,UACA,UACA,eACA,eACA,WACA,gBACA,4BACA,iCACA,UACA,MJzmCc,QI0mCd,OJ1mCc,QI2mCd,kBACA,mDACA,0DAEA,mBACE,kCACA,0CAGF,eACE,YJrnCY,QIsnCZ,kBACA,WAGF,kBACE,UACA,mBAKF,yBACE,KACE,UACA,UAIJ,iBACE,KACE,UACA,UAIJ,4BACE,gBACA,mBACA,cAGF,0BACE,4BACA,oBAEA,iCACE,cACA,eAKF,yBACE,cACA,gBACA,oBACA,mCACA,2BACA,sCACA,iCACA,eACA,SACA,WACA,2BACA,4BACA,oBAcN,kCAGM,yCLlkCJ,YKmkCqB,MLlkCrB,aKkkCqB,MAEf,gBACA,eAKN,QACE,WACA,aAIJ,kCACE,iCACE,eAOF,yBLhlCA,aKklCiB,ELjlCjB,cKilCiB,GAKnB,kCAWE,OAJI,WALM,mBAYR,OJ/uCkB,KIgvClB,iBAIA,2BACE,wBAGF,gCACE,4BAGF,+BACE,kBAIJ,SAzBI,WALM,mBAiCR,6BACA,qCAGF,cAhCI,WALM,mBAyCV,iCAEE,eAGF,uBACE,WAGF,mBAEE,aAGF,gBApDI,2CAuDF,OAGF,oBAEE,aAGF,+CAGE,cAGF,gCACE,iBAGF,MACE,kCAGF,iBACE,aAEA,0BACE,mBAMN,kCAEE,KACE,kBAGF,cACE,YJ90CY,MIk1CZ,0BACE,gBAIJ,cACE,aAGF,OACE,UJp1Ce,MIu1CjB,uBACE,UJr1CqB,OIs1CrB,iCAIA,QACE,gBAIJ,iCACE,cAIF,aACE,SACA,gBAGF,cACE,iBAKJ,yDACE,oCACE,aACA,eAKJ,yDACE,oBACE,gBAGF,YACE,UACA,gBACA,uBACA,oBACA,oBAKJ,mCACE,eACE,aAGF,iCACE,mCAMJ,mCACE,OACE,kBAGF,cACE,+BAGF,wBACE,UAEA,uCACE,oBAGF,wCACE,mBAGF,kDACE,kBACA,YAIJ,SACE,mBAIJ,mCACE,aACE,+CAIJ,mCAGE,cACE,YJr8CkB,MIw8CpB,gBACE,KJz8CkB,MI48CpB,OACE,oCAKF,yBACE,UJz8CqB,OI08CrB,gCACA,iCAGF,0BAEE,gCAGF,aACE,8CAKF,SACE,MJp+CkB,MIs+ClB,0BACE,kBACA,qBACA,oBAIA,wBL11CJ,aK21CqB,QL11CrB,cK01CqB,QAInB,yBACE,qBACA,sBAEA,4CACE,aJr/CQ,KIw/CV,sCLj3CJ,YKk3CqB,qBLj3CrB,aKi3CqB,sBG9/CvB,WACE,gBAGE,+BACE,qBAGF,0CACE,sBAIJ,iBACE,SACA,gBAEA,gEACE,4BAWF,4BACE,YACA,aAEA,wCAGE,sCACA,kBAGF,sFACE,yCAMA,iDAGE,gBACA,SAQA,2DACE,mBAIJ,0CAGE,cAGF,uDACE,cACA,mBACA,gBACA,uBAOV,YACE,wBACA,4BACA,6BAEA,oBACE,qBAIA,kCACE,sCACA,gBACA,oBACA,wBACA,yBACA,oBACA,SACA,yBAIA,yCACE,kDAMA,qDACE,mDAKN,gCACE,mBAEA,2CACE,4BAOR,kCACE,gEACE,4BAKE,4BACE,wCAEA,uCACE,2BAKE,2DACE,qBAUd,kCAGM,0DACE,cAOR,kCACE,WACE,kBAGF,YACE,iBACA,uBAGE,wCACE,mBAIJ,wBACE,cCrLN,qDACE,UACA,kBACA,qCAUA,kBAGE,mBACA,gBAIA,oCAdF,YACA,aAFc,OAGd,cAH4B,OAyBxB,uBACE,cAKN,qBACE,kBAIJ,mBAGE,gBACA,kDAEA,oCACE,mBAmBF,kCACE,sBACA,yBACA,sBACA,qBACA,iBAEA,kGACE,mBAGF,+CACE,aAEA,iDACE,6BAKF,iDAGE,kBASF,sDACE,UACA,YACA,oBAQR,gBAEE,wCACA,iDACA,+DACA,6DACA,6DACA,qDACA,wCAEA,eAGF,WACE,iBAeE,kCACE,wBAIA,mDACE,cAIJ,+BAGE,oBACA,mBACA,gBACA,WAGF,yDACE,gBAGF,8BACE,8BACA,iBACA,yBACA,yBAGF,kCACE,4BACA,UAGF,iCACE,4BACA,WAIJ,mBACE,iBACA,mBACA,iBACA,mBAIJ,qBAEI,oDAEE,iCAKN,2BACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,mBACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,aACE,4CACA,wBACA,gBACA,SACA,+BACA,8BACA,sBAEA,gBACE,gBACA,iBACA,iBACA,eAGE,oCACE,eAGF,qBACE,8BAMJ,0BACE,cACA,mBACA,gBACA,uBAEA,gCACE,2BACA,qBAGF,kCACE,aAIJ,gCACE,sCACA,gBAEA,wCACE,qBACA,UACA,UACA,eACA,iDAIJ,mBACE,oBAQJ,kBThIA,MADwD,mBAExD,USgIiB,OT/HjB,YS+HyB,IAGzB,oBAIE,8BAGF,iBACE,gBACA,oBACA,gBACA,uBACA,oBACA,qBACA,4BAWJ,eACE,kBAGF,YACE,eAGF,yDACE,8CAGF,aTzKE,MS0K6B,QTzK7B,USyKe,QTxKf,YSwKwB,IAExB,oBACE,YAIJ,kCACE,kBACE,kCAEA,kCACE,WACA,iBAKN,kCACE,eACE,6BAKJ,kCACE,iBACE,eACA,gBACA,oBACA,sBC3WJ,KACE,mBACA,oBACA,mBACA,iBACA,iBACA,8CACA,uCAEA,UACE,iBACA,eACA,8BCZJ,UACE,sBAIA,oFACE,WACA,MAJe,IAKf,kBACA,WACA,uCAGF,gBACE,cACA,iBACA,kBACA,SACA,iBAEA,wBAGE,YACA,UACA,YAGF,oCAGE,YACA,SAIF,uBACE,WACA,qBACA,kBACA,kBACA,WACA,YACA,YACA,iBACA,gDACA,qCACA,6BACA,UAKF,gBACE,iBACA,iBACA,mBACA,gBACA,uBAEA,+BACE,yCACA,uFAUF,wBAGE,MACA,UACA,cAIJ,8CACE,cAIJ,gBACE,mBACA,qBACA,kBACA,YAEA,sBACE,aACA,kBAGF,oBACE,cACA,4BAIJ,YAEE,mBACA,kBACA,UAEA,kBACE,mBAGF,oBAEE,WACA,qBACA,kBACA,kBACA,UACA,WACA,WACA,YACA,UACA,yCACA,6BACA,UAKN,kCACE,UACE,iBAEA,aACE,kBCxIN,cACE,WAGF,YACE,mBACA,sCAOA,yBAGE,eACA,cAHS,IAIT,gBAEA,4CACE,4BACA,6BAIJ,cAGE,cAGF,6BACE,iBACA,kBACA,kBAEA,yCACE,yBACA,0BAGF,wCACE,gBAKN,kBACE,aACA,cACA,kBACA,kBACA,yBAEA,oBACE,kBACA,aACA,WACA,gCAIA,0BACE,yCAMN,qBACE,wBACE,6CAIJ,QACE,yBC7EF,MACE,2BACA,2CAKA,qCACE,mBACA,gBAGA,qDACE,gBACA,UACA,WACA,kBACA,cACA,WACA,kBACA,UACA,mBAIF,yCAGE,iBAMN,eACE,iBAGF,oBACE,kBAMA,iEAGE,mBAIJ,kCAIM,qDACE,eAGF,yCACE,mBACA,gBACA","sourcesContent":["/*\n* Mainly scss modules, only imported to `assets/css/main.scss`\n*/\n\n/* ---------- scss placeholder --------- */\n\n%heading {\n color: var(--heading-color);\n font-weight: 400;\n font-family: $font-family-heading;\n}\n\n%anchor {\n .anchor {\n font-size: 80%;\n }\n\n @media (hover: hover) {\n .anchor {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0.25s;\n }\n\n &:hover {\n .anchor {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0s;\n }\n }\n }\n}\n\n%tag-hover {\n background: var(--tag-hover);\n transition: background 0.35s ease-in-out;\n}\n\n%table-cell {\n padding: 0.4rem 1rem;\n font-size: 95%;\n white-space: nowrap;\n}\n\n%link-hover {\n color: #d2603a !important;\n border-bottom: 1px solid #d2603a;\n text-decoration: none;\n}\n\n%link-color {\n color: var(--link-color);\n}\n\n%link-underline {\n border-bottom: 1px solid var(--link-underline-color);\n}\n\n%clickable-transition {\n transition: all 0.3s ease-in-out;\n}\n\n%no-cursor {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%no-bottom-border {\n border-bottom: none;\n}\n\n%cursor-pointer {\n cursor: pointer;\n}\n\n%normal-font-style {\n font-style: normal;\n}\n\n%rounded {\n border-radius: $radius-lg;\n}\n\n%img-caption {\n + em {\n display: block;\n text-align: center;\n font-style: normal;\n font-size: 80%;\n padding: 0;\n color: #6d6c6c;\n }\n}\n\n%sidebar-links {\n color: var(--sidebar-muted-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%text-clip {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n%text-highlight {\n color: var(--text-muted-highlight-color);\n font-weight: 600;\n}\n\n%text-sm {\n font-size: 0.85rem;\n}\n\n%text-xs {\n font-size: 0.8rem;\n}\n\n%sup-fn-target {\n &:target {\n background-color: var(--footnote-target-bg);\n width: -moz-fit-content;\n width: -webkit-fit-content;\n width: fit-content;\n transition: background-color 1.75s ease-in-out;\n }\n}\n\n/* ---------- scss mixin --------- */\n\n@mixin mt-mb($value) {\n margin-top: $value;\n margin-bottom: $value;\n}\n\n@mixin ml-mr($value) {\n margin-left: $value;\n margin-right: $value;\n}\n\n@mixin pt-pb($val) {\n padding-top: $val;\n padding-bottom: $val;\n}\n\n@mixin pl-pr($val) {\n padding-left: $val;\n padding-right: $val;\n}\n\n@mixin placeholder {\n color: var(--text-muted-color) !important;\n}\n\n@mixin placeholder-focus {\n opacity: 0.6;\n}\n\n@mixin label($font-size: 1rem, $font-weight: 600, $color: var(--label-color)) {\n color: $color;\n font-size: $font-size;\n font-weight: $font-weight;\n}\n\n@mixin align-center {\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n}\n\n@mixin prompt($type, $fa-content, $fa-style: 'solid', $rotate: 0) {\n &.prompt-#{$type} {\n background-color: var(--prompt-#{$type}-bg);\n\n &::before {\n content: $fa-content;\n color: var(--prompt-#{$type}-icon-color);\n font: var(--fa-font-#{$fa-style});\n\n @if $rotate != 0 {\n transform: rotate(#{$rotate}deg);\n }\n }\n }\n}\n","/*\n * The SCSS variables\n */\n\n/* sidebar */\n\n$sidebar-width: 260px !default; /* the basic width */\n$sidebar-width-large: 300px !default; /* screen width: >= 1650px */\n$sb-btn-gap: 0.8rem !default;\n$sb-btn-gap-lg: 1rem !default;\n\n/* other framework sizes */\n\n$topbar-height: 3rem !default;\n$search-max-width: 200px !default;\n$footer-height: 5rem !default;\n$footer-height-large: 6rem !default; /* screen width: < 850px */\n$main-content-max-width: 1250px !default;\n$radius-sm: 6px !default;\n$radius-lg: 10px !default;\n$back2top-size: 2.75rem !default;\n\n/* syntax highlight */\n\n$code-font-size: 0.85rem !default;\n$code-header-height: 2.25rem !default;\n$code-dot-size: 0.75rem !default;\n$code-dot-gap: 0.5rem !default;\n$code-icon-width: 1.75rem !default;\n\n/* fonts */\n\n$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default;\n$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default;\n","/*\n* The syntax highlight.\n*/\n\n@import 'colors/syntax-light';\n@import 'colors/syntax-dark';\n\nhtml {\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-syntax;\n }\n\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n\n &[data-mode='light'] {\n @include light-syntax;\n }\n }\n}\n\n/* -- code snippets -- */\n\n%code-snippet-bg {\n background-color: var(--highlight-bg-color);\n}\n\n%code-snippet-padding {\n padding-left: 1rem;\n padding-right: 1.5rem;\n}\n\n.highlighter-rouge {\n color: var(--highlighter-rouge-color);\n margin-top: 0.5rem;\n margin-bottom: 1.2em; /* Override BS Inline-code style */\n}\n\n.highlight {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n overflow: auto;\n padding-bottom: 0.75rem;\n\n @at-root figure#{&} {\n @extend %code-snippet-bg;\n }\n\n pre {\n margin-bottom: 0;\n font-size: $code-font-size;\n line-height: 1.4rem;\n word-wrap: normal; /* Fixed Safari overflow-x */\n }\n\n table {\n td {\n &:first-child {\n display: inline-block;\n margin-left: 1rem;\n margin-right: 0.75rem;\n }\n\n &:last-child {\n padding-right: 2rem !important;\n }\n\n pre {\n overflow: visible; /* Fixed iOS safari overflow-x */\n word-break: normal; /* Fixed iOS safari linenos code break */\n }\n }\n }\n\n .lineno {\n text-align: right;\n color: var(--highlight-lineno-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n} /* .highlight */\n\ncode {\n -webkit-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n color: var(--code-color);\n\n &.highlighter-rouge {\n font-size: $code-font-size;\n padding: 3px 5px;\n word-break: break-word;\n border-radius: $radius-sm;\n background-color: var(--inline-code-bg);\n }\n\n &.filepath {\n background-color: inherit;\n color: var(--filepath-text-color);\n font-weight: 600;\n padding: 0;\n }\n\n a > &.highlighter-rouge {\n padding-bottom: 0; /* show link's underlinke */\n color: inherit;\n }\n\n a:hover > &.highlighter-rouge {\n border-bottom: none;\n }\n\n blockquote & {\n color: inherit;\n }\n}\n\ntd.rouge-code {\n @extend %code-snippet-padding;\n\n /*\n Prevent some browser extends from\n changing the URL string of code block.\n */\n a {\n color: inherit !important;\n border-bottom: none !important;\n pointer-events: none;\n }\n}\n\ndiv[class^='language-'] {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n box-shadow: var(--language-border-color) 0 0 0 1px;\n\n .content > & {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n }\n\n .highlight {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n/* Hide line numbers for default, console, and terminal code snippets */\ndiv {\n &.nolineno,\n &.language-plaintext,\n &.language-console,\n &.language-terminal {\n td:first-child {\n padding: 0 !important;\n margin-right: 0;\n\n .lineno {\n display: none;\n }\n }\n }\n}\n\n.code-header {\n @extend %no-cursor;\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: $code-header-height;\n margin-left: 0.75rem;\n margin-right: 0.25rem;\n\n /* the label block */\n span {\n line-height: $code-header-height;\n\n /* label icon */\n i {\n font-size: 1rem;\n width: $code-icon-width;\n color: var(--code-header-icon-color);\n\n &.small {\n font-size: 70%;\n }\n }\n\n @at-root [file] #{&} > i {\n position: relative;\n top: 1px; /* center the file icon */\n }\n\n /* label text */\n &::after {\n content: attr(data-label-text);\n font-size: 0.85rem;\n font-weight: 600;\n color: var(--code-header-text-color);\n }\n }\n\n /* clipboard */\n button {\n @extend %cursor-pointer;\n @extend %rounded;\n\n border: 1px solid transparent;\n height: $code-header-height;\n width: $code-header-height;\n padding: 0;\n background-color: inherit;\n\n i {\n color: var(--code-header-icon-color);\n }\n\n &[timeout] {\n &:hover {\n border-color: var(--clipboard-checked-color);\n }\n\n i {\n color: var(--clipboard-checked-color);\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:not([timeout]):hover {\n background-color: rgba(128, 128, 128, 0.37);\n\n i {\n color: white;\n }\n }\n }\n}\n\n@media all and (min-width: 576px) {\n div[class^='language-'] {\n .content > & {\n @include ml-mr(0);\n\n border-radius: $radius-lg;\n }\n\n .code-header {\n @include ml-mr(0);\n\n $dot-margin: 1rem;\n\n &::before {\n content: '';\n display: inline-block;\n margin-left: $dot-margin;\n width: $code-dot-size;\n height: $code-dot-size;\n border-radius: 50%;\n background-color: var(--code-header-muted-color);\n box-shadow: ($code-dot-size + $code-dot-gap) 0 0\n var(--code-header-muted-color),\n ($code-dot-size + $code-dot-gap) * 2 0 0\n var(--code-header-muted-color);\n }\n\n span {\n // center the text of label\n margin-left: calc(($dot-margin + $code-dot-size) / 2 * -1);\n }\n }\n }\n}\n","/*\n * The syntax light mode code snippet colors.\n */\n\n@mixin light-syntax {\n /* --- custom light colors --- */\n --language-border-color: #ececec;\n --highlight-bg-color: #f6f8fa;\n --highlighter-rouge-color: #3f596f;\n --highlight-lineno-color: #9e9e9e;\n --inline-code-bg: rgba(25, 25, 28, 0.05);\n --code-color: #3a3a3a;\n --code-header-text-color: #a3a3a3;\n --code-header-muted-color: #e5e5e5;\n --code-header-icon-color: #c9c8c8;\n --clipboard-checked-color: #43c743;\n\n /* --- Syntax highlight theme from `rougify style github` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #24292f;\n background-color: #f6f8fa;\n }\n\n .highlight .k,\n .highlight .kd,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kt,\n .highlight .kv {\n color: #cf222e;\n }\n\n .highlight .gr {\n color: #f6f8fa;\n }\n\n .highlight .gd {\n color: #82071e;\n background-color: #ffebe9;\n }\n\n .highlight .nb {\n color: #953800;\n }\n\n .highlight .nc {\n color: #953800;\n }\n\n .highlight .no {\n color: #953800;\n }\n\n .highlight .nn {\n color: #953800;\n }\n\n .highlight .sr {\n color: #116329;\n }\n\n .highlight .na {\n color: #116329;\n }\n\n .highlight .nt {\n color: #116329;\n }\n\n .highlight .gi {\n color: #116329;\n background-color: #dafbe1;\n }\n\n .highlight .kc {\n color: #0550ae;\n }\n\n .highlight .l,\n .highlight .ld,\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #0550ae;\n }\n\n .highlight .sb {\n color: #0550ae;\n }\n\n .highlight .bp {\n color: #0550ae;\n }\n\n .highlight .ne {\n color: #0550ae;\n }\n\n .highlight .nl {\n color: #0550ae;\n }\n\n .highlight .py {\n color: #0550ae;\n }\n\n .highlight .nv,\n .highlight .vc,\n .highlight .vg,\n .highlight .vi,\n .highlight .vm {\n color: #0550ae;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #0550ae;\n }\n\n .highlight .gh {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .gu {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .s,\n .highlight .sa,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .se,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1,\n .highlight .ss {\n color: #0a3069;\n }\n\n .highlight .nd {\n color: #8250df;\n }\n\n .highlight .nf,\n .highlight .fm {\n color: #8250df;\n }\n\n .highlight .err {\n color: #f6f8fa;\n background-color: #82071e;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cp,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #68717a;\n }\n\n .highlight .gl {\n color: #68717a;\n }\n\n .highlight .gt {\n color: #68717a;\n }\n\n .highlight .ni {\n color: #24292f;\n }\n\n .highlight .si {\n color: #24292f;\n }\n\n .highlight .ge {\n color: #24292f;\n font-style: italic;\n }\n\n .highlight .gs {\n color: #24292f;\n font-weight: bold;\n }\n} /* light-syntax */\n","/*\n * The syntax dark mode styles.\n */\n\n@mixin dark-syntax {\n --language-border-color: #2d2d2d;\n --highlight-bg-color: #151515;\n --highlighter-rouge-color: #c9def1;\n --highlight-lineno-color: #808080;\n --inline-code-bg: rgba(255, 255, 255, 0.05);\n --code-color: #b0b0b0;\n --code-header-text-color: #6a6a6a;\n --code-header-muted-color: #353535;\n --code-header-icon-color: #565656;\n --clipboard-checked-color: #2bcc2b;\n --filepath-text-color: #cacaca;\n\n .highlight .gp {\n color: #87939d;\n }\n\n /* --- Syntax highlight theme from `rougify style base16.dark` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #d0d0d0;\n background-color: #151515;\n }\n\n .highlight .err {\n color: #151515;\n background-color: #ac4142;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #848484;\n }\n\n .highlight .cp {\n color: #f4bf75;\n }\n\n .highlight .nt {\n color: #f4bf75;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #d0d0d0;\n }\n\n .highlight .p,\n .highlight .pi {\n color: #d0d0d0;\n }\n\n .highlight .gi {\n color: #90a959;\n }\n\n .highlight .gd {\n color: #f08a8b;\n background-color: #320000;\n }\n\n .highlight .gh {\n color: #6a9fb5;\n background-color: #151515;\n font-weight: bold;\n }\n\n .highlight .k,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kv {\n color: #aa759f;\n }\n\n .highlight .kc {\n color: #d28445;\n }\n\n .highlight .kt {\n color: #d28445;\n }\n\n .highlight .kd {\n color: #d28445;\n }\n\n .highlight .s,\n .highlight .sb,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1 {\n color: #90a959;\n }\n\n .highlight .sa {\n color: #aa759f;\n }\n\n .highlight .sr {\n color: #75b5aa;\n }\n\n .highlight .si {\n color: #b76d45;\n }\n\n .highlight .se {\n color: #b76d45;\n }\n\n .highlight .nn {\n color: #f4bf75;\n }\n\n .highlight .nc {\n color: #f4bf75;\n }\n\n .highlight .no {\n color: #f4bf75;\n }\n\n .highlight .na {\n color: #6a9fb5;\n }\n\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #90a959;\n }\n\n .highlight .ss {\n color: #90a959;\n }\n}\n","/* The common styles */\n\nhtml {\n font-size: 16px;\n\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-scheme;\n }\n\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n\n &[data-mode='light'] {\n @include light-scheme;\n }\n }\n}\n\nbody {\n background: var(--main-bg);\n padding: env(safe-area-inset-top) env(safe-area-inset-right)\n env(safe-area-inset-bottom) env(safe-area-inset-left);\n color: var(--text-color);\n -webkit-font-smoothing: antialiased;\n font-family: $font-family-base;\n}\n\n/* --- Typography --- */\n\n@for $i from 1 through 5 {\n h#{$i} {\n @extend %heading;\n\n @if $i > 1 {\n @extend %anchor;\n }\n\n @if $i < 5 {\n $size-factor: 0.25rem;\n\n @if $i > 1 {\n $size-factor: 0.18rem;\n\n main & {\n @if $i == 2 {\n margin: 2.5rem 0 1.25rem;\n } @else {\n margin: 2rem 0 1rem;\n }\n }\n }\n\n & {\n font-size: 1rem + (5 - $i) * $size-factor;\n }\n } @else {\n font-size: 1.05rem;\n }\n }\n}\n\na {\n @extend %link-color;\n\n text-decoration: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n transition: all 0.35s ease-in-out;\n\n .blur & {\n $blur: 20px;\n\n -webkit-filter: blur($blur);\n filter: blur($blur);\n }\n}\n\nblockquote {\n border-left: 0.125rem solid var(--blockquote-border-color);\n padding-left: 1rem;\n color: var(--blockquote-text-color);\n margin-top: 0.5rem;\n\n > p:last-child {\n margin-bottom: 0;\n }\n\n &[class^='prompt-'] {\n border-left: 0;\n position: relative;\n padding: 1rem 1rem 1rem 3rem;\n color: var(--prompt-text-color);\n\n @extend %rounded;\n\n &::before {\n text-align: center;\n width: 3rem;\n position: absolute;\n left: 0.25rem;\n margin-top: 0.4rem;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n }\n }\n\n @include prompt('tip', '\\f0eb', $fa-style: 'regular');\n @include prompt('info', '\\f06a', $rotate: 180);\n @include prompt('warning', '\\f06a');\n @include prompt('danger', '\\f071');\n}\n\nkbd {\n font-family: Lato, sans-serif;\n display: inline-block;\n vertical-align: middle;\n line-height: 1.3rem;\n min-width: 1.75rem;\n text-align: center;\n margin: 0 0.3rem;\n padding-top: 0.1rem;\n color: var(--kbd-text-color);\n background-color: var(--kbd-bg-color);\n border-radius: $radius-sm;\n border: solid 1px var(--kbd-wrap-color);\n box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);\n}\n\nhr {\n border-color: var(--main-border-color);\n opacity: 1;\n}\n\nfooter {\n background-color: var(--main-bg);\n height: $footer-height;\n border-top: 1px solid var(--main-border-color);\n\n @extend %text-xs;\n\n a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n em {\n @extend %text-highlight;\n }\n\n p {\n text-align: center;\n margin-bottom: 0;\n }\n}\n\n/* fontawesome icons */\ni {\n &.far,\n &.fas {\n @extend %no-cursor;\n }\n}\n\n/* --- Panels --- */\n\n.access {\n top: 2rem;\n transition: top 0.2s ease-in-out;\n margin-top: 3rem;\n margin-bottom: 4rem;\n\n &:only-child {\n position: -webkit-sticky;\n position: sticky;\n }\n\n > section {\n padding-left: 1rem;\n border-left: 1px solid var(--main-border-color);\n\n &:not(:last-child) {\n margin-bottom: 4rem;\n }\n }\n\n .content {\n font-size: 0.9rem;\n }\n}\n\n#panel-wrapper {\n /* the headings */\n .panel-heading {\n font-family: inherit;\n line-height: inherit;\n\n @include label(inherit);\n }\n\n .post-tag {\n line-height: 1.05rem;\n font-size: 0.85rem;\n border-radius: 0.8rem;\n padding: 0.3rem 0.5rem;\n margin: 0 0.35rem 0.5rem 0;\n\n &:hover {\n transition: all 0.3s ease-in;\n }\n }\n}\n\n#access-lastmod {\n a {\n color: inherit;\n\n &:hover {\n @extend %link-hover;\n }\n\n @extend %no-bottom-border;\n }\n}\n\n.footnotes > ol {\n padding-left: 2rem;\n margin-top: 0.5rem;\n\n > li {\n &:not(:last-child) {\n margin-bottom: 0.3rem;\n }\n\n @extend %sup-fn-target;\n\n > p {\n margin-left: 0.25em;\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n}\n\n.footnote {\n @at-root a#{&} {\n @include ml-mr(1px);\n @include pl-pr(2px);\n\n border-bottom-style: none !important;\n }\n}\n\nsup {\n @extend %sup-fn-target;\n}\n\n.reversefootnote {\n @at-root a#{&} {\n font-size: 0.6rem;\n line-height: 1;\n position: relative;\n bottom: 0.25em;\n margin-left: 0.25em;\n border-bottom-style: none !important;\n }\n}\n\n/* --- Begin of Markdown table style --- */\n\n/* it will be created by Liquid */\n.table-wrapper {\n overflow-x: auto;\n margin-bottom: 1.5rem;\n\n > table {\n min-width: 100%;\n overflow-x: auto;\n border-spacing: 0;\n\n thead {\n border-bottom: solid 2px rgba(210, 215, 217, 0.75);\n\n th {\n @extend %table-cell;\n }\n }\n\n tbody {\n tr {\n border-bottom: 1px solid var(--tb-border-color);\n\n &:nth-child(2n) {\n background-color: var(--tb-even-bg);\n }\n\n &:nth-child(2n + 1) {\n background-color: var(--tb-odd-bg);\n }\n\n td {\n @extend %table-cell;\n }\n }\n } /* tbody */\n } /* table */\n}\n\n/* --- post --- */\n\n.preview-img {\n aspect-ratio: 40 / 21;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n @extend %rounded;\n\n &:not(.no-bg) {\n background: var(--img-bg);\n }\n\n img {\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n\n @extend %rounded;\n\n @at-root #post-list & {\n width: 100%;\n }\n }\n}\n\n.post-preview {\n @extend %rounded;\n\n border: 0;\n background: var(--card-bg);\n box-shadow: var(--card-shadow);\n\n &::before {\n @extend %rounded;\n\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: var(--card-hovor-bg);\n opacity: 0;\n transition: opacity 0.35s ease-in-out;\n }\n\n &:hover {\n &::before {\n opacity: 0.3;\n }\n }\n}\n\nmain {\n line-height: 1.6;\n text-align: justify;\n\n h1 {\n margin-top: 2rem;\n }\n\n p {\n > a.popup {\n &:not(.normal):not(.left):not(.right) {\n @include align-center;\n }\n }\n }\n\n .categories,\n #tags,\n #archives {\n a:not(:hover) {\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-meta {\n @extend %text-sm;\n\n a {\n &:not([class]):hover {\n @extend %link-hover;\n }\n }\n\n em {\n @extend %normal-font-style;\n }\n}\n\n.content {\n font-size: 1.08rem;\n margin-top: 2rem;\n overflow-wrap: break-word;\n\n a {\n &.popup {\n @extend %no-cursor;\n @extend %img-caption;\n @include mt-mb(0.5rem);\n\n cursor: zoom-in;\n }\n\n &:not(.img-link) {\n @extend %link-underline;\n\n &:hover {\n @extend %link-hover;\n }\n }\n }\n\n ol,\n ul {\n &:not([class]),\n &.task-list {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n\n li {\n margin: 0.25rem 0;\n padding-left: 0.25rem;\n }\n\n ol,\n ul {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n margin: 0.5rem 0;\n }\n }\n }\n\n ul.task-list {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n\n li {\n list-style-type: none;\n padding-left: 0;\n\n /* checkbox icon */\n > i {\n width: 2rem;\n margin-left: -1.25rem;\n color: var(--checkbox-color);\n\n &.checked {\n color: var(--checkbox-checked-color);\n }\n }\n\n ul {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n }\n }\n\n input[type='checkbox'] {\n margin: 0 0.5rem 0.2rem -1.3rem;\n vertical-align: middle;\n }\n } /* ul */\n\n dl > dd {\n margin-left: 1rem;\n }\n\n ::marker {\n color: var(--text-muted-color);\n }\n} /* .content */\n\n.tag:hover {\n @extend %tag-hover;\n}\n\n.post-tag {\n display: inline-block;\n min-width: 2rem;\n text-align: center;\n border-radius: 0.5rem;\n border: 1px solid var(--btn-border-color);\n padding: 0 0.4rem;\n color: var(--text-muted-color);\n line-height: 1.3rem;\n\n &:not(:last-child) {\n margin-right: 0.2rem;\n }\n}\n\n.rounded-10 {\n border-radius: 10px !important;\n}\n\n.img-link {\n color: transparent;\n display: inline-flex;\n}\n\n.shimmer {\n overflow: hidden;\n position: relative;\n background: var(--img-bg);\n\n &::before {\n content: '';\n position: absolute;\n background: var(--shimmer-bg);\n height: 100%;\n width: 100%;\n -webkit-animation: shimmer 1.3s infinite;\n animation: shimmer 1.3s infinite;\n }\n\n @-webkit-keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n\n @keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n}\n\n.embed-video {\n width: 100%;\n height: 100%;\n margin-bottom: 1rem;\n aspect-ratio: 16 / 9;\n\n @extend %rounded;\n\n &.twitch {\n aspect-ratio: 310 / 189;\n }\n\n &.file {\n display: block;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n margin-bottom: 0;\n }\n\n @extend %img-caption;\n}\n\n.embed-audio {\n width: 100%;\n display: block;\n\n @extend %img-caption;\n}\n\n/* --- buttons --- */\n.btn-lang {\n border: 1px solid !important;\n padding: 1px 3px;\n border-radius: 3px;\n color: var(--link-color);\n\n &:focus {\n box-shadow: none;\n }\n}\n\n/* --- Effects classes --- */\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.btn-box-shadow {\n box-shadow: var(--card-shadow);\n}\n\n/* overwrite bootstrap muted */\n.text-muted {\n color: var(--text-muted-color) !important;\n}\n\n/* Overwrite bootstrap tooltip */\n.tooltip-inner {\n font-size: 0.7rem;\n max-width: 220px;\n text-align: left;\n}\n\n/* Overwrite bootstrap outline button */\n.btn.btn-outline-primary {\n &:not(.disabled):hover {\n border-color: #007bff !important;\n }\n}\n\n.disabled {\n color: rgb(206, 196, 196);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.hide-border-bottom {\n border-bottom: none !important;\n}\n\n.input-focus {\n box-shadow: none;\n border-color: var(--input-focus-border-color) !important;\n background: center !important;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n\n.left {\n float: left;\n margin: 0.75rem 1rem 1rem 0;\n}\n\n.right {\n float: right;\n margin: 0.75rem 0 1rem 1rem;\n}\n\n/* --- Overriding --- */\n\n/* mermaid */\n.mermaid {\n text-align: center;\n}\n\n/* MathJax */\nmjx-container {\n overflow-y: hidden;\n min-width: auto !important;\n}\n\n/* --- sidebar layout --- */\n\n$sidebar-display: 'sidebar-display';\n$btn-border-width: 3px;\n$btn-mb: 0.5rem;\n\n#sidebar {\n @include pl-pr(0);\n\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n overflow-y: auto;\n width: $sidebar-width;\n z-index: 99;\n background: var(--sidebar-bg);\n border-right: 1px solid var(--sidebar-border-color);\n\n /* Hide scrollbar for IE, Edge and Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n\n %sidebar-link-hover {\n &:hover {\n color: var(--sidebar-active-color);\n }\n }\n\n a {\n @extend %sidebar-links;\n }\n\n #avatar {\n display: block;\n width: 7rem;\n height: 7rem;\n overflow: hidden;\n box-shadow: var(--avatar-border-color) 0 0 0 2px;\n transform: translateZ(0); /* fixed the zoom in Safari */\n\n img {\n transition: transform 0.5s;\n\n &:hover {\n transform: scale(1.2);\n }\n }\n }\n\n .profile-wrapper {\n @include mt-mb(2.5rem);\n @extend %clickable-transition;\n\n padding-left: 2.5rem;\n padding-right: 1.25rem;\n width: 100%;\n }\n\n .site-title {\n font-family: inherit;\n font-weight: 900;\n font-size: 1.75rem;\n line-height: 1.2;\n letter-spacing: 0.25px;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n\n a {\n @extend %clickable-transition;\n @extend %sidebar-link-hover;\n\n color: var(--site-title-color);\n }\n }\n\n .site-subtitle {\n font-size: 95%;\n color: var(--site-subtitle-color);\n margin-top: 0.25rem;\n word-spacing: 1px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n ul {\n margin-bottom: 2rem;\n\n li.nav-item {\n opacity: 0.9;\n width: 100%;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n\n a.nav-link {\n @include pt-pb(0.6rem);\n\n display: flex;\n align-items: center;\n border-radius: 0.75rem;\n font-weight: 600;\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n\n i {\n font-size: 95%;\n opacity: 0.8;\n margin-right: 1.5rem;\n }\n\n span {\n font-size: 90%;\n letter-spacing: 0.2px;\n }\n }\n\n &.active {\n .nav-link {\n color: var(--sidebar-active-color);\n background-color: var(--sidebar-hover-bg);\n\n span {\n opacity: 1;\n }\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.25rem;\n }\n }\n }\n\n .sidebar-bottom {\n padding-left: 2rem;\n padding-right: 1rem;\n margin-bottom: 1.5rem;\n\n $btn-size: 1.75rem;\n\n %button {\n width: $btn-size;\n height: $btn-size;\n margin-bottom: $btn-mb; // multi line gap\n border-radius: 50%;\n color: var(--sidebar-btn-color);\n background-color: var(--sidebar-btn-bg);\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:not(:focus-visible) {\n box-shadow: var(--sidebar-border-color) 0 0 0 1px;\n }\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n }\n\n a {\n @extend %button;\n @extend %sidebar-link-hover;\n @extend %clickable-transition;\n\n &:not(:last-child) {\n margin-right: $sb-btn-gap;\n }\n }\n\n i {\n line-height: $btn-size;\n }\n\n #mode-toggle {\n @extend %button;\n @extend %sidebar-links;\n @extend %sidebar-link-hover;\n }\n\n .icon-border {\n @extend %no-cursor;\n @include ml-mr(calc(($sb-btn-gap - $btn-border-width) / 2));\n\n background-color: var(--sidebar-btn-color);\n content: '';\n width: $btn-border-width;\n height: $btn-border-width;\n border-radius: 50%;\n margin-bottom: $btn-mb;\n }\n } /* .sidebar-bottom */\n} /* #sidebar */\n\n@media (hover: hover) {\n #sidebar ul > li:last-child::after {\n transition: top 0.5s ease;\n }\n\n .nav-link {\n transition: background-color 0.3s ease-in-out;\n }\n\n .post-preview {\n transition: background-color 0.35s ease-in-out;\n }\n}\n\n#search-result-wrapper {\n display: none;\n height: 100%;\n width: 100%;\n overflow: auto;\n\n .content {\n margin-top: 2rem;\n }\n}\n\n/* --- top-bar --- */\n\n#topbar-wrapper {\n height: $topbar-height;\n background-color: var(--topbar-bg);\n}\n\n#topbar {\n button i {\n color: #999999;\n }\n\n #breadcrumb {\n font-size: 1rem;\n color: var(--text-muted-color);\n padding-left: 0.5rem;\n\n a:hover {\n @extend %link-hover;\n }\n\n span {\n &:not(:last-child) {\n &::after {\n content: '›';\n padding: 0 0.3rem;\n }\n }\n }\n }\n} /* #topbar */\n\n::-webkit-input-placeholder {\n @include placeholder;\n}\n\n::-moz-placeholder {\n @include placeholder;\n}\n\n:-ms-input-placeholder {\n @include placeholder;\n}\n\n::-ms-input-placeholder {\n @include placeholder;\n}\n\n::placeholder {\n @include placeholder;\n}\n\n:focus::-webkit-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-moz-placeholder {\n @include placeholder-focus;\n}\n\n:focus:-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::placeholder {\n @include placeholder-focus;\n}\n\nsearch {\n display: flex;\n width: 100%;\n border-radius: 1rem;\n border: 1px solid var(--search-border-color);\n background: var(--main-bg);\n padding: 0 0.5rem;\n\n i {\n z-index: 2;\n font-size: 0.9rem;\n color: var(--search-icon-color);\n }\n}\n\n#sidebar-trigger,\n#search-trigger {\n display: none;\n}\n\n/* 'Cancel' link */\n#search-cancel {\n color: var(--link-color);\n display: none;\n white-space: nowrap;\n\n @extend %cursor-pointer;\n}\n\n#search-input {\n background: center;\n border: 0;\n border-radius: 0;\n padding: 0.18rem 0.3rem;\n color: var(--text-color);\n height: auto;\n\n &:focus {\n box-shadow: none;\n }\n}\n\n#search-hints {\n padding: 0 1rem;\n\n h4 {\n margin-bottom: 1.5rem;\n }\n\n .post-tag {\n display: inline-block;\n line-height: 1rem;\n font-size: 1rem;\n background: var(--search-tag-bg);\n border: none;\n padding: 0.5rem;\n margin: 0 1.25rem 1rem 0;\n\n &::before {\n content: '#';\n color: var(--text-muted-color);\n padding-right: 0.2rem;\n }\n\n @extend %link-color;\n }\n}\n\n#search-results {\n padding-bottom: 3rem;\n\n a {\n font-size: 1.4rem;\n line-height: 2.5rem;\n\n &:hover {\n @extend %link-hover;\n }\n\n @extend %link-color;\n @extend %no-bottom-border;\n @extend %heading;\n }\n\n > article {\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 1rem;\n }\n\n /* icons */\n i {\n color: #818182;\n margin-right: 0.15rem;\n font-size: 80%;\n }\n\n > p {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n }\n }\n} /* #search-results */\n\n#topbar-title {\n display: none;\n font-size: 1.1rem;\n font-weight: 600;\n font-family: sans-serif;\n color: var(--topbar-text-color);\n text-align: center;\n width: 70%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n}\n\n#mask {\n display: none;\n position: fixed;\n inset: 0 0 0 0;\n height: 100%;\n width: 100%;\n z-index: 1;\n\n @at-root [#{$sidebar-display}] & {\n display: block !important;\n }\n}\n\n/* --- basic wrappers --- */\n\n#main-wrapper {\n position: relative;\n\n @include pl-pr(0);\n\n > .container {\n min-height: 100vh;\n }\n}\n\n#topbar-wrapper.row,\n#main-wrapper > .container > .row,\n#search-result-wrapper > .row {\n @include ml-mr(0);\n}\n\n#tail-wrapper {\n > :not(script) {\n margin-top: 3rem;\n }\n}\n\n/* --- button back-to-top --- */\n\n#back-to-top {\n visibility: hidden;\n opacity: 0;\n z-index: 1;\n cursor: pointer;\n position: fixed;\n right: 1rem;\n bottom: calc($footer-height-large - $back2top-size / 2);\n background: var(--button-bg);\n color: var(--btn-backtotop-color);\n padding: 0;\n width: $back2top-size;\n height: $back2top-size;\n border-radius: 50%;\n border: 1px solid var(--btn-backtotop-border-color);\n transition: opacity 0.5s ease-in-out, transform 0.2s ease-out;\n\n &:hover {\n transform: translate3d(0, -5px, 0);\n -webkit-transform: translate3d(0, -5px, 0);\n }\n\n i {\n line-height: $back2top-size;\n position: relative;\n bottom: 2px;\n }\n\n &.show {\n opacity: 1;\n visibility: visible;\n }\n}\n\n#notification {\n @-webkit-keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n @keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n .toast-header {\n background: none;\n border-bottom: none;\n color: inherit;\n }\n\n .toast-body {\n font-family: Lato, sans-serif;\n line-height: 1.25rem;\n\n button {\n font-size: 90%;\n min-width: 4rem;\n }\n }\n\n &.toast {\n &.show {\n display: block;\n min-width: 20rem;\n border-radius: 0.5rem;\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n background-color: rgba(255, 255, 255, 0.5);\n color: #1b1b1eba;\n position: fixed;\n left: 50%;\n bottom: 20%;\n transform: translateX(-50%);\n -webkit-animation: popup 0.8s;\n animation: popup 0.8s;\n }\n }\n}\n\n/*\n Responsive Design:\n\n {sidebar, content, panel} >= 1200px screen width\n {sidebar, content} >= 850px screen width\n {content} <= 849px screen width\n\n*/\n\n@media all and (max-width: 576px) {\n main {\n .content {\n > blockquote[class^='prompt-'] {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n max-width: none;\n }\n }\n }\n\n #avatar {\n width: 5rem;\n height: 5rem;\n }\n}\n\n@media all and (max-width: 768px) {\n %full-width {\n max-width: 100%;\n }\n\n #topbar {\n @extend %full-width;\n }\n\n #main-wrapper > .container {\n @extend %full-width;\n @include pl-pr(0);\n }\n}\n\n/* hide sidebar and panel */\n@media all and (max-width: 849px) {\n @mixin slide($append: null) {\n $basic: transform 0.4s ease;\n\n @if $append {\n transition: $basic, $append;\n } @else {\n transition: $basic;\n }\n }\n\n footer {\n @include slide;\n\n height: $footer-height-large;\n padding: 1.5rem 0;\n }\n\n [#{$sidebar-display}] {\n #sidebar {\n transform: translateX(0);\n }\n\n #main-wrapper {\n transform: translateX($sidebar-width);\n }\n\n #back-to-top {\n visibility: hidden;\n }\n }\n\n #sidebar {\n @include slide;\n\n transform: translateX(-$sidebar-width); /* hide */\n -webkit-transform: translateX(-$sidebar-width);\n }\n\n #main-wrapper {\n @include slide;\n }\n\n #topbar,\n #main-wrapper > .container {\n max-width: 100%;\n }\n\n #search-result-wrapper {\n width: 100%;\n }\n\n #breadcrumb,\n search {\n display: none;\n }\n\n #topbar-wrapper {\n @include slide(top 0.2s ease);\n\n left: 0;\n }\n\n main,\n #panel-wrapper {\n margin-top: 0;\n }\n\n #topbar-title,\n #sidebar-trigger,\n #search-trigger {\n display: block;\n }\n\n #search-result-wrapper .content {\n letter-spacing: 0;\n }\n\n #tags {\n justify-content: center !important;\n }\n\n h1.dynamic-title {\n display: none;\n\n ~ .content {\n margin-top: 2.5rem;\n }\n }\n} /* max-width: 849px */\n\n/* Sidebar is visible */\n@media all and (min-width: 850px) {\n /* Solved jumping scrollbar */\n html {\n overflow-y: scroll;\n }\n\n #main-wrapper {\n margin-left: $sidebar-width;\n }\n\n #sidebar {\n .profile-wrapper {\n margin-top: 3rem;\n }\n }\n\n #search-hints {\n display: none;\n }\n\n search {\n max-width: $search-max-width;\n }\n\n #search-result-wrapper {\n max-width: $main-content-max-width;\n justify-content: start !important;\n }\n\n main {\n h1 {\n margin-top: 3rem;\n }\n }\n\n div.content .table-wrapper > table {\n min-width: 70%;\n }\n\n /* button 'back-to-Top' position */\n #back-to-top {\n right: 5%;\n bottom: calc($footer-height - $back2top-size / 2);\n }\n\n #topbar-title {\n text-align: left;\n }\n}\n\n/* Pad horizontal */\n@media all and (min-width: 992px) and (max-width: 1199px) {\n #main-wrapper > .container .col-lg-11 {\n flex: 0 0 96%;\n max-width: 96%;\n }\n}\n\n/* Compact icons in sidebar & panel hidden */\n@media all and (min-width: 850px) and (max-width: 1199px) {\n #search-results > div {\n max-width: 700px;\n }\n\n #breadcrumb {\n width: 65%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n }\n}\n\n/* panel hidden */\n@media all and (max-width: 1199px) {\n #panel-wrapper {\n display: none;\n }\n\n #main-wrapper > .container > div.row {\n justify-content: center !important;\n }\n}\n\n/* --- desktop mode, both sidebar and panel are visible --- */\n\n@media all and (min-width: 1200px) {\n search {\n margin-right: 4rem;\n }\n\n #search-input {\n transition: all 0.3s ease-in-out;\n }\n\n #search-results > article {\n width: 45%;\n\n &:nth-child(odd) {\n margin-right: 1.5rem;\n }\n\n &:nth-child(even) {\n margin-left: 1.5rem;\n }\n\n &:last-child:nth-child(odd) {\n position: relative;\n right: 24.3%;\n }\n }\n\n .content {\n font-size: 1.03rem;\n }\n}\n\n@media all and (min-width: 1400px) {\n #back-to-top {\n right: calc((100vw - $sidebar-width - 1140px) / 2 + 3rem);\n }\n}\n\n@media all and (min-width: 1650px) {\n $icon-gap: 1rem;\n\n #main-wrapper {\n margin-left: $sidebar-width-large;\n }\n\n #topbar-wrapper {\n left: $sidebar-width-large;\n }\n\n search {\n margin-right: calc(\n $main-content-max-width / 4 - $search-max-width - 0.75rem\n );\n }\n\n #main-wrapper > .container {\n max-width: $main-content-max-width;\n padding-left: 1.75rem !important;\n padding-right: 1.75rem !important;\n }\n\n main.col-12,\n #tail-wrapper {\n padding-right: 4.5rem !important;\n }\n\n #back-to-top {\n right: calc(\n (100vw - $sidebar-width-large - $main-content-max-width) / 2 + 2rem\n );\n }\n\n #sidebar {\n width: $sidebar-width-large;\n\n .profile-wrapper {\n margin-top: 3.5rem;\n margin-bottom: 2.5rem;\n padding-left: 3.5rem;\n }\n\n ul {\n li.nav-item {\n @include pl-pr(2.75rem);\n }\n }\n\n .sidebar-bottom {\n padding-left: 2.75rem;\n margin-bottom: 1.75rem;\n\n a:not(:last-child) {\n margin-right: $sb-btn-gap-lg;\n }\n\n .icon-border {\n @include ml-mr(calc(($sb-btn-gap-lg - $btn-border-width) / 2));\n }\n }\n }\n} /* min-width: 1650px */\n","/*\n * The syntax light mode typography colors\n */\n\n@mixin light-scheme {\n /* Framework color */\n --main-bg: white;\n --mask-bg: #c1c3c5;\n --main-border-color: #f3f3f3;\n\n /* Common color */\n --text-color: #34343c;\n --text-muted-color: #757575;\n --text-muted-highlight-color: inherit;\n --heading-color: #2a2a2a;\n --label-color: #585858;\n --blockquote-border-color: #eeeeee;\n --blockquote-text-color: #757575;\n --link-color: #0056b2;\n --link-underline-color: #dee2e6;\n --button-bg: #ffffff;\n --btn-border-color: #e9ecef;\n --btn-backtotop-color: #686868;\n --btn-backtotop-border-color: #f1f1f1;\n --btn-box-shadow: #eaeaea;\n --checkbox-color: #c5c5c5;\n --checkbox-checked-color: #07a8f7;\n --img-bg: radial-gradient(\n circle,\n rgb(255, 255, 255) 0%,\n rgb(239, 239, 239) 100%\n );\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(250, 250, 250, 0) 0%,\n rgba(232, 230, 230, 1) 50%,\n rgba(250, 250, 250, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: rgb(113, 113, 113);\n --site-subtitle-color: #717171;\n --sidebar-bg: #f6f8fa;\n --sidebar-border-color: #efefef;\n --sidebar-muted-color: #545454;\n --sidebar-active-color: #1d1d1d;\n --sidebar-hover-bg: rgb(223, 233, 241, 0.64);\n --sidebar-btn-bg: white;\n --sidebar-btn-color: #8e8e8e;\n --avatar-border-color: white;\n\n /* Topbar */\n --topbar-bg: rgb(255, 255, 255, 0.7);\n --topbar-text-color: rgb(78, 78, 78);\n --search-border-color: rgb(240, 240, 240);\n --search-icon-color: #c2c6cc;\n --input-focus-border-color: #b8b8b8;\n\n /* Home page */\n --post-list-text-color: dimgray;\n --btn-patinator-text-color: #555555;\n --btn-paginator-hover-color: var(--sidebar-bg);\n\n /* Posts */\n --toc-highlight: #0550ae;\n --btn-share-color: gray;\n --btn-share-hover-color: #0d6efd;\n --card-bg: white;\n --card-hovor-bg: #e2e2e2;\n --card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0,\n rgba(211, 209, 209, 0.15) 0 0 0 1px;\n --footnote-target-bg: lightcyan;\n --tb-odd-bg: #fbfcfd;\n --tb-border-color: #eaeaea;\n --dash-color: silver;\n --kbd-wrap-color: #bdbdbd;\n --kbd-text-color: var(--text-color);\n --kbd-bg-color: white;\n --prompt-text-color: rgb(46, 46, 46, 0.77);\n --prompt-tip-bg: rgb(123, 247, 144, 0.2);\n --prompt-tip-icon-color: #03b303;\n --prompt-info-bg: #e1f5fe;\n --prompt-info-icon-color: #0070cb;\n --prompt-warning-bg: rgb(255, 243, 205);\n --prompt-warning-icon-color: #ef9c03;\n --prompt-danger-bg: rgb(248, 215, 218, 0.56);\n --prompt-danger-icon-color: #df3c30;\n\n /* Tags */\n --tag-border: #dee2e6;\n --tag-shadow: var(--btn-border-color);\n --tag-hover: rgb(222, 226, 230);\n --search-tag-bg: #f8f9fa;\n\n /* Categories */\n --categories-border: rgba(0, 0, 0, 0.125);\n --categories-hover-bg: var(--btn-border-color);\n --categories-icon-hover-color: darkslategray;\n\n /* Archive */\n --timeline-color: rgba(0, 0, 0, 0.075);\n --timeline-node-bg: #c2c6cc;\n --timeline-year-dot-color: #ffffff;\n\n [class^='prompt-'] {\n --link-underline-color: rgb(219, 216, 216);\n }\n\n .dark {\n display: none;\n }\n} /* light-scheme */\n","/*\n * The main dark mode styles\n */\n\n@mixin dark-scheme {\n /* Framework color */\n --main-bg: rgb(27, 27, 30);\n --mask-bg: rgb(68, 69, 70);\n --main-border-color: rgb(44, 45, 45);\n\n /* Common color */\n --text-color: rgb(175, 176, 177);\n --text-muted-color: #868686;\n --text-muted-highlight-color: #aeaeae;\n --heading-color: #cccccc;\n --label-color: #a7a7a7;\n --blockquote-border-color: rgb(66, 66, 66);\n --blockquote-text-color: #868686;\n --link-color: rgb(138, 180, 248);\n --link-underline-color: rgb(82, 108, 150);\n --button-bg: #1e1e1e;\n --btn-border-color: #2e2f31;\n --btn-backtotop-color: var(--text-color);\n --btn-backtotop-border-color: #212122;\n --btn-box-shadow: var(--main-bg);\n --card-header-bg: #292929;\n --checkbox-color: rgb(118, 120, 121);\n --checkbox-checked-color: var(--link-color);\n --img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(58, 55, 55, 0.4) 50%,\n rgba(255, 255, 255, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: #717070;\n --site-subtitle-color: #868686;\n --sidebar-bg: #1e1e1e;\n --sidebar-border-color: #292929;\n --sidebar-muted-color: #868686;\n --sidebar-active-color: rgb(255, 255, 255, 0.95);\n --sidebar-hover-bg: #262626;\n --sidebar-btn-bg: #232328;\n --sidebar-btn-color: #787878;\n --avatar-border-color: rgb(206, 206, 206, 0.9);\n\n /* Topbar */\n --topbar-bg: rgb(27, 27, 30, 0.64);\n --topbar-text-color: var(--text-color);\n --search-border-color: rgb(55, 55, 55);\n --search-icon-color: rgb(100, 102, 105);\n --input-focus-border-color: rgb(112, 114, 115);\n\n /* Home page */\n --post-list-text-color: rgb(175, 176, 177);\n --btn-patinator-text-color: var(--text-color);\n --btn-paginator-hover-color: #2e2e2e;\n\n /* Posts */\n --toc-highlight: rgb(116, 178, 243);\n --tag-hover: rgb(43, 56, 62);\n --tb-odd-bg: #252526; /* odd rows of the posts' table */\n --tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */\n --tb-border-color: var(--tb-odd-bg);\n --footnote-target-bg: rgb(63, 81, 181);\n --btn-share-color: #6c757d;\n --btn-share-hover-color: #bfc1ca;\n --card-bg: #1e1e1e;\n --card-hovor-bg: #464d51;\n --card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0,\n rgb(137, 135, 135, 0.24) 0 0 0 1px;\n --kbd-wrap-color: #6a6a6a;\n --kbd-text-color: #d3d3d3;\n --kbd-bg-color: #242424;\n --prompt-text-color: rgb(216, 212, 212, 0.75);\n --prompt-tip-bg: rgb(22, 60, 36, 0.64);\n --prompt-tip-icon-color: rgb(15, 164, 15, 0.81);\n --prompt-info-bg: rgb(7, 59, 104, 0.8);\n --prompt-info-icon-color: #0075d1;\n --prompt-warning-bg: rgb(90, 69, 3, 0.88);\n --prompt-warning-icon-color: rgb(255, 165, 0, 0.8);\n --prompt-danger-bg: rgb(86, 28, 8, 0.8);\n --prompt-danger-icon-color: #cd0202;\n\n /* Tags */\n --tag-border: rgb(59, 79, 88);\n --tag-shadow: rgb(32, 33, 33);\n --dash-color: rgb(63, 65, 68);\n --search-tag-bg: #292828;\n\n /* Categories */\n --categories-border: rgb(64, 66, 69, 0.5);\n --categories-hover-bg: rgb(73, 75, 76);\n --categories-icon-hover-color: white;\n\n /* Archive */\n --timeline-node-bg: rgb(150, 152, 156);\n --timeline-color: rgb(63, 65, 68);\n --timeline-year-dot-color: var(--timeline-color);\n\n color-scheme: dark;\n\n .light {\n display: none;\n }\n\n /* Categories */\n .categories.card,\n .list-group-item {\n background-color: var(--card-bg);\n }\n\n .categories {\n .card-header {\n background-color: var(--card-header-bg);\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n border-color: var(--categories-border);\n\n &:last-child {\n border-bottom-color: var(--card-bg);\n }\n }\n }\n\n #archives li:nth-child(odd) {\n background-image: linear-gradient(\n to left,\n rgb(26, 26, 30),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(26, 26, 30)\n );\n }\n\n /* stylelint-disable-next-line selector-id-pattern */\n #disqus_thread {\n color-scheme: none;\n }\n} /* dark-scheme */\n","/*\n Style for Homepage\n*/\n\n#post-list {\n margin-top: 2rem;\n\n .card-wrapper {\n &:hover {\n text-decoration: none;\n }\n\n &:not(:last-child) {\n margin-bottom: 1.25rem;\n }\n }\n\n .card {\n border: 0;\n background: none;\n\n %img-radius {\n border-radius: $radius-lg $radius-lg 0 0;\n }\n\n .preview-img {\n @extend %img-radius;\n\n img {\n @extend %img-radius;\n }\n }\n\n .card-body {\n height: 100%;\n padding: 1rem;\n\n .card-title {\n @extend %text-clip;\n\n color: var(--heading-color) !important;\n font-size: 1.25rem;\n }\n\n %muted {\n color: var(--text-muted-color) !important;\n }\n\n .card-text.content {\n @extend %muted;\n\n p {\n @extend %text-clip;\n\n line-height: 1.5;\n margin: 0;\n }\n }\n\n .post-meta {\n @extend %muted;\n\n i {\n &:not(:first-child) {\n margin-left: 1.5rem;\n }\n }\n\n em {\n @extend %normal-font-style;\n\n color: inherit;\n }\n\n > div:first-child {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n} /* #post-list */\n\n.pagination {\n color: var(--text-color);\n font-family: Lato, sans-serif;\n justify-content: space-evenly;\n\n a:hover {\n text-decoration: none;\n }\n\n .page-item {\n .page-link {\n color: var(--btn-patinator-text-color);\n padding: 0 0.6rem;\n display: -webkit-box;\n -webkit-box-pack: center;\n -webkit-box-align: center;\n border-radius: 0.5rem;\n border: 0;\n background-color: inherit;\n }\n\n &.active {\n .page-link {\n background-color: var(--btn-paginator-hover-color);\n }\n }\n\n &:not(.active) {\n .page-link {\n &:hover {\n box-shadow: inset var(--btn-border-color) 0 0 0 1px;\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n\n .page-link {\n color: rgba(108, 117, 125, 0.57);\n }\n }\n } /* .page-item */\n} /* .pagination */\n\n/* Tablet */\n@media all and (min-width: 768px) {\n %img-radius {\n border-radius: 0 $radius-lg $radius-lg 0;\n }\n\n #post-list {\n .card {\n .card-body {\n padding: 1.75rem 1.75rem 1.25rem 1.75rem;\n\n .card-text {\n display: inherit !important;\n }\n\n .post-meta {\n i {\n &:not(:first-child) {\n margin-left: 1.75rem;\n }\n }\n }\n }\n }\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 830px) {\n .pagination {\n .page-item {\n &:not(:first-child):not(:last-child) {\n display: none;\n }\n }\n }\n}\n\n/* Sidebar is visible */\n@media all and (min-width: 831px) {\n #post-list {\n margin-top: 2.5rem;\n }\n\n .pagination {\n font-size: 0.85rem;\n justify-content: center;\n\n .page-item {\n &:not(:last-child) {\n margin-right: 0.7rem;\n }\n }\n\n .page-index {\n display: none;\n }\n } /* .pagination */\n}\n","/*\n Post-specific style\n*/\n\n%btn-post-nav {\n width: 50%;\n position: relative;\n border-color: var(--btn-border-color);\n}\n\n@mixin dot($pl: 0.25rem, $pr: 0.25rem) {\n content: '\\2022';\n padding-left: $pl;\n padding-right: $pr;\n}\n\nheader {\n .post-desc {\n @extend %heading;\n\n font-size: 1.125rem;\n line-height: 1.6;\n }\n\n .post-meta {\n span + span::before {\n @include dot;\n }\n\n em,\n time {\n @extend %text-highlight;\n }\n\n em {\n a {\n color: inherit;\n }\n }\n }\n\n h1 + .post-meta {\n margin-top: 1.5rem;\n }\n}\n\n.post-tail-wrapper {\n @extend %text-sm;\n\n margin-top: 6rem;\n border-bottom: 1px double var(--main-border-color);\n\n .license-wrapper {\n line-height: 1.2rem;\n\n > a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n span:last-child {\n @extend %text-sm;\n }\n } /* .license-wrapper */\n\n .post-meta a:not(:hover) {\n @extend %link-underline;\n }\n\n .share-wrapper {\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n %icon-size {\n font-size: 1.125rem;\n }\n\n .share-icons {\n display: flex;\n\n i {\n color: var(--btn-share-color);\n\n @extend %icon-size;\n }\n\n > * {\n @extend %icon-size;\n\n margin-left: 0.5rem;\n\n &:hover {\n i {\n @extend %btn-share-hovor;\n }\n }\n }\n\n button {\n padding: 0;\n border: none;\n line-height: inherit;\n\n @extend %cursor-pointer;\n }\n } /* .share-icons */\n } /* .share-wrapper */\n}\n\n.share-mastodon {\n /* See: https://github.com/justinribeiro/share-to-mastodon#properties */\n --wc-stm-font-family: $font-family-base;\n --wc-stm-dialog-background-color: var(--card-bg);\n --wc-stm-form-button-border: 1px solid var(--btn-border-color);\n --wc-stm-form-submit-background-color: var(--sidebar-btn-bg);\n --wc-stm-form-cancel-background-color: var(--sidebar-btn-bg);\n --wc-stm-form-button-background-color-hover: #007bff;\n --wc-stm-form-button-color-hover: white;\n\n font-size: 1rem;\n}\n\n.post-tags {\n line-height: 2rem;\n\n .post-tag {\n &:hover {\n @extend %link-hover;\n @extend %tag-hover;\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-navigation {\n .btn {\n @extend %btn-post-nav;\n\n &:not(:hover) {\n color: var(--link-color);\n }\n\n &:hover {\n &:not(.disabled)::before {\n color: whitesmoke;\n }\n }\n\n &.disabled {\n @extend %btn-post-nav;\n\n pointer-events: auto;\n cursor: not-allowed;\n background: none;\n color: gray;\n }\n\n &.btn-outline-primary.disabled:focus {\n box-shadow: none;\n }\n\n &::before {\n color: var(--text-muted-color);\n font-size: 0.65rem;\n text-transform: uppercase;\n content: attr(aria-label);\n }\n\n &:first-child {\n border-radius: $radius-lg 0 0 $radius-lg;\n left: 0.5px;\n }\n\n &:last-child {\n border-radius: 0 $radius-lg $radius-lg 0;\n right: 0.5px;\n }\n }\n\n p {\n font-size: 1.1rem;\n line-height: 1.5rem;\n margin-top: 0.3rem;\n white-space: normal;\n }\n} /* .post-navigation */\n\n@media (hover: hover) {\n .post-navigation {\n .btn,\n .btn::before {\n transition: all 0.35s ease-in-out;\n }\n }\n}\n\n@-webkit-keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n@keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n#toc-wrapper {\n border-left: 1px solid rgba(158, 158, 158, 0.17);\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n transition: top 0.2s ease-in-out;\n -webkit-animation: fade-up 0.8s;\n animation: fade-up 0.8s;\n\n ul {\n list-style: none;\n font-size: 0.85rem;\n line-height: 1.25;\n padding-left: 0;\n\n li {\n &:not(:last-child) {\n margin: 0.4rem 0;\n }\n\n a {\n padding: 0.2rem 0 0.2rem 1.25rem;\n }\n }\n\n /* Overwrite TOC plugin style */\n\n .toc-link {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n color: var(--toc-highlight);\n text-decoration: none;\n }\n\n &::before {\n display: none;\n }\n }\n\n .is-active-link {\n color: var(--toc-highlight) !important;\n font-weight: 600;\n\n &::before {\n display: inline-block;\n width: 1px;\n left: -1px;\n height: 1.25rem;\n background-color: var(--toc-highlight) !important;\n }\n }\n\n ul {\n padding-left: 0.75rem;\n }\n }\n}\n\n/* --- Related Posts --- */\n\n#related-posts {\n > h3 {\n @include label(1.1rem, 600);\n }\n\n time {\n @extend %normal-font-style;\n @extend %text-xs;\n\n color: var(--text-muted-color);\n }\n\n p {\n font-size: 0.9rem;\n margin-bottom: 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n\n .card {\n h4 {\n @extend %text-clip;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#disqus_thread {\n min-height: 8.5rem;\n}\n\n.utterances {\n max-width: 100%;\n}\n\n%btn-share-hovor {\n color: var(--btn-share-hover-color) !important;\n}\n\n.share-label {\n @include label(inherit, 400, inherit);\n\n &::after {\n content: ':';\n }\n}\n\n@media all and (max-width: 576px) {\n .post-tail-bottom {\n flex-wrap: wrap-reverse !important;\n\n > div:first-child {\n width: 100%;\n margin-top: 1rem;\n }\n }\n}\n\n@media all and (max-width: 768px) {\n .content > p > img {\n max-width: calc(100% + 1rem);\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 849px) {\n .post-navigation {\n padding-left: 0;\n padding-right: 0;\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n }\n}\n","/*\n Styles for Tab Tags\n*/\n\n.tag {\n border-radius: 0.7em;\n padding: 6px 8px 7px;\n margin-right: 0.8rem;\n line-height: 3rem;\n letter-spacing: 0;\n border: 1px solid var(--tag-border) !important;\n box-shadow: 0 0 3px 0 var(--tag-shadow);\n\n span {\n margin-left: 0.6em;\n font-size: 0.7em;\n font-family: Oswald, sans-serif;\n }\n}\n","/*\n Style for Archives\n*/\n\n#archives {\n letter-spacing: 0.03rem;\n\n $timeline-width: 4px;\n\n %timeline {\n content: '';\n width: $timeline-width;\n position: relative;\n float: left;\n background-color: var(--timeline-color);\n }\n\n .year {\n height: 3.5rem;\n font-size: 1.5rem;\n position: relative;\n left: 2px;\n margin-left: -$timeline-width;\n\n &::before {\n @extend %timeline;\n\n height: 72px;\n left: 79px;\n bottom: 16px;\n }\n\n &:first-child::before {\n @extend %timeline;\n\n height: 32px;\n top: 24px;\n }\n\n /* Year dot */\n &::after {\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n left: 21.5px;\n border: 3px solid;\n background-color: var(--timeline-year-dot-color);\n border-color: var(--timeline-node-bg);\n box-shadow: 0 0 2px 0 #c2c6cc;\n z-index: 1;\n }\n }\n\n ul {\n li {\n font-size: 1.1rem;\n line-height: 3rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:nth-child(odd) {\n background-color: var(--main-bg, #ffffff);\n background-image: linear-gradient(\n to left,\n #ffffff,\n #fbfbfb,\n #fbfbfb,\n #fbfbfb,\n #ffffff\n );\n }\n\n &::before {\n @extend %timeline;\n\n top: 0;\n left: 77px;\n height: 3.1rem;\n }\n }\n\n &:last-child li:last-child::before {\n height: 1.5rem;\n }\n } /* #archives ul */\n\n .date {\n white-space: nowrap;\n display: inline-block;\n position: relative;\n right: 0.5rem;\n\n &.month {\n width: 1.4rem;\n text-align: center;\n }\n\n &.day {\n font-size: 85%;\n font-family: Lato, sans-serif;\n }\n }\n\n a {\n /* post title in Archvies */\n margin-left: 2.5rem;\n position: relative;\n top: 0.1rem;\n\n &:hover {\n border-bottom: none;\n }\n\n &::before {\n /* the dot before post title */\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 8px;\n height: 8px;\n float: left;\n top: 1.35rem;\n left: 71px;\n background-color: var(--timeline-node-bg);\n box-shadow: 0 0 3px 0 #c2c6cc;\n z-index: 1;\n }\n }\n} /* #archives */\n\n@media all and (max-width: 576px) {\n #archives {\n margin-top: -1rem;\n\n ul {\n letter-spacing: 0;\n }\n }\n}\n","/*\n Style for Tab Categories\n*/\n\n%category-icon-color {\n color: gray;\n}\n\n.categories {\n margin-bottom: 2rem;\n border-color: var(--categories-border);\n\n &.card,\n .list-group {\n @extend %rounded;\n }\n\n .card-header {\n $radius: calc($radius-lg - 1px);\n\n padding: 0.75rem;\n border-radius: $radius;\n border-bottom: 0;\n\n &.hide-border-bottom {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n i {\n @extend %category-icon-color;\n\n font-size: 86%; /* fontawesome icons */\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n\n &:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n} /* .categories */\n\n.category-trigger {\n width: 1.7rem;\n height: 1.7rem;\n border-radius: 50%;\n text-align: center;\n color: #6c757d !important;\n\n i {\n position: relative;\n height: 0.7rem;\n width: 1rem;\n transition: transform 300ms ease;\n }\n\n &:hover {\n i {\n color: var(--categories-icon-hover-color);\n }\n }\n}\n\n/* only works on desktop */\n@media (hover: hover) {\n .category-trigger:hover {\n background-color: var(--categories-hover-bg);\n }\n}\n\n.rotate {\n transform: rotate(-90deg);\n}\n","/*\n Style for page Category and Tag\n*/\n\n.dash {\n margin: 0 0.5rem 0.6rem 0.5rem;\n border-bottom: 2px dotted var(--dash-color);\n}\n\n#page-category,\n#page-tag {\n ul > li {\n line-height: 1.5rem;\n padding: 0.6rem 0;\n\n /* dot */\n &::before {\n background: #999999;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n display: block;\n content: '';\n position: relative;\n top: 0.6rem;\n margin-right: 0.5rem;\n }\n\n /* post's title */\n > a {\n @extend %no-bottom-border;\n\n font-size: 1.1rem;\n }\n }\n}\n\n/* tag icon */\n#page-tag h1 > i {\n font-size: 1.2rem;\n}\n\n#page-category h1 > i {\n font-size: 1.25rem;\n}\n\n#page-category,\n#page-tag,\n#access-lastmod {\n a:hover {\n @extend %link-hover;\n\n margin-bottom: -1px; /* Avoid jumping */\n }\n}\n\n@media all and (max-width: 576px) {\n #page-category,\n #page-tag {\n ul > li {\n &::before {\n margin: 0 0.5rem;\n }\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n"],"file":"jekyll-theme-chirpy.css"} \ No newline at end of file diff --git a/assets/img/20220906.jpg b/assets/img/20220906.jpg new file mode 100644 index 0000000..b5ed1ff Binary files /dev/null and b/assets/img/20220906.jpg differ diff --git a/assets/img/20221021.jpg b/assets/img/20221021.jpg new file mode 100644 index 0000000..cc9b516 Binary files /dev/null and b/assets/img/20221021.jpg differ diff --git a/assets/img/20221031.jpg b/assets/img/20221031.jpg new file mode 100644 index 0000000..dd30175 Binary files /dev/null and b/assets/img/20221031.jpg differ diff --git a/assets/img/20221121.jpg b/assets/img/20221121.jpg new file mode 100644 index 0000000..f98f608 Binary files /dev/null and b/assets/img/20221121.jpg differ diff --git a/assets/img/20240608.jpg b/assets/img/20240608.jpg new file mode 100644 index 0000000..191fdb5 Binary files /dev/null and b/assets/img/20240608.jpg differ diff --git a/assets/img/20240906.jpg b/assets/img/20240906.jpg new file mode 100644 index 0000000..82be07c Binary files /dev/null and b/assets/img/20240906.jpg differ diff --git a/assets/img/enterrements.jpg b/assets/img/enterrements.jpg new file mode 100644 index 0000000..cda66b9 Binary files /dev/null and b/assets/img/enterrements.jpg differ diff --git a/assets/img/favicons/android-chrome-192x192.png b/assets/img/favicons/android-chrome-192x192.png new file mode 100644 index 0000000..a949d2f Binary files /dev/null and b/assets/img/favicons/android-chrome-192x192.png differ diff --git a/assets/img/favicons/android-chrome-512x512.png b/assets/img/favicons/android-chrome-512x512.png new file mode 100644 index 0000000..a0cdd95 Binary files /dev/null and b/assets/img/favicons/android-chrome-512x512.png differ diff --git a/assets/img/favicons/android-chrome-96x96.png b/assets/img/favicons/android-chrome-96x96.png new file mode 100644 index 0000000..8db56cb Binary files /dev/null and b/assets/img/favicons/android-chrome-96x96.png differ diff --git a/assets/img/favicons/apple-touch-icon.png b/assets/img/favicons/apple-touch-icon.png new file mode 100644 index 0000000..12560cf Binary files /dev/null and b/assets/img/favicons/apple-touch-icon.png differ diff --git a/assets/img/favicons/browserconfig.xml b/assets/img/favicons/browserconfig.xml new file mode 100644 index 0000000..b3930d0 --- /dev/null +++ b/assets/img/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/assets/img/favicons/favicon-16x16.png b/assets/img/favicons/favicon-16x16.png new file mode 100644 index 0000000..143b71a Binary files /dev/null and b/assets/img/favicons/favicon-16x16.png differ diff --git a/assets/img/favicons/favicon-32x32.png b/assets/img/favicons/favicon-32x32.png new file mode 100644 index 0000000..e301862 Binary files /dev/null and b/assets/img/favicons/favicon-32x32.png differ diff --git a/assets/img/favicons/favicon.ico b/assets/img/favicons/favicon.ico new file mode 100644 index 0000000..e6dbb4e Binary files /dev/null and b/assets/img/favicons/favicon.ico differ diff --git a/assets/img/favicons/mstile-150x150.png b/assets/img/favicons/mstile-150x150.png new file mode 100644 index 0000000..0c1cb59 Binary files /dev/null and b/assets/img/favicons/mstile-150x150.png differ diff --git a/assets/img/favicons/safari-pinned-tab.svg b/assets/img/favicons/safari-pinned-tab.svg new file mode 100644 index 0000000..839666a --- /dev/null +++ b/assets/img/favicons/safari-pinned-tab.svg @@ -0,0 +1,19 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/assets/img/favicons/site.webmanifest b/assets/img/favicons/site.webmanifest new file mode 100644 index 0000000..c42d1a5 --- /dev/null +++ b/assets/img/favicons/site.webmanifest @@ -0,0 +1,14 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-96x96.png", + "sizes": "96x96", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/assets/img/gallery/1.png b/assets/img/gallery/1.png new file mode 100644 index 0000000..6b5de4d Binary files /dev/null and b/assets/img/gallery/1.png differ diff --git a/assets/img/gallery/2.png b/assets/img/gallery/2.png new file mode 100644 index 0000000..f9524fa Binary files /dev/null and b/assets/img/gallery/2.png differ diff --git a/assets/img/gallery/3.png b/assets/img/gallery/3.png new file mode 100644 index 0000000..6cb9000 Binary files /dev/null and b/assets/img/gallery/3.png differ diff --git a/assets/img/gallery/4.png b/assets/img/gallery/4.png new file mode 100644 index 0000000..e382737 Binary files /dev/null and b/assets/img/gallery/4.png differ diff --git a/assets/img/gallery/vintage-subtitles.png b/assets/img/gallery/vintage-subtitles.png new file mode 100644 index 0000000..44bcc4c Binary files /dev/null and b/assets/img/gallery/vintage-subtitles.png differ diff --git a/assets/index.html b/assets/index.html new file mode 100644 index 0000000..8202826 --- /dev/null +++ b/assets/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/assets/js/data/mathjax.js b/assets/js/data/mathjax.js new file mode 100644 index 0000000..ba32dc5 --- /dev/null +++ b/assets/js/data/mathjax.js @@ -0,0 +1,11 @@ +MathJax = { + tex: {inlineMath: [ + ['$', '$'], + ['\\(', '\\)'] + ],displayMath: [ + ['$$', '$$'], + ['\\[', '\\]'] + ],tags: 'ams' + } +}; + diff --git a/assets/js/data/search.json b/assets/js/data/search.json new file mode 100644 index 0000000..698fa02 --- /dev/null +++ b/assets/js/data/search.json @@ -0,0 +1,463 @@ +[ + + { + "title": "Writing like Colleen Hoover, what makes a great opening line, and Nanowrimo's stance on AI", + "url": "/posts/writing-like-colleen-hoover/", + "categories": "English, Favorites", + "tags": "writing, tech", + "date": "2024-06-08 19:55:00 +0200", + + + + + + + + "snippet": "I’ve wanted to share some favorites here for the longest time, but I either don’t take note of my favorites, or wait for so long to write about them that they’re not relevant to me anymore. I also ...", + "content": "I’ve wanted to share some favorites here for the longest time, but I either don’t take note of my favorites, or wait for so long to write about them that they’re not relevant to me anymore. I also don’t do it because I don’t see much value in just talking about stuff I’ve liked, but I have to try to stop overthinking it, so here we go I guess!Even though I haven’t written a lot of fiction here, it is one of my passions and I’ve spent countless hours watching YouTube videos about writing. Usually, I discover a channel in my YouTube recommendations and stay for the personality of the creator. Here are some videos I really enjoyed recently!In Defense of Colleen Hoover (Sort Of?) by SAVY WRITES BOOKSSavy is a writer, youtuber and small business owner. I particularly like her videos about MLMs (I’m referring to multi-level marketing unfortunately, not the other one!) and LGBT issues. After making several videos analyzing and critiquing Colleen Hoover’s books (which I have to admit I haven’t watched yet), she just released a writing vlog literally writing an entire romance novel in the style of Colleen Hoover, in just two months! If you don’t know who Colleen Hoover is, she’s an incredibly successful romance writer, but many people complain that her books don’t advertise enough the fact that they depict very heavy subjects including domestic abuse.After reading many of her books, Savy decided to make an experiment and write an entire romance book in the style of Colleen Hoover (without touching on any heavy subjects), including the very on-the-nose character names, and ridiculously high-stakes plot elements.What I particularly enjoyed about this video is how in-depth she shows us her writing process. Everything from outlining, to setting up the book for pre-order on Amazon and setting up the ads for that, as well as formatting and making the cover art. Showing that much behind-the-scenes is very instructive (even when there is an unfortunate plot twist as is the case in this video!).Some of the resources she mentioned: Story Planner, a website with interesting prompts to help you outline your novel Canva for the cover art Atticus for formatting the book itself And I really liked the questions she asks when she splits the outline into chapters: What action does the hero take toward achieving the goal? How is the plot forwarded? What does the hero know/feel that is different from the start of the chapter? What does the reader learn? how to write iconic opening lines | an investigation! by Kate Cavanaugh WritesKate has been one of my favorite youtubers for a long time. Her vlogs about writing, especially the ones where she tries different challenges and other writers’ routines are so entertaining. In this one, she compiles many recent and successful books’ opening lines and tries to find what makes them iconic and gripping.First off, I have to say that I feel her about forgetting about a project for a year and then coming back to it a year and a half afterwards! The work she accomplished in compiling all that information as well as her insight made me want to put more thought into my opening lines in the future.Here are some things she considers make a great opening line, that also resonated with me: It makes the reader want to continue reading, begging some questions It instills a sense of danger It should have a strong voiceWhat makes a great opening line will also depend on the genre you’re writing in (a romance book will not start in the same way as a thriller), and of course taste plays a big part too.I feel like I should add that coming up with a first line can be very daunting, so if you find that that’s preventing you from starting to write the story that lives in your head, don’t let it stop you. You can always find that perfect first line later.“criticizing AI is racism,” says AI-backed writers group 😐 by D’AngeloThis one is not strictly speaking a video about writing, but it is a video about Nanowrimo: an American non-profit centered around the concept of writing a 50 000 words novel over the month of November. I hadn’t heard about the whole Nanowrimo AI fiasco before seeing this video pop up in my subscriptions, and D’Angelo provides some very interesting context around Nanowrimo’s new sponsors, and its already existing issues with other sponsors and with the Nanowrimo forums that they had to close down.Long story short, Nanowrimo released a statement, visible in archives, now updated. The statement defended the use of AI as an aid to complete this challenge, using, to say the least, dubious arguments. All of this just one year after saying it was pretty much cheating to use software to boost your word count using a LLM, and after being sponsored by a generative AI company. I’m very sad to see the direction the organization is taking, as Nanowrimo was what allowed me to finish my first ever novel draft.Their use of the concepts of ableism, classism and racism was misplaced and harmful to those that those terms stand to defend. AI companies are stealing the work of others to build artificial parrots that have a huge impact on our planet, and the people who have to train them to make sure they don’t show any harmful content, going very much against the values Nanowrimo are supposedly defending. The LLM models themselves, trained on our biased data, perpetuate ableism, classism and racism. If you want to learn more about AI’s issues, I recommend listening to some podcasts by Better Offline: How the AI bubble bursts and Tech won’t save us: Generative AI is a climate disaster.That wraps up these recent favorites, I hope you liked it! I was hesitant to make this kind of article as I feel it maybe doesn’t bring as much value as more original content, but it’s still a good exercise and can still hopefully make you want to explore one of these topics a big more." + }, + + { + "title": "Taylor Swift: le consumérisme au service du female gaze?", + "url": "/posts/eras-tour/", + "categories": "Français, Réflexions", + "tags": "genre, musique", + "date": "2024-06-08 19:55:00 +0200", + + + + + + + + "snippet": "Début mai, j’ai eu la chance d’assister à l’un des 4 concerts donnés par Taylor Swift à Paris dans le cadre de son Eras Tour. Jupes à paillettes, santiags roses, longues robes blanches, il est rare...", + "content": "Début mai, j’ai eu la chance d’assister à l’un des 4 concerts donnés par Taylor Swift à Paris dans le cadre de son Eras Tour. Jupes à paillettes, santiags roses, longues robes blanches, il est rare de voir autant de fans faire un effort vestimentaire aussi coordonné pour un concert, un peu comme si c’était une Pride principalement consacrée aux femmes hétérosexuelles. Le concept même du Eras Tour, découpé en différents époques de la carrière de la chanteuse, des ères avec chacune leur style distinctif, est le terreau idéal pour nourrir la créativité des fans, leur identification et leur interprétation des codes partagés. Au milieu de ce champ de paillettes, nous sommes tous et toutes là pour les mêmes raisons : célébrer une artiste qui a partagé un période plus ou moins longue de notre vie, en compagnie des autres fans.Ce partage est marqué par les bracelets d’amitié réalisés en groupe ou offerts à d’autres fans, avec des messages en rapport avec les eras ou les chansons qui résonnent le plus en nous, les maquillages et les vêtements extravagants, qui nous donnent le droit de nous déguiser, et de redevenir des ados, quel que soit notre âge. On reconnaît les autres fans même à l’extérieur du concert, et on pense pouvoir savoir quelque chose d’eux rien qu’à la tenue qu’iels ont choisie.On performe une féminité qui, loin des codes et des injonctions à ne pas faire trop de bruit, à ne pas se faire remarquer, est libre de s’exprimer à l’abri du regard des hommes, dans un espace protégé, où pour une fois il est clair que cette performance n’est pas destinée aux hommes, mais aux autres fans. Pour une fois, on n’a pas à avoir peur qu’on nous accuse d’en faire trop, ou qu’un homme pense que notre tenue est un signe que l’on veut attirer son attention. Les hommes sont remis à leur place par la chanson « The man » dans laquelle Taylor Swift affirme qu’on n’aurait pas la même perception d’elle si elle avait été un homme.Personne d’autre qu’une femme, pourtant, n’aurait pu créer ce phénomène : une femme en qui chacune peut se reconnaître, qui parle de ses amours, des ses ruptures, de ses erreurs, de sa réputation, comme si elle était comme nous. Une femme qui sait parfaitement user des réseaux sociaux pour passer des messages à ses fans les plus dévoués, mais qui malgré tout reste silencieuse quand il s’agit de problèmes de société et de conflits internationaux qui ne ratissent pas assez large pour lui permettre d’être accessible à toutes. Une milliardaire dont la vie n’a pourtant rien à voir avec celle de n’importe laquelle des ses fans, épinglée pour son usage abusif de jets privés, victime de théories du complot quant à son implication dans la politique américaine.Il y a des couples queers qui dansent sur la chanson Lover, « Shade never made anybody less gay » pendant You need to calm down, des sorcières dans Willow, des danseurs masculins dans des chorégraphies typiquement féminines pendant Vigilante shit. Des fans théorisent que Taylor elle-même pourrait être secrètement queer, mais Taylor ne fait pas de vagues, rien qui pourrait vraiment lui couper un marché ou un public.Tout le monde ne peut pas forcément venir au concert non plus. L’incompétence de Ticketmaster, dont le monopole est un réel problème dans l’industrie musicale, et les fans américaines qui profitent du fait que venir à Paris est parfois moins cher que d’acheter une place aux États-Unis, font que seuls les plus déterminés et seuls ceux qui ont assez d’argent à disposition peuvent obtenir des places. Et il y a toutes ces choses qu’on achète expressément pour, ou pendant le concert, parce que c’est un jour spécial, et qu’on s’autorise tout.À côté de ça, il y a la joie de reconnaître d’autres fans à leur tote bag Taylor Swift, le sujet de discussion tout trouvé, le sentiment de liberté totale, d’avoir presque l’obligation de profiter à fond de chaque moment, de chaque détail du concert, d’être entouré des gens qui ne sont finalement pas si différents de nous. Le vrai respect des fans, 3 heures de show sans coupure, où chaque détail, chaque pose, chaque costume, chaque pixel est travaillé minutieusement.Taylor Swift, c’est tout cela à la fois." + }, + + { + "title": "As an artist, should I be on social media?", + "url": "/posts/should-i-be-on-social-media/", + "categories": "English, Reflections", + "tags": "tech, writing", + "date": "2024-05-01 19:39:00 +0200", + + + + + + + + "snippet": "There used to be institutions gatekeeping who could create art and who couldn’t. Now, it seems like everyone can do it, thanks to the social media platforms that concentrate most of our attention. ...", + "content": "There used to be institutions gatekeeping who could create art and who couldn’t. Now, it seems like everyone can do it, thanks to the social media platforms that concentrate most of our attention. To the point that it seems like you can’t build a career as an artist if you don’t have any presence on social media. As Mina Le explains in her recent video about the luxury of privacy, the myth of the solitary artist as opposed to the attention seeker is outdated. She cites the article Everyone is a sellout now, about musician Ricky Montgomery who complained on TikTok about having to make short content on the platform to promote his work, or else no one would be exposed to his music and discover it.Mina Le states the ideal that “the work should speak for itself”, and that is an ideal that I try to live by. I try to avoid being seen as an attention-seeker. But then I wonder: Am I being arrogant? Is it self-sabotage? But there is more to it than just my reluctance to expose myself, or not knowing what to post.What we create becomes shaped by the platforms we useAlgorithmsSocial media platforms are centralized, and owned by companies that don’t have the public’s interest in mind. They are skewed towards creating as much ad revenue as possible, not “showing the best work” to as many people as possible.When we provide them with our free work, we don’t own our content anymore, with no guarantee that it will have a positive impact on our visibility. The content we create becomes shaped by the platform we want to post it on, which makes us captive to that platform: “Each algorithmic feed, each platform, generates its own signature culture that fits into it. So we’re familiar with Instagram Face, the kind of influencer plastic surgery aesthetic. We’re familiar with TikTok influencer voice, which is the kind of monotone, syncopated, packing as many words into a sentence as possible. So I think there are forms of content that work for each different platform.” Kyle Chayka on The Verge’s Decoder podcast1,In the end, a TikTok is made for TikTok, and you can’t always reuse the content you have created for a specific platform on another platform. You probably wouldn’t have created your content in the same way if you had planned to post it on YouTube. You are now captive to that platform, and your creation process has been altered in the interest of that corporation.Censorship and self-censorshipA particular pet peeve that I have with platforms such as TikTok and Instagram is their censorship. In an attempt to avoid being shadow-banned or outright banned, you will often see words such as unalived instead of “killed” or “dead”, asterisks or numbers replacing a letter in an offensive word, etc… It makes sense from the point of view of content moderation, but just banning words is a lazy way of limiting offensive content (and may not be effective against dog whistles or other strategies the far right uses to escape moderation). Words mean something, and censoring ourselves, removing the real words and ideas we want to talk about, rendering them inoffensive, also depletes them of their meaning. “If the government fails to prevent monopolization of our speech forums – like social media – and also declines to offer its own public speech forums that are bound to respect the First Amendment, we can end up with government choices that produce an environment in which some ideas are suppressed wherever they might find an audience – all without violating the Constitution.” Pluralistic: the majority of censorship is self-censorshipAs presented in this article, the majority of censorship is self-censorship. In order to cater to algorithms, creators remove some ideas or even choose not to post about some subjects because it could impact their outreach on the platform.When everything is content, and the process of creation is deeply changed by the platforms, is it still art? Do we want what we create to be dictated by the interests of companies?Platforms deteriorate by designThe problem with current social media platforms is that, despite what they would have us believe, they are not public spaces. Even though they contributed to removing the barrier for entry in a lot of domains, allowing anyone with only a computer or a smartphone to reach an audience, they are not neutral spaces.They platform people regardless of their ideologies, as long as they bring more eyeballs to their websites. Platforms encourage extreme content, which drives more outrage, more attention, and more ad revenue. They simply don’t care if the content they are hosting and promoting does harm. Platformer chose to leave substack earlier this year for this exact reason.Another example of this is Twitter, which Elon Musk has taken over with the goal of promoting free speech, which in his case means far-right extremism, as reported by the Guardian. Users left Twitter for other platforms such as Bluesky or Threads, but (except for the Fediverse), the problem remains the same, just in a different flavour and on a different timeline.As Catherynne M. Valente tells us, all platforms eventually want us to stop talking to each other and start buying things. This problem has been there for decades, and migrating from one platform to the next one does not protect you from the enshittification that eventually happens on all platforms. Taking the example of TikTok, Cory Doctorow shows that new platforms try to lure in users and creators in different phases, with algorithms that push creators’ content to more users than they would naturally reach, convincing them to invest in the platform, until they are trapped and TikTok can serve users as many ads as possible.The same thing is happening with YouTube trying to eradicate ad-blockers. Inescapably, platforms start pushing more and more advertisement on their platforms, stop showing your content to users who have subscribed to your page, and become unusable. But you can’t leave, because that’s where the people you follow are, or that’s where you’ve built an audience.That is what happens not only on social media, but also in the music industry with Spotify, or in the retail industry with Amazon, as deomnstrated in the book Chokepoint capitalism. We end up with monopolies from big companies who, instead of just being benevolent intermediaries between people who have something to sell and people who want to buy it, capture all of the market and then apply their conditions on it for their own benefit.So, how can I build a platform without social media?Some communities seem to shift towards group chats instead of social media, but the main alternative to traditional social media is the Fediverse, a decentralized platform free of ads and algorithms, where anyone can create their own instance without having to depend on a company’s whims. The technical barrier to entry may be a bit higher than usual social media platforms, but if you are able to use emails, you should be able to use the Fediverse. With no algorithms to push viral content to new users, it’s harder to build an audience, but the growth happens more authentically.Creating alternative platforms owned by creators may be a solution too, such as Nebula, a streaming platform created by and owned by creators.We have to take matters into our own hands in order to create the platforms we want to use, instead of being used by them. I invite you to listen to this episode of Offline with Jon Favreau which also features Kyle Chayka, as well as a discussion about the Introvert Economy. It might appear in a future article, who knows! ↩︎ " + }, + + { + "title": "Enterrements", + "url": "/posts/enterrements/", + "categories": "Français, Nouvelles", + "tags": "coming-out, relations", + "date": "2024-03-11 19:38:00 +0100", + + + + + + + + "snippet": "Raphaël a deux ensembles de costume dans son placard, un bleu marine pour les mariages, et un noir pour les enterrements. Ce matin, il sort le noir et le pose sur la chaise qui est à côté de son li...", + "content": "Raphaël a deux ensembles de costume dans son placard, un bleu marine pour les mariages, et un noir pour les enterrements. Ce matin, il sort le noir et le pose sur la chaise qui est à côté de son lit, rendue invisible par la couche de vêtements à moitié portés, ni propres, ni sales, qu’il y dépose tous les soirs.Il soupire en se regardant dans le miroir, et passe machinalement sa main dans ses cheveux bruns, entre lesquels commencent à apparaître quelques cheveux gris, d’un geste qui le rassure mais ne change rien à sa coiffure. Il commence à retirer la chemise du cintre quand son teléphone se met à vibrer.Nathalie : Maman a invité Astrid, je n’ai pas pu l’en empêcher, désolée. Tu sais comment elle est.Il répond par un simple “Ok”. Il sait que sa soeur ne se rend jamais compte qu’il répond “Ok” dans le but de couper court à la conversation, et qu’elle ne s’en formalisera pas. Il aimerait qu’elle s’en rende compte, parfois, quand il n’a pas envie de lui parler mais qu’il n’ose pas le lui dire. Il se sent toujours obligé de répondre, alors il dit “Ok”. Cette fois non plus, elle n’a pas compris.Nathalie : Est-ce que tu l’as revue depuis le divorce ?Il laisse retomber le téléphone, et boutonne sa chemise en soupirant. Il tourne le regard vers le lit encore défait, et derrière lui la vue sur les toits de Paris. Il reste là sans bouger, les sourcils froncés comme s’il avait oublié ce qu’il était en train de faire. Et puis une voix l’appelle de la cuisine.“Raphaël, tu dois partir à quelle heure ?”Sami s’appuie sur l’embrasure de la porte, encore en caleçon, une tasse de café à la main.“Dans 10 minutes, répond Raphaël. Mais je ne sais pas si j’ai envie d’y aller.”Sami hausse les sourcils d’un air interrogateur.“Apparemment, ma mère a invité Astrid. — Je savais bien qu’il y avait quelque chose, répond Sami. — En même temps, je pouvais m’y attendre, elle va toujours à l’église avec sa mère tous les dimanches, comme quand on était petits, et le divorce n’a rien changé à ça. Elle doit sûrement jubiler de pouvoir me faire ça, amener mon ex-femme à l’enterrement de mon père, c’est sa vengeance pour avoir brisé ses rêves de petite famille parfaite, j’imagine.”Sami s’approche et le prend dans ses bras.“Je suis désolé…”Raphaël hausse les épaules.“Ça n’a rien à voir avec toi.”Les yeux de Raphaël brillent un peu, et il se détourne.“Il faut que j’y aille.”Raphaël aimerait qu’il pleuve, pour pouvoir rester seul à broyer du noir sous son parapluie, mais la météo n’est pas de cet avis. Il n’y a qu’un lourd ciel gris éclairé par trop de soleil, qui lui fait plisser les yeux. Il s’engouffre dans l’église et s’asseoit en prenant un air recueilli, espérant que cela suffira à tenir les autres à l’écart. Mais à peine quelque secondes plus tard, il entend la voix de sa mère résonner entre les hauts murs de pierre. Il n’a jamais compris pourquoi elle parle aussi fort, partout, mais ça l’énerve d’autant plus dans les églises, et même lui qui n’y croit plus depuis longtemps, il respecte ça, alors, pourquoi est-ce qu’elle n’en est pas capable ?Après tout, elle n’y croit peut-être pas plus que lui. Déjà quand il était enfant, et qu’ils étaient assis, Raphaël, sa mère, la meilleure amie de sa mère, et sa fille Astrid de l’autre côté, elles passaient tout le sermon à discuter, à commenter la vie des autres, et la forme comme le fond donnaient envie à Raphaël d’être ailleurs. Mais il se laissait traîner sans rien dire à l’église, et sa mère aimait se vanter d’avoir un garçon sage aux mêmes personnes qu’elle passait le sermon à critiquer. Finalement, Raphaël ne s’étonnait pas qu’après l’avoir entraîné à l’église tous les dimanches pendant 18 ans, sa mère ait réussi à le faire se marier avec Astrid. Ni qu’elle se soit tenue entre eux ensuite, comme elle en avait pris l’habitude pendant toutes ces années. Mais le mariage ne lui avait pas donné le répit qu’il espérait.Raphaël décide d’aller plus près de l’autel. Il ne reconnaît que trop tard la silhouette qui est assise au deuxième rang. Il s’apprête à se retourner en espérant qu’elle ne l’ait pas vu, quand Astrid se retourne. Quand leurs yeux se croisent, il n’y voit pas les émotions qu’il avait peur de voir, la colère, la douleur, le dégoût. Après tout ce temps, il y voit le même regard timide que lorsqu’ils étaient enfants. Le regard d’une amie. Et pour la première fois depuis le divorce, les mots réussissent finalement à sortir de sa bouche.“Je suis désolé…”Astrid se décale et lui fait signe de s’asseoir à côté d’elle.“Ma mère m’a forcée à venir. Je crois qu’elle t’en veut plus que moi,” elle dit avec un sourire dont il ne saurait dire s’il est complice ou mélancolique.Il croise et décroise ses doigt avec nervosité.“Tu ne m’en veux pas ? il demande. — Je t’en ai voulu, oui, mais j’ai eu le temps d’y réfléchir. On ne s’était pas mariés pour les bonnes raisons. Je crois que ma mère était plus heureuse que moi le jour de mon mariage. Ça n’aurait pas marché de toutes façons.”La mère de Raphaël s’approche, et il sent son regard dans son dos. Il lâche un soupir qu’il n’avait pas eu conscience de retenir, depuis longtemps, bien plus longtemps que ça.À sa droite, sa mère lui fait signe de se décaler pour lui laisser une place.“Je n’ai pas envie que tu t’asseyes à côté de moi aujourd’hui,” dit Raphaël.Il se retourne vers Astrid et se laisse retomber contre le dossier en expirant longuement." + }, + + { + "title": "Des mots sur un muret", + "url": "/posts/des-mots-sur-un-muret/", + "categories": "Français, Poèmes", + "tags": "home, emotions", + "date": "2024-02-11 19:44:00 +0100", + + + + + + + + "snippet": "Il y avait un poèmeTaggué sur un muretC’était un endroit qu’on oublieLaissé à l’abandonTous les matinsMon bus passait devantEt je tendais le cou, et je guettaisMais personne d’autre ne regardaitJ’a...", + "content": "Il y avait un poèmeTaggué sur un muretC’était un endroit qu’on oublieLaissé à l’abandonTous les matinsMon bus passait devantEt je tendais le cou, et je guettaisMais personne d’autre ne regardaitJ’ai oublié ce qu’il disaitCela fait longtemps que je n’ai pas pris ce cheminJe me souviens qu’il parlait de la vieQu’on ne mourrait qu’une foisLe tag n’était pas très joliJe crois que la peinture coulaitMais ça n’a pas d’importanceIl suffisait à me laisser gober les mots, absorber les idéesMaintenant que je suis revenu chez moiJe pourrais aller le retouverMais qui sait s’il a été effacéAprès toutes ces années ?Qui sait sur quel muret il était?L’endroit s’est envoléIl ne me reste que le chemin pour y allerEt peut-être qu’un jour ce sera mon tourDe lui répondre, avec d’autres mots sur un muretJ’ai écrit ce poème quand je suis revenu dans ma ville natale après plusieurs années d’absence. Ce muret était un élément qui m’avait marqué quand je passais devant pendant mes études. J’ai retrouvé dans un carnet la citation qui y était écrite: Il s’agit d’un extrait d’ Autoportrait d’Édouard Levé : Je ne pourrai dire qu’une fois sans mentir “je meurs”. Le plus beau jour de ma vie est peut-être passé." + }, + + { + "title": "Why do you want kids to finish the food on their plates so bad?", + "url": "/posts/finish-their-food/", + "categories": "English, Reflections", + "tags": "food, mental-health", + "date": "2023-06-19 17:00:00 +0200", + + + + + + + + "snippet": "Content warning: food, eating disorders, emotional abuse.Tonight I was watching this video from Tiffanyferg about snacks and the different cultures around what foods we keep around the house. It re...", + "content": "Content warning: food, eating disorders, emotional abuse.Tonight I was watching this video from Tiffanyferg about snacks and the different cultures around what foods we keep around the house. It reminded me of some things people have said to me as I was growing up and as an adult about why it means so much to some people if you stop eating before you have emptied your plate, especially when you are a child. I wanted to take a look at those reasons and think about how harmful they can be when you are growing up and building your relationship with food.Some kids somewhere in the world are hungryLet’s start with the stupidest reason, but also the one I remember hearing the most from strangers. It is really weird, I don’t understand how it could be so common, and even as a kid I called bullshit on this one. Usually it was said in a variation around “do you know there are kids dying of famines in Africa?”, which has some troubling racist undertones. What do I, a six-year-old not finishing my lunch at school in France, have to do with kids dying on the other side of the globe, I could not tell you.It was often adults at school or family members other than my parents who would say that to me. It didn’t have a big impact because I knew it was stupid and me eating wouldn’t help anyone else on the planet, but it goes to show how much strangers want you to eat your whole serving, summoning big scary reasons.You should not waste foodAnother common one is that “you should not waste the food”. To that I would say: why would you throw out perfectly good food instead of storing it in the fridge and eating it later? This is a very bad excuse. Or if you are already trying to do that and find that you can’t finish all the leftovers before they go bad, review your grocery shopping. Do one meal a week that is just eating all the leftovers so they don’t go to waste.A similar one is that “we are paying for it”, usually if you are at a restaurant. Before we go further, you should take a look at the Sunk cost fallacy. The first article I found when searching for a definition of the sunk cost fallacy is actually using this exact example: In one experiment, participants were asked to imagine that they were at a potluck party and that, after eating a few bites of a rich cake, they felt full. Some were told the cake had been purchased from a local bakery on sale, while others were told the cake was expensive and had come from a shop an hour’s drive away. In each scenario, participants were asked to imagine that they had bought the cake themselves, or that someone else had brought it to the potluck. They were then asked whether they would finish the cake despite feeling full. According to the results, people who were told they were eating the expensive cake were far more likely to say they would keep eating. Interestingly, this had nothing to do with who had bought it—friends, strangers, or the participants themselves.Even when you know what the sunk cost fallacy is, you can always ask for a box to take back home, and eat it later. Or order a shared meal for children who don’t eat everything. This excuse is either in bad faith, or just a logistical problem on your part.You are too thin/You should eat more so that you have all the nutrients you needHere we are getting into the pseudo-medical reasons that I was sometimes given. First of all, I should not need to remind anyone that commenting that a person’s body is not as it should be is NEVER a good idea and NEVER going to help that person in any way. When that is told to a child, it has a big impact on how they build their self esteem and body image. Do you really want to be part of the reason someone hates their body?I understand where the anxiety that kids don’t eat enough comes from. As the American Academy of Pediatrics tells us, “Some parents worry because young children appear to eat very small amounts of food, especially when compared with adult portions”.But children never starve themselves: “A child who is growing well is getting enough to eat.”The key message is that you have to trust your child: How do you know your child is not starving? Ask your child if they are hungry. If they are, give them food. If not, don’t. How do you know if they have eaten enough? Ask them if they still want to eat.It’s that simple. If it still scares you too much, ask a doctor. If you are scared even if medical professionals tell you it is all right, then the problem is your anxiety, and you need to find solutions for it without harming your child.You are pretending that you are not hungryOftentimes when I was a kid, I would tell my parents that my stomach hurts and I can’t eat anymore. 100% of the time, they would assume I was lying to them so that I could stop eating. What would I gain out of not eating enough, that would be worth lying for? I have no idea.Now let’s do a little thought experiment: Have you ever eaten too much because you have your favorite snack on hand and then felt physically sick, like you were going to throw up because you ate too much. Can you picture it? Is it a bad sensation?Now imagine that happens to you every day. And not because you are at a special family dinner with your favorite food or anything. It’s on normal days, with everyday food and it’s someone else making you stay at the table for hours on end until you are done with your plate, sometimes reprimanding you or threatening you. What do you think your child’s relationship with food is going to be after that?When you are not trusting that your child about their sensations, you are telling them that adults can make you feel physical pain and control what happens to your body without your consent. Do you see how that is dangerous?It tells you that you cannot trust what your body tells you. Unlearning to listen to your sensations is a very dangerous situation. As an adult, I do not listen to my body when it tells me I need to eat, sleep or even pee. I have disconnected many of my sensations from the needs that they are telling me about. Being disconnected from your emotions, having your body and your rational mind not aligned is a big source of stress.Some closing thoughtsI know this article can sound preachy and moralizing, and that is because I am angry at how much this has been the norm for all my life, everywhere I looked. How this form of abuse was never acknowledged.I’m not saying raising a child is easy, I’m not saying that building healthy eating habits or letting go of your anxieties around children is easy. I’m not saying you will traumatize your child if you ask them to try to take one more spoonful of the food that’s on their plate. I hope you understand the main message, and that you are able to trust what your child tries to tell you about their body. Because if you tell them you don’t, they won’t trust you when they are sick, they will not tell you if they notice something is off because they believe you will not trust them, like you didn’t trust their other feelings. They won’t remember to drink when they are thirsty, they won’t remember to slow down when they are tired. They will not love their bodies. They will not have to tools to correctly take care of them.Please take care of your kids, and teach them how to take care of themselves, with love." + }, + + { + "title": "Ils ne veulent pas être tes amis", + "url": "/posts/ils-ne-veulent-pas-etre-tes-amis/", + "categories": "Français, Réflexions", + "tags": "genre", + "date": "2023-06-04 17:53:00 +0200", + + + + + + + + "snippet": "Ce soir, j’ai regardé la vidéo Why nerds joined the alt-right de Cheyenne Lin, qui parle notamment de la misogynie dans les milieux geek ou nerd (j’utilise ces termes comme ils sont expliqués dans ...", + "content": "Ce soir, j’ai regardé la vidéo Why nerds joined the alt-right de Cheyenne Lin, qui parle notamment de la misogynie dans les milieux geek ou nerd (j’utilise ces termes comme ils sont expliqués dans la vidéo, de manière assez interchangeable). Ça m’a rappelé une chose à laquelle j’avais déjà pensé en voyant la vidéo de Léa Choue, lorsqu’elle disait “Beaucoup de femmes rêvent d’être regardées comme les hommes regardent leurs potes masculins”.Cette phrase m’avait rappelé le début de mes études, dans un milieu peuplé en écrasante majorité par des hommes cis/hétéros/blancs qui s’identifiaient comme nerd ou geek. J’avais toujours grandi en étant la première de la classe, et également parmi les personnes avec les intérêts et les activités les plus “nerd” depuis le primaire et jusqu’au lycée. Pour Noël j’étais contente de recevoir des livres de maths, et je passais le plus gros de mon temps libre à lire, notamment de la science-fiction. Jusqu’à la prépa, je m’étais toujours imaginée travailler dans les sciences et je n’avais jamais eu l’impression que c’était un chemin qui me serait fermé.Naturellement, quand je suis arrivée après le lycée dans cet endroit rempli de gens “comme moi”, j’ai eu envie de m’intégrer, de partager mes intérêts avec ces nouvelles personnes, et d’apprendre d’eux. Et pourtant, là où des garçons qui n’étaient pas plus “intéressants” ni moins socially awkward que moi s’intégraient au groupe sans aucun problème, je subissais des moqueries et je me trouvais toujours mise à l’écart, sans jamais comprendre pourquoi. Je redoublais d’efforts pour apprendre leurs références, m’intéresser à leurs passions, être gentille et à l’écoute. Pourtant, ce n’était jamais assez pour qu’ils m’intègrent réellement au groupe, ni même simplement qu’ils me respectent. Ces relations que je prenais pour de l’amitié étaient en fait des puits sans fond où je déversais une bonne partie de mon énergie et de mon intérêt. sans rien recevoir en échange à part des moqueries et des remarques désobligeantes.Avec le recul, je vois une fracture nette cette année-là, qui marque la première fois où je ne me suis plus senti.e à ma place à me dire “nerd” et à m’intégrer dans les groupes de nerds, de peur qu’on me considère à nouveau comme un imposteur et qu’on me tourne le dos. Malgré le fait que j’ai des intérêts qui devraient me permettre de me considérer comme nerd, et que je ne crois pas qu’on devrait mettre de barrière sur ce terme, c’est devenu une private joke avec mes ami.e.s les plus proches que je dis que je ne suis pas nerd même quand je suis au milieu d’une activité ou que je m’intéresse à une chose qui rentre totalement dans cette catégorie.À l’époque, quand j’essayais de m’intégrer avec mes camarades peu accueillants, je me suis demandé.e pourquoi. Pourquoi est-ce que je n’arrive pas à m’intégrer, alors que c’est si facile pour les autres ? Au début, je mettais tout cela sur le dos de mon apparence, qui était ma plus grosse insécurité à l’époque. Cette insécurité cimentait toute ma personnalité, et j’étais la première à faire des blagues dévalorisantes sur mon propre physique, ce qui contrairement à ce que je pensais, ne me protégeait pas, mais donnait exactement les bonnes armes à mes camarades pour appuyer là où ça fait mal. Je pensais que s’ils ne voulaient pas être mes amis, c’est que mon apparence et ma personnalité ne les attirait pas suffisamment. Je pensais que j’étais trop maladroite, que je n’étais pas assez drôle, pas assez cultivée et intelligente pour eux. Je me disais que c’était moi le problème, sans jamais voir sa vraie cause, et c’est aussi ce qu’ils me faisaient comprendre.Ce que j’ai réalisé aujourd’hui, et que j’aurais eu besoin qu’on me dise à l’époque, c’est que ces hommes-là ne voulaient pas être amis avec une femme. Je ne le voyais pas parce que, naïvement, je ne pensais pas que mon genre était ce qui me séparait d’eux. Je me rendais bien compte qu’on n’attendait pas de moi la même chose pour pouvoir m’intégrer, et j’avais un début de réponse avec mon apparence. Mais la réalité, c’est que certains hommes, à certains moments de leur vie, sont incapable de respecter une femme comme ils respectent leurs amis masculins. Ces hommes-là étaient tout simplement incapables de me voir comme une égale, de me considérer comme drôle, intéressante, digne d’être écoutée. C’est si facile, pour un homme, de balayer d’un revers de la main ce que dit une femme, quand il l’aurait soutenu si c’était sorti de la bouche d’un homme. C’est si triste et si frustrant, et pourtant c’est difficile à remarquer quand on n’y fait pas attention, parce que tout est fait pour qu’on regarde ailleurs.Finalement, quand bien même j’aurais été attirante sexuellement ou romantiquement pour eux, ils n’auraient pas voulu être mes amis: ils auraient voulu coucher avec moi, pour pouvoir en parler à leurs véritables amis masculins, qui sont leur relation la plus importante. J’aurais eu beau tout essayer, au bout du compte, je n’avais aucune chance de recevoir l’amitié que je voulais, d’égal à égale, parce qu’ils n’avaient aucune envie de me la donner. Peut-être parce qu’ils trouvaient ça drôle de me torturer, parce que c’est agréable d’avoir un peu de pouvoir sur quelqu’un. Peut-être parce qu’ils me trouvaient trop désepérée, à revenir à la charge alors que tous les signaux auraient dû me dire de laisser tomber et de trouver d’autres amis. Peut-être qu’ils ne s’en rendaient même pas compte, eux pour qui rien ne mettait en doute leur appartenance à ce milieu.C’est d’autant plus malheureux pour moi que je n’ai jamais compris pourquoi mon genre impactait ces relations, parce que moi-même je ne le voyais pas comme quelque chose qui devrait changer ma manière d’interagir et d’être perçu.e par les autres. Aujourd’hui, je sais que je suis non-binaire et que cela a joué dans ma relation avec mon corps et dans mon incompréhension de ces frontières invisibles du genre qui avaient été mises en place par ces hommes. Je ne comprenais pas qu’ils ne voulaient surtout pas qu’une femme soit “comme eux” et que je me tirais une balle dans le pied en essayant de leur ressembler. Les femmes qu’ils laissent entrer dans leur vie, ce n’est pas parce qu’elles sont l’un d’entre eux. Ils attendent d’elles qu’elles remplissent un rôle très différent de leurs amis. En étant presque comme eux, j’étais plus menaçante qu’autre chose, parce que je me mettais sur le même plan qu’eux. Ils devaient me mettre à l’écart, me différencier, pour se conforter eux-mêmes dans leur manière de voir les femmes comme intrinsèquement différentes d’eux et se convaincre qu’ils avaient raison de ne pas les respecter.Je ne sais pas ce qu’ils sont devenus, ni s’ils ont ouvert les yeux sur leurs relations avec les femmes. Je l’espère d’une manière générale parce que les hommes qui n’ont pas d’amiEs femmes sont des proies faciles pour la manosphère, mais sur le plan personnel, ça m’est égal. Je leur ai déjà consacré assez d’énergie, et je suis bien heureux.se de pouvoir dire que ces hommes me laissent indifférent.e, qu’ils ne m’intéressent plus. Sans les lunettes rosées du patriarcat et de l’hétéronormativité, ils me paraissent beaucoup moins intéressants que n’importe qui d’autre.Ce qui m’importe, c’est ce que j’ai perdu à cause d’eux, comme tant d’autres personnes qui n’ont pas le bon genre, la bonne couleur de peau, le bon corps, pour être nerd. Je ne sais pas si je récupérerai un jour cette confiance aveugle et innocente que j’avais dans mon appartenances aux milieux nerds, geeks, aux sciences et à la science-fiction. Je continue de suivre mes passions là où elles m’emmènent, et j’espère retrouver cette petite nerd qu’ils ont fait se cacher si loin à l’intérieur de moi." + }, + + { + "title": "Quelqu'un pour m'aimer", + "url": "/posts/quelqun-pour-maimer/", + "categories": "Français, Poèmes", + "tags": "relations", + "date": "2023-04-10 13:28:00 +0200", + + + + + + + + "snippet": "Est-ce qu’il y aura toujours quelqu’un pour m’aimer, si je change?Si dans la rue les gens ne font que se retournerSi je les dérange?Resteras-tu à mes cotés?Me tiendras-tu la main?Si je ne pose jama...", + "content": "Est-ce qu’il y aura toujours quelqu’un pour m’aimer, si je change?Si dans la rue les gens ne font que se retournerSi je les dérange?Resteras-tu à mes cotés?Me tiendras-tu la main?Si je ne pose jamais mon sac à dosMais que je continue à courir sans reposAprès qui je veux êtreMe suivras-tu?Si je m’en vais au bout du mondePour me retrouverSi je me perds en eaux profondesSi je suis happé.eSi mon bateau coule et que tu me crois perdu.eM’attendras-tu?Ou bien est-ce que, quand je retrouverai enfin la surfaceQue je courrai vers toi pour retrouver ma placeTu auras déjà construit ta vie sans moi?Je voudrais savoir surtoutPendant ce temps où je serai loin de tes brasQue tu vivras comme s’il n’y avait pas de nousEst-ce que tu m’oublieras?" + }, + + { + "title": "Ce que porter une coupe menstruelle m'a appris en tant que personne non binaire", + "url": "/posts/coupe-menstruelle/", + "categories": "Français, Réflexions", + "tags": "genre", + "date": "2023-03-23 16:05:00 +0100", + + + + + + + + "snippet": "Note: Tout au long de cet article, je vais parler de règles et de cycles menstruels. Ces choses sont traditionnellement associées à la féminité dans notre société. Elles sont vécues en majorité par...", + "content": "Note: Tout au long de cet article, je vais parler de règles et de cycles menstruels. Ces choses sont traditionnellement associées à la féminité dans notre société. Elles sont vécues en majorité par des femmes, mais pas uniquement par des femmes, ni par toutes les femmes.Je vais parfois utiliser le mot “femmes” pour désigner les personnes opprimées au sujet de leurs règles, car il s’agit davantage d’une oppression qui vise le groupe social des femmes que d’une oppression visant les personnes trans ou non binaires qui sont plutôt un impensé dans ce contexte.Il ne faut pas oublier qu’il y a une spécificité dans le rapport des personnes trans et non binaires à leurs règles. Cette situation est un mélange de dysphorie de genre (c’est à dire la non concordance entre la représentation mentale que l’on a de son corps et la réalité biologique de notre corps) et l’invisibilisation et l’exclusion créées par la transphobie et l’ignorance.Nous avons toustes à gagner à nous libérer d’une définition essentialiste et binaire du genre. Aucune personne de bonne foi ne peut se prétendre féministe et également définir le statut de femme comme dépendant de la capacité ou non à porter des enfants.Mon rapport aux règlesDès le début de ma puberté, j’ai voulu ignorer mes règles. J’ai longtemps associé les règles à l’infériorité de mon corps face au corps masculin. Pour moi, avoir mes règles, c’était avoir un corps sale, faible, incontrôlable, aux émotions imprévisibles dictées par des hormones. Un corps où la matière domine sur l’esprit, et, pire encore pour moi, un corps qui fait qu’on me rappelle sans cesse la perception que les autres ont de mon genre.J’ai eu mes règles assez tard, et je les ai toujours attendues comme la chose qui me ferait enfin me sentir “femme”, qui me donnerait la pièce qui me manquait pour vraiment me sentir comme une “vraie femme”. Malheureusement ou heureusement, cette sensation n’est jamais arrivée, règles ou pas.Ignorer l’existence de mes règles et faire comme si elles n’existaient pas était pour moi la meilleure manière de les gérer. Mon objectif était finalement de fonctionner selon l’idéal masculin de la société, selon un cycle de 24 heures et non pas de 28 jours. Si j’étais plus irritable, moins productif.ve ou moins fort.e à ce moment de mon cycle, je devais simplement redoubler d’effort pour être à la hauteur de ce que la société attendait de moi. Je ne pouvais pas me rabaisser à être limité.e par mon corps, car c’était donner raison aux clichés et aux moqueries véhiculés par les hommes autour de moi.J’ai donc passé plusieurs années à “subir” mes règles sans jamais y être préparé.e psychologiquement car je ne suivais pas mon cycle et ne pouvais donc pas prévoir leur prochaine apparition. Je me promenais toujours avec des serviettes périodiques sur moi, je serrais les dents et je priais pour ne pas tâcher mon pantalon et me taper la honte devant toute la classe. Je marchais en canard avec l’impression de porter une couche, et je plissais le nez face à l’odeur de ma serviette à la fin de la journée, avant de la faire disparaître hors de ma vue aussi vite que possible, et je la remplaçais par une autre qui m’irritait et m’asséchait encore plus que la précédente. En bref, avoir mes règles, ça n’était vraiment pas ma chose préférée.Mais alors, qu’est-ce qui a changé ? Le déclencheur pour moi, ça a vraiment été le podcast I weigh, avec Maisie Hill, Period Power. Je vous invite à l’écouter en entier, parce qu’il m’a permis de sortir d’une décennie complète passée à ignorer le fonctionnement de mon propre corps. Éviter d’en entendre parler et d’en parler n’apporte finalement rien, et ne fait qu’entretenir l’ignorance et la honte. Mon corps a un cycle, et prétendre qu’il n’en a pas ne me rend pas plus fort.e ou productif.ve. Au contraire, cela m’empêche d’écouter mon corps, de connaître mon propre état de santé et de subvenir correctement à mes besoins.Faire semblant que son corps ne fonctionne pas selon un cycle menstruel, c’est comme vouloir gagner des sprints quand on n’a toujours couru que des marathons. Notre corps ne fonctionne simplement pas comme ça, et ce n’est pas une mauvaise chose, c’est simplement différent. Contrairement à ce que le capitalisme veut nous faire croire, nos corps ne sont pas des machines qui doivent toujours donner le même output pour le même input.À partir de là, j’ai commencé à suivre mes règles avec l’application Clue, qui a l’avantage d’avoir l’air de bien protéger nos données et de proposer un langage et des ressources très inclusives. J’avais l’avantage de ne plus être pris.e par surprise par mes règles, et également de me rendre compte que les variations de mon humeur et de ma libido étaient en fait simplement explicables par les moments de mon cycle où je me trouvais. J’ai enfin appris à voir mes règles comme un signe de bonne santé de mon corps, et à ne pas avoir les mêmes attentes pour moi-même à cette période.Pourquoi la cup ?La cup ou coupe menstruelle est un dispositif en silicone que l’on place dans le vagin afin de recueillir le sang des règles tout au long de la journée ou de la nuit. Ses principaux avantages face aux protections menstruelles jetables sont son prix, et son impact moindre sur l’environnement et la santé. Je vous laisserai vous renseigner par vous-mêmes sur ces sujets.Mais ce ne sont pas tant les avantages pratiques qui m’ont donné envie d’écrire cet article. C’est la réflexion que cela a alimenté en moi vis à vis du patriarcat, du capitalisme et de mon rapport à mon corps, à mon vagin et à mes règles.Méconnaissance, peur et dégoût du corps fémininD’abord, l’utilisation d’une cup m’a fait comprendre à quel point j’avais peur de mon corps. La première chose à laquelle j’ai pensé, et la première chose qu’ont évoquée certaines de mes connaissances quand je leur ai partagé mon expérience, c’est que “Moi ça me fait peur et je n’ose pas essayer”, ou bien “Je n’en serais pas capable”. Moi-même, avant d’essayer la cup, je n’avais jamais utilisé de tampon. C’était donc un grand saut vers l’inconnu que d’utiliser une cup (même si peut-être pas si grand, mais nous en reparlerons plus tard). Et finalement, c’est normal que nous ressentions ça: le corps des femmes est depuis toujours considéré comme compliqué et incompréhensible, longtemps exclu des études médicales pour ces mêmes raisons. La qualité des connaissances sur le fonctionnement du système reproductif féminin est encore perfectible, et des maladies comme l’endométriose étaient encore méconnues il y a quelques années.Je vis dans un monde où on m’a appris à 12 ans comment mettre un préservatif sur un pénis, mais où je ne savais pas comment insérer un tampon ou une coupe menstruelle dans mon propre vagin à 24 ans. Et je ne suis pas la seule personne dans cette situation: Holly Gabrielle dans sa vidéo sur sa première expérience avec une coupe menstruelle explique que malgré ses études en biologie, elle ne connait absolument pas son anatomie.Où se situe le vagin ? Quelle taille fait-il ? Y a-t-il un risque que ma cup se retrouve aspirée à jamais dans les limbes de mon utérus ? Ce sont de vraies questions dont les réponses ne sont pas innées. Nous avons besoin de cette éducation sur nos propres corps.Et l’origine de cette méconnaissance et son utilité pour le patriarcat sont évidents: Knowledge is power, et nous maintenir dans l’ignorance, c’est nous maintenir dans une situation où contrôler nos corps est simple, où nous ne pouvons que difficilement reconnaître des violences ou même juger de la qualité d’un rapport sexuel. Les personnes avec un vagin ne peuvent qu’être passives, elles ne sont que le réceptacle immobile des vaillants spermatozoides qui se font la course.Le vagin lui-même est vu comme un simple tuyau complètement passif et immobile. Pourtant, il possède des muscles, des muscles que l’on peut consciemment contrôler. Ce n’est pas particulièrement mis en avant quand on parle d’anatomie. Et ce sont ces mêmes mucles qui permettent justement de sortir plus facilement la cup le moment venu.La vulve, le vagin et les règles sont également considérés comme sales. L’appellation même de “serviette hygiénique” que l’on entend parfois entretient cet imaginaire de la saleté. Tout comme la création des complexes autour des poils, des odeurs de transpiration, etc, cela permet de vendre plus de produits, pour s’épiler, se laver, être dans la norme jusque depuis l’intérieur de notre culotte. Et en effet, les serviettes et tampons qui font macérer le sang à l’air pendant plusieurs heures ne sont pas ce qu’il y a de plus agréable. Au contraire, la cup évite ces problèmes puisque le sang attend sagement à l’intérieur du vagin qu’on vienne le vider. Ce sang n’est pas sale. Il n’y a aucune raison d’en être dégoûté.e.Quand on ajoute à cet environnement déjà peu accueillant de la dysphorie, qui fait que j’ai encore moins envie d’interagir avec cette partie de mon corps, on obtient un cocktail qui explique une méconnaissance et un dégoût complet de mon propre corps. Insérer une cup dans mon vagin deux fois par jour semble peut-être contre-intuitif, et pourtant c’est actuellement la solution que je trouve la plus agréable. Et pourquoi donc ?Découverte de soi et confiance en son corpsDans la vidéo de Holly Gabrielle que j’évoquais précédemment, elle explique n’avoir jamais eu d’expérience sexuelle avec une autre personne et n’avoir jamais non plus exploré sa sexualité en solo. C’est donc pour elle une découverte totale de son propre corps.Je ne suis pas dans un cas aussi extrême, mais il est vrai qu’à une époque, je connaissais moins bien mon propre vagin que maon partenaire. Et, honnêtement, je trouve ça triste. Connaître son propre corps, comprendre son fonctionnement, le voir évoluer, c’est pour moi la clé qui permet une meilleure estime de soi et un rapport apaisé à son corps dans un monde qui veut nous créer toujours plus de complexes. Comprendre cette partie de mon corps m’aide, si ce n’est à l’accepter, au moins à ne pas en avoir peur. Pour moi, c’est passé non seulement par l’exploration de ma sexualité seul.e, mais aussi par l’utilisation d’une cup, et je sais qu’avec l’habitude je n’aurai plus du tout peur, ce qui est très empouvoirant pour moi.Pouvoir observer mon propre sang, sa quantité, son aspect, me permet également de surveiller mon propre état de santé. Et la cup me permet d’oublier que j’ai mes règles pendant la plus grande partie de la journée, ce qui allège une partie de ma dysphorie.Mon vagin n’est pas une partie sale, dangereuse ou incompréhensible de mon corps qui aurait besoin d’être domptée. À mon rythme, je peux apprendre à le connaître.Pour aller plus loinJe recommande à toutes les personnes qui ont leurs règles de tester la coupe menstruelle si iels s’y sentent prêt.e.s. C’est une occasion unique d’apprendre à mieux se connaître, même si vous décidez que ce n’est pas pour vous à long terme.La chaîne Period Nirvana qui propose des vidéos très complètes sur tous les produits menstruels réutilisables, ainsi que tout un tas de conseils pratiques et de démonstrations qui m’ont été bien utiles dans ma préparation pour la première utilisation. L’important est d’aller à son rythme et d’écouter son corps.Les autres ressources que j’ai mentionnées: le podcast I weigh, avec Maisie Hill, Period Power l’application Clue" + }, + + { + "title": "I forgot all of their names", + "url": "/posts/i-forgot-all-of-their-names/", + "categories": "English, Poetry", + "tags": "emotions", + "date": "2023-02-18 15:19:00 +0100", + + + + + + + + "snippet": "I had come home for just a weekI didn’t put my bags downI was afraid that if I stoppedI would lose my momentum and I would fallI looked at the picture in a drawerI hadn’t opened in a whileI looked ...", + "content": "I had come home for just a weekI didn’t put my bags downI was afraid that if I stoppedI would lose my momentum and I would fallI looked at the picture in a drawerI hadn’t opened in a whileI looked at all the faces in the frameI hadn’t seen in such a long timeI looked at them in disbeliefI tried harder but I realisedI forgot all of their namesI had my mind still wanderingI just couldn’t find the place I had left a year beforeI kept looking for itI couldn’t return because I was not the sameThis is a poem about coming home after a long time but not finding the feeling of being home. Not recognizing certain things, having forgotten the names of places and people, and figuring out what that means about who you are." + }, + + { + "title": "Journaling don'ts - Journaling Guide: part 4", + "url": "/posts/journaling-donts/", + "categories": "English, Reflections", + "tags": "journaling", + "date": "2023-02-17 14:07:00 +0100", + + + + + + + + "snippet": "In the previous article, we’ve gone through all the things you can do to help your journaling practice. In this article, we’ll do the opposite, looking at the things you probably shouldn’t do or ex...", + "content": "In the previous article, we’ve gone through all the things you can do to help your journaling practice. In this article, we’ll do the opposite, looking at the things you probably shouldn’t do or expect from journaling. Keep in mind that this is my opinions, and these are the things that don’t work for me, but they might for you.Falling into perfectionismWhenever we pick up a new hobby or pratice, it’s common to want to go all in and master this new activity immediately, stretching ourselves too thin and feeling discouraged when the results aren’t what we expected. It’s important to not put too much pressure on ourselves. Remember, the goal is not publish your journal (or if it is, you will have time to edit it in the future). It’s ok to mess up, it’s ok to ruin a page of your journal. Everything you write doesn’t have to be an incredible mental breakthrough. You are not “wasting” a journal if you write mundane things. That why it helps to not use a notebook that is too expensive or valuable to us, because we don’t want to make our journal an object that is too precious to actually be used.Writing for the wrong reasonsRemember why you are doing this: is it to process your emotions, to have a reminder of what your life was like at a certain point? Don’t try to write every single detail of your day: having a minute by minute log of what you did that day is probably not the most rewarding thing to write or reread. Try to focus on things that actually mattered to you, even a small thing, but one that actually has some meaning to you.Writing every dayIt is helpful to make journaling a habit, because that is how you complete a journal and make progress: not by writing 20 pages in one sitting, but one day at a time, page by page. Pressuring yourself to write every day, can make journaling feel like a chore. You can easily fall into the trap of seeing that you missed a day and thinking that you have to give up because you can’t keep up with it. There are plenty of days in your life, and it’s always ok to come back to writing after a long time. Ihave often gone more than 6 months ithout writing, and it doesn’t make me a failure or mean that I can’t keep up with journaling: what’s important is that I come back to it, once my life has settled to a calmer rythm.Trying to make your journal a work of artThere can be a pressure for your handwriting to be good, for everything that you write to be easily readable, and your prose to be a work of art. You don’t have to write perfect sentences with perfect grammar and punctuation. What matters is the content of what you write, not how it looks or how well-written it is. If you make it a hassle to write and take the joy out of it, you probably won’t keep writing. Keep in mind that when you’ll reread your journal, you will not care about the grammar you used or the way you wrote certain letters: you will be happy to relive memories or find things you had forgotten. Writing badly is way better than not writing at all.Writing for external validationThis one ties in with the previous point: if you look online, you will find endless feeds of beautiful, ornate pages with collages, paintings, drawings, colors… You may feel a pressure to make your journal look just as good. But remember, you are not doing this for external validation.Journaling is your one place to be free of outside expectations and constraints.I would suggest not sharing your journal on social media or with other people (or at least a long time after you’ve written it, when you feel distant from the version of you that wrote it). That is because if you write with other people in mind, it will be harder to be honest in your journal. If you try too hard to make it pleasing to the eye and interesting to read, you won’t give yourself the freedom to actually experiment and not overthink what you are writing.Using journaling as an excuse to buy new thingsOne last important thing is to try not to fall into consumerist traps: for every hobby you pick up, you will see a thousand products that promise they will help you do it better. Yet a lot of us know the looming feeling of too many empty notebooks waiting for us on our shelves. When I have too many notebooks in advance, I feel like I will never complete them and want to give up. Or I feel a pressure to write more so that I don’t waste them. Beautiful notebooks will always be around, and I promise you’ll have no trouble finding one when you need it.While getting a beautiful journal and colourful pens can help you and be motivating, ultimately it’s not what matters. It’s the act of putting pen to paper that really counts.The common point in most of these don’ts is pressure: for journaling to remain enjoyable and motivating, you will need to let go of some expectations and standards that we tend to set for ourselves. I promise the feeling of the completed notebook in your hands, and the feeling of rereading it many years down the line will be worth letting go of your inner perfectionist for ten minutes every few days." + }, + + { + "title": "Why is no one talking about the shame?", + "url": "/posts/shame/", + "categories": "English, Reflections", + "tags": "coming-out, self-acceptance", + "date": "2023-02-10 14:13:00 +0100", + + + + + + + + "snippet": "This article discusses themes of internalised homophobia, self-loathing and rejection.Shame Why is no one talking about the shame? Contrapoints, 2020I have watched and rewatched Contrapoint’s vid...", + "content": "This article discusses themes of internalised homophobia, self-loathing and rejection.Shame Why is no one talking about the shame? Contrapoints, 2020I have watched and rewatched Contrapoint’s video about shame many times, in different contexts and life situations, with and without other people around. Every time I have found something different in it, a new layer, angle, a different focus. One time it was a parallel with the “friendship” she talks about in the video. One time it was as the partner of a trans woman and what that means for her.But that first time, in December of 2020, was the most Earth-shattering time for me.The one at which I felt the most shame myself.</br>Watching that video that evening led to a very dark and lonely night. I think of it as one of those single, life-defining moments that you only get a few of in your life. Realising my attraction to women led me down a very dark thought spiral that took me months to completely get out of.</br>Before that video. I figured that as long as I kept it to myself, as long as no one knew, I would be safe. As long as I repressed any bad thoughts immediately when they came up, I would be safe. As long as I wasn’t thinking about it, had never tried anything, I couldn’t be sure, so I was safe.</br>But that video convinced me. And that’s what made me sink.The most overwhelming feeling for me that night was disgust about myself, to the point where I was feeling physically ill.I figured my social life was over, my family life was over, my relationship was over. Everything I had worked for and built up until this moment felt like it was going to fall apart in an instant.Before that point, I had found my own self-worth and validation in the traditional social markers of success. I had just finished my studies, landed a fulfilling job, and, more importantly, I was in a sfuccessful long-term relationship. I felt like I had it all figured out. Of course I sometimes felt empty, like if that was success and I wouldn’t ever get anything more out of life, what was really the point? It didn’t bring me the fulfillment I thought it would. </br>But still, having to destroy it all and start over? Was I really ready to sacrifice everything I had strived for up until this moment?People would be disappointed, it was going to change the way they looked at me, people would reject me, they would think I’m wrong and judge me, or they would be afraid of me, or they would think I was just lying for attention.I was sad, and I was ashamed.I was alone, I felt like there was nobody I could turn to. I thought my queer friends, who’d had that part figured out for a long time, would make fun of me. They’d be surprised I didn’t figure it out sooner.I was ashamed of feeling like I couldn’t live up to them, because I had idealized them. I had made them up to be so much stronger than myself. I thought they never doubted themselves, and were out in every single area of their life and were so confident and proud. I thought shame was a concept that was alien to them, because they’d been comfortable with who they were for so long. Because I always saw them being comfortable around me.I thought about reaching out, asking for advice, for acceptance, but I just couldn’t find it in me to say the words out loud, or to write them down. If they were always so proud and comfortable, they probably wouldn’t understand me. If they’d been through that phase, I thought, it would have been long ago, a thing of the past. They wouldn’t remember what it was like anymore.I imagined my queer friends as unattainable, because it was better to be alone than to be rejected by them.I was ashamed that I had hidden it from myself for so long, that I was so stupid for not realising it sooner.I was ashamed that, even after all of this, my first reflex was still to hide.I was ashamed that, in retrospect, everything I had said and done before this point felt like a lie.I was ashamed because I couldn’t see any other option than to keep lying, building up on the lies again and again until there would be no way out.</br>There is a pain in knowing you aren’t be able to be yourself completely with someone else. This feeling that you will never be able to completely connect with them, because you don’t feel safe enough to be authentic with them. It creates a distance, a ledge between you that is insurmountable. I thought I would feel like that for the rest of my life. If I could never really connect with anyone, it meant that no matter how many connections I made, I would always be truly alone.But the thing I was the most ashamed of was my attraction to women itself. I felt like I was no better than the men that are sexualising women all the time, like I was a wolf in the middle of a hen house.I was ashamed because I thought other women would be afraid of me, like they are of men. Not really afraid, but suspicious. Vigilant.Like if I went to a space where women feel safe, it wouldn’t feel safe to them anymore.That is not true.That is not true.Why am I not talking about the shame?I was ashamed of so much at the beginning of my coming to terms with my sexuality, that there were too many things for me to really see the shame surrounding shame itself.And even though I am deeply aware of my shame now, as I am still pretty closeted and that in itself is caused by my shame, I rarely see depictions of shame on social media or in shows and movies that I watch. Teenagers in Sex Education have more confidence in themselves and their identity than I do as an adult.As Contrapoints puts it: It’s difficult and risky for me to admit these feelings, because visible queer people are supposed to perform pride. Why is no one talking about the shame? Because we’re ashamed of the shame. But we shouldn’t be. The shame is a natural result of shaming. I grew up in a media era where trans women were usually represented as vomit-inducing monstrosities who deserve the violence they bring upon themselves by existing. And I started my transition in the first year of the Trump administration, where there’s been constant vilification of trans people in the press, invading women’s bathrooms, forcing our insanity on children, and destroying Western civilization with our authoritarian pronouns. It’s hard to express just the daily humiliation of being a trans woman under these conditions. Then there’s the little jabs people throw at you, like what my laser technician recently told me: “You must be very courageous to transition, because that is not socially acceptable.”She talks about the pressure she feels as a public figure to show a good, aspiration example. At the end of the day, we all want to show our best, strongest image to the world. This is especially true when other people are looking up to these creators as role models, looking up to them for validation and proof that they can find a way to be proud like them.Mae Martin’s show Feel good does depict a woman who is, at first, ashamed of being in a relationship with another woman. We could think, I used to think that, as soon as she’s come out to her homophobic friends, she would be done with the shame. As if shame is a one time step before coming out, that evaporates as soon as you are out to the world and have accepted yourself for who you are. It is based on this false dichotomy between being out and being closeted. There is such a thing as being both out and closeted at the same time. Be it a dinner party where you’re out to some people and not others, or just going to a job where you’re not out and coming back to your safe space at home to be yourself.Just because someone does videos on the internet about being queer, doesn’t mean that they are out to everyone they ever talked to. Coming out is a never-ending process in a society that expects you to be in the norm, it is a tiring process that, according to what I’ve heard, doesn’t get that much easier with time.We don’t talk about the shame because we are forced to have thick skin in a world that is unforgiving to say the least.We don’t talk about shame because no one else is talking about it. There are other subjects we might feel are more important, or it’s just not usually brought up in conversation. It makes us think we are alone in it. That we are the only ones feeling shame, that we are weaker than the others, thus repeating the cycle.We don’t talk about shame because it’s such an inherent part of being queer and it’s been in our life for so long that we have learned to ignore it. As queer people, we are made to be ashamed of who we are even before we can really comprehend our queerness. Other kids don’t wait for your coming out to call you gay in primary school. We don’t have to be conscious of what makes us different for people to cast us aside. When you have been traumatized by bullying from a young age, simply talking about it can be too painful. We don’t talk about it because we want to protect ourselves, and others, from our own suffering.We hide our suffering because when our right to exist is threatened daily, showing any sign of weakness can feel as giving the other side the exact weapons they need to attack us. We have to show as strong face as a survival mechanism, because without that strength, if you can’t keep your head up, it can feel like drowning. It makes me think of a trend of short videos I saw around Pride month, where older, mostly straight people, would give out free hugs to LGBT youths or saying that if their family wouldn’t accept them, they would become their parents. The emotional response of these young people feeling accepted by a parental figure, as well as the response I had to these videos as a closeted queer person. made me realize all of the unspoken loneliness and rejection we might feel. We have to show a strong face when we need to move away from our families for our own safety, but that leaves us in need of a community, of a sense of belonging. Sometimes we don’t want to talk about the shame because we want a moment of respite when we’ve finally found a space we are comfortable in.In a world where a few decades ago, being LGBT was considered a mental illness, there is still a lot of stigma around poor mental health in general. On top of that, lots of people on the far-right using LGBT people’s mental health issues as evidence that their gender identities or sexual orientations make them broken.Even though this shame is caused by systemic issues, we still see it as an individual moral failure within ourselves. We feel as if we as individuals are fully responsible for how we feel about ourselves and our own queerness, when we’ve been bombarded since before we could talk with homophobic, heterocentric, transphobic messages. We have to learn that what we consider to be flaws in our character are more often than not symptoms of a society that makes no effort to give us a space to be safe and accepted. Looking into concepts such as minority stress can help us get out of this individual failure mindset, and give us the tools to actually combat the root cause of the shame by bringing the change we need in our society.PrideI didn’t feel pride at all for a long time after coming out to myself. I didn’t feel pride until I began trying to accept myself, and authentically connected with some of the people that matter to me.It’s only through honesty, with myself and with others, that I was able to achieve that.Only by being honest with them, I figured that my idealized friends were struggling with pretty much the same things I was. My friend who I’d assumed was casually out in every single aspect of her life was actually not. If she seemed so comfortable every time I saw her, it was because she felt safe in our friend group, not because she was like that with everyone.It is so easy to feel shame, because that’s the only path that is showed to us, drilled into our brains, before we can even consciously understand it. It takes a lot of work to build enough pride to balance it out. It’s not something you can do alone. I remember watching longingly the proud people marching for pride, feeling like I was made differently from them, because that feeling was so foreign to me, I wouldn’t ever be able to truly feel it, to be like them. In my mind I was a different type of queer, the weak type.We need pride because shame is the most powerful tool for society to keep us in line, to prevent us from exposing every social code for what it is, just a masquerade people so desperately want to believe in. We need pride to take up the space that we deserve. We need pride so that we can resist the people who don’t want us to exist. We need pride so that we don’t disappear. We need pride so that young queers like me don’t feel like there is no happy ending waiting for them, that there is no future.Pride is the opposite of shame and it’s our only weapon against it, our only way to live, and keep on living. I can imagine a future now, a happy one, and that would not be possible without pride." + }, + + { + "title": "Everything you need to know to start journaling - Journaling Guide: part 3", + "url": "/posts/start-journaling/", + "categories": "English, Reflections", + "tags": "journaling, emotions", + "date": "2023-01-28 14:51:00 +0100", + + + + + + + + "snippet": "When to journalJournaling doesn’t have to be a huge time-commitment. You’ll find that you can write a page or two in just 10 to 15 minutes. I think you shouldn’t aim for more than that in the begin...", + "content": "When to journalJournaling doesn’t have to be a huge time-commitment. You’ll find that you can write a page or two in just 10 to 15 minutes. I think you shouldn’t aim for more than that in the beginning, to make sure that you’re not making it too hard on yourself.My favorite time to write is right before bed: it helps me relax and sleep better, signaling my brain to turn itself off for the night. It allows me to reflect on the day that has just happened and frees up my mind from all the things that my brain could want me to think about or worry about as I try to fall asleep.Although it happens more rarely, I sometimes pick up my journal when a thought or emotion comes up that I want to document or analyze. Another popular technique is morning pages, which consist of writing three pages of any thoughts that come to mind, first thing in the morning. I have never really tried it because I always feel like I don’t have anything to say in the mornings, as nothing has happened yet and my brain is empty. I am not relaxed enough to write when I just want to get going with my day. It can still be worthwhile to try it out and see if it works for you.Where to journalJournaling should be a calm and peaceful activity, so it’s great if you can find a cozy space to do it in. It’s important that you feel safe enough to write, that’s why I rarely journal in public spaces. I usually write from my bed or from my desk. You can also use a specific corner of your house that is comfortable, maybe light some candles or sit in your favorite chair, to make it a special moment.If you trust the people you live with, or live alone, keeping your journal in a place where you can see it can help remind you to journal. For example, I always put my journal on my nightstand, so that I see it before I go to sleep and am reminded that I can journal, otherwise I might completely forget about it for weeks.How to journalWhen it comes to the way you should journal, there are two main approaches: using an electronic device vs writing on paper. Let’s see what those two bring you and find out what the most appropriate setup is for you. Let’s keep in mind that doing one doesn’t prevent you from doing the other as they are complementary.Digital journalingJournaling on an app or on your computer can be a good way to get started, as you already have the tools right in front of you. Whenever I feel the need to write some thoughts down while I’m out and about, I use my notes app on my phone. However I never journal on my computer as it would feel too much like work, and wouldn’t really feel authentic to me.But journaling digitally does have its advantages. First off, you won’t lose your entries the way you could lose a notebook. As long as you’re careful with backups or use cloud storage, your journal is always with you, all the time, and doesn’t take up any space. This method is also more economical as you don’t need to pay extra for any fancy pens or stationery. You can get started right now with what you have and no extra purchases.It can be practical if you like re-reading your entries, especially since you can easily search for a date or a keyword, which is harder on a paper notebook. You can also make sure your thoughts stay safe and private by using secure apps, and no one will just find your journal lying around.Some caveats with digital journaling are that you can be tempted to edit or delete things as you go or even when you re-read it a few months later. Where paper give your thoughts permanence, and even your mistakes are still visible, writing digitally can give more room to your inner perfectionist and pressure you to write better or censor yourself more.It also feels less personal, as it’s not in your unique handwriting (which can be helpful if you can’t reread what you write, but still…) but just in a generic, uniform font. You can’t see the difference between an entry you wrote messily in the car in 3 minutes and one where you were careful to use your best handwriting.It also feels less calming to me, as journaling is one of my (few) no-screen activities. And let’s be honest, if I pick up my phone wanting to journal, chances are I will just open Instagram and start scrolling. A physical journal would not make you go into such a spiral, the worst that can happen is that you re-read old entries, which is always fun.Journaling on paperWriting in a paper notebook is my favorite way to journal. The feeling of the pen on the paper, holding the book in your hands, seeing how far in the notebook you are, flipping through the pages, choosing a beautiful notebook and pens are great pleasures you only get by going with paper. However it is tempting to fall into the trap of buying more notebooks than you will ever be able to fill up, so stay mindful and try not to buy more than 2 journals in advance. Remember that there will always be enough beautiful notebooks in the world, so it’s okay if you don’t get every single one of them on your shelves. You can also just use a composition notebook you have lying around, or an old notebook where some pages are left, or even some random sheets of paper. Let’s try not to fall into the trap of buying too many tools to journal, as the important part is to actually write, and for that you only need one pen and one piece of paper.I like writing on paper because it is slower, so it gives you more time to think and be honest. You don’t need to rush and are more intentional with what you write down. You can see all your previous notebooks on a shelf and see how far in your notebook you are every day: progress feels more tangible.It is also way easier to get creative if you’re journaling on paper: you can add collages, write sideways, clip in some tickets or cards you want to keep, draw, etc… You’re not constrained to write in straight lines, always in the same font and color. Your journal lives with you, when you rip it, fold it, spill something over it, it actually lives a life of its own, making it all the more precious.How to choose your notebookWhen it comes to choosing the notebook itself, there are a few things to keep in mind.First off, you should make sure that you are getting a notebook with good quality paper: it can be frustrating if your ink goes thought the paper.The cover can be soft or hard, both have their advantages. You’ll usually want to make sure that the notebook actually opens flat enough, and doesn’t have any parts sticking out that actually prevent it from sitting nicely on a flat surface. A hard cover helps with writing in spaces where you don’t have a table, but I actually prefer softer covers as they don’t feel as sturdy and constrained. The binding is also important, having spiral binding can make your journal harder to transport or cause sheets to fall or tear out.The size of your notebook is probably the most important aspect of it: having a notebook that is too big can make you feel like you’re not making any progress, as you have to write a lot more to fill a page. I can also be harder to travel with. On the other hand, smaller notebooks can be hard to write in, if you always have to be in a cramped position to be able to write in the small pages. It all comes down to what you’re expecting and in which settings you journal, and you have to find your sweet spot through trial and error.You also have to think about whether you want a notebook that’s lined or unlined. A lined notebook will help make it tidy and look more even, but it can come in the way if you want to draw or do other creative things in your journal.In the end, you should choose a journal that you find cute, but make sure not to buy a notebook that is too fancy or expensive. That would put too much pressure on your writing as you’ll want to match the quality or price of your notebook and not “waste” it. Journaling should remain fun and guilt-free.Other ways you can journalYou are also free to explore other, more uncommon mediums for your writing. For example, you could use: a photography journal: take pictures of your space, things you see, or significant events of your day a video/audio journal: you can also record yourself or the sounds around you, which can be even more personal and make for a beautiful, even more faithful way of documenting your life.What to journal aboutWhen it comes to actually writing, it can be useful to add some structure to your journal. One thing that you can’t skip is adding the date at the top of your entry. I also like to add the time and, if I’m not in the same place as usual, the location from which I’m writing. You can also add anything that helps you kick start your writing engine, such as the music you are listening to, the temperature or atmosphere of the space around you, the weather, etc…You are free to write whatever you want and you can experiment with different writing styles and themes. Some ideas can be writing things you’re grateful for, your favorite or worst moments of the day, how you are feeling, something you’ve learned recently, something you are worried about, etc… If you’re out of ideas, there are lots of writing prompts and writing exercises out there, some of which I’ll link in a future post.In the meantime, if I could recommend only one journaling exercise, it would be this video by struthless.Are you ready to get started?Now, you should have everything you need to know to be able to start journaling. Remember that, as with many things in life, there is no one size fits all for journaling. You can find some shortcuts and advice here, but the best way to find out what works for you is to actually pick up a pen or keyboard and write, and stay open to experimentation.In the next article I will share the main pitfalls you can find in journaling, so stay tuned for that! Until then, good luck with your writing journey." + }, + + { + "title": "After the party", + "url": "/posts/after-the-party/", + "categories": "English, Gallery", + "tags": "emotions", + "date": "2023-01-21 16:47:00 +0100", + + + + + + + + "snippet": "", + "content": "" + }, + + { + "title": "Why should you try journaling? - Journaling Guide: part 2", + "url": "/posts/why-should-you-journal/", + "categories": "English, Reflections", + "tags": "journaling, emotions", + "date": "2023-01-21 15:42:00 +0100", + + + + + + + + "snippet": "In the previous post we’ve seen my personal experience with journaling. That should have shown you a pretty good overview of what I get out of journaling, and why I keep coming back to it even afte...", + "content": "In the previous post we’ve seen my personal experience with journaling. That should have shown you a pretty good overview of what I get out of journaling, and why I keep coming back to it even after a long pause, year after year. But everyone has their own reasons to journal, and they can be very different from person to person. Let’s have an overview of what those reasons can be.A page of one’s ownEverything we do in life tends to be with the goal of achieving something. When we create or build something, the goal is to use it or to show it to other people. Journaling is the complete opposite of that. It should be a space for you to explore, mess up, try new things, be weird, all within the safety and comfort of a notebook. It is a place where no one will judge me, where I can be completely honest but also pretend I’m someone else, play and be creative. Basically, journaling can be exactly what you want it to be.It is the best thing I can do for myself in terms of calming down my thoughts, fears and doubts, feeling more calm and focused. I never regret having taken the time to write, I always get something positive out of it, even if it’s just the sense of accomplishment from having done something positive for myself.I don’t like meditating because I feel like I’m wasting my time. While I’m trying to meditate, I just think “Why am I sitting here doing nothing, when there are a thousand better things I could be doing?” Journaling doesn’t make me feel like I’m losing my time, and also brings me most of the benefits that meditation is supposed to.It leaves my mind tidier than I found it, because there is no need for thoughts to race in my brain when they’ve already been written down.A blank canvasWhether you’re into scrapbooking or art journaling, or even writing poetry or letters, journaling can definitely help explore your own creativity. It is a space where you can spark ideas by reflecting on the day, just by giving you new perspective on certain events or making links between things you wouldn’t have otherwise. And contrary to when I get an idea while scrolling Instagram or Youtube, I can jot my idea down immediately and not forget it as soon as the next video catches my eye.Journaling is a great tool for self-reflection and self exploration, without it needing to be tidy or presentable for anyone else. It is the ultimate creative space, as it should come with no pressure to be prolific or to aim for perfection. When we are not producing for anyone else is when we’re the most free to explore and try anything we set our mind to.A window into the pastJournaling is a great tool for building self awareness, being reflective about your experiences and learning from them. It helps you put things in perspective, by being able to take a step back when you reread an entry after some time has passed. It’s a good way to find the blind spots in your thinking and see the big picture rather than living day to day without learning from what is happening in your life.Journaling can show you that things you were worried about a few months back, that were occupying your whole mind, are now insignificant. Or it can show you that your worries are not such a huge deal after you’ve written them down and thought about them in a more rational way. Writing about the same thing over and over can also push you to take action, through recognizing that if you do things the same way, the same results keep happening.Having a journal is probably the best tool to remind yourself of what happened in your life, and the mindset your past self was in. There is nothing quite like reading an intimate, personal account in your journal after a few years, and realizing how much you’ve changed and grown since that point.A silent friendThere are some things you might not feel comfortable sharing with someone else, or you might not have the right person in your life to share it with. Sometimes it is harder to say things out loud or to a person that could judge you, than it is to write them down. You can always erase or tear apart anything you’ve written if that makes you feel safer.Even when you are alone and have no one to talk to or connect with, your journal can be a space to have deep conversations with yourself. Your journal is a silent friend, that will never invalidate you, judge you or interrupt you.It is probably the closest thing you can do to therapy on your own. Knowing why you feel or react in a certain way, being honest with yourself and overall knowing yourself are things you can work on on your own, with just a sheet of paper and a pen, and that’s a very magical thing to me.A training ground for the futureIn a world where we spend a whole lot of time writing, be it at work or when texting friends, journaling can help you write better. Practicing day after day, exploring new writing styles and tools when you feel like it, is what can help you find your own voice, and see how it evolves over time.A journaling practice can also help you reframe your thinking, by sometimes writing down what you’d like to think, rather that what you’re actually thinking.You can journal about a difficult decision you have to make, exploring the different outcomes on paper.Reflecting on your life, day after day, month after month, can help you find meaning in your life and emotions, and pinpoint what actually matters to you.Journaling can help you live a more intentional, creative and peaceful life. So why not give it a try?If you want to know everything you need to get started, jump to the next article in this series." + }, + + { + "title": "What I learned from journaling for more than a decade - Journaling guide: part 1", + "url": "/posts/what-i-learned-from-journaling/", + "categories": "English, Reflections", + "tags": "journaling, emotions", + "date": "2023-01-08 05:27:00 +0100", + + + + + + + + "snippet": "In these articles, I will share all my tips and tricks for how to journal, what it brought me and what it can bring you. There is not one perfect way to journal that works for everyone. Journaling ...", + "content": "In these articles, I will share all my tips and tricks for how to journal, what it brought me and what it can bring you. There is not one perfect way to journal that works for everyone. Journaling is a deeply personal experience, so feel free to adapt, customize and discard any of the tips I give you here.What you will find in this series: my personal experience with journaling: how I started journaling, what it brought me over the years. In why should you try journaling? I listed the benefits that journal could give you, as knowing why you’re doing something is probably the best way to keep you motivated a quick journaling guide: I tried to list all of the journaling tips I have found in my own practice and online, gathered in a not-too-messy way my journaling “don’ts”: Here are some misconceptions and expectations that could hold you back in getting started, building consistency or seeing the benefits of journaling resources: Here are some videos and articles which have influenced me and my journaling practice over the years, or could give you other visions, tips and ideas that might work for youNow that we’ve laid the plans, let’s dive into my own journaling experience!I have been journaling for as long as I can remember.My first journal was a travel journal, when I was around 5 or 6. At first, I didn’t write in first person, instead writing down what my favorite toy was doing, and drawing them (my plush was kind of a boy but sometimes a girl, I wasn’t quite sure) at the park and at the swimming pool.My mother made me keep a journal over our vacations in the US. She sometimes tells me I was very upset every time because I was too tired to write, but she still made me do it.Someone gifted me a pink disney princesses journal with a little lock and key when I was in primary school. I wrote down what I had done at school, and my reactions to school drama. I think I over-dramatized it for the sake of having something to write.Then I had a small Donal Duck journal, then one we made at school by binding some sheets of paper together with a wool thread. During that time, I took a break from writing because I couldn’t find it in me to write that my grandfather had died, and writing about anything else felt futile. The same thing happened when my grandmother passed away a few years later.Some time after that, in middle school, I upgraded to beautiful paperblanks journals. I was inspired by Emily the strange novels to write down my adventures, but was frustrated that my life was very boring so I had nothing to write.The end of middle school was a hard time for me, and journaling gave me a place to vent and share my interests.I took a break from writing right after high school, being overwhelmed by my studies, but I journaled a lot in the transitional summer before I entered my engineering school. I journaled as a way to self-soothe, be creative and process my emotions. I wrote a lot about celibacy and self-love in my journal around that time.Then, during the lockdowns I picked up journaling full speed again.When I moved to the other side of the ocean, I wanted to capture everything I was living and feeling and wrote almost every day for a few months, which is more than I usually write.Currently, I write whenever I feel like it, not pressuring myself too much. I know that I always feel better and sleep better when I write right before bed, because it makes it easier to let go of the thoughts that race in my head when I have written them down.I was lucky in that my family never invaded my privacy or asked me anything about my journals, and were supportive of that activity. However, even knowing that there was a very low risk of anyone reading my notes, I found it hard to be completely honest in my journal about the things I was most ashamed of or that made me feel uncomfortable. I have always been overly self-conscious about future me cringing over what I have written, in an almost paralyzing way, limiting what I allow myself to write. Confronting uncomfortable topics on paper also gives them more substance, makes them more real. Just like when I couldn’t write that people had passed away, because writing it down would set it in stone, make it real and irreversible, whereas keeping it as just a thought in my head made it possible to pretend nothing had changed. If I don’t write down a certain event or feeling, there is no proof that it ever happened, that I ever felt it. But hiding things unfortunately doesn’t make them disappear, and the only way to process them, to grieve or make any progress is to confront them, when the time is right.I have gotten better at being more honest in my journal recently, although I am not completely there yet. I believe it’s ok to take your time in confronting certain painful experiences and feelings, and you shouldn’t pressure yourself too much in journaling about them. Some things can live only in our heads, and that’s okay too.My writing style changed a lot over the years, from documenting the events of my day towards documenting my emotions and reflections about the world, and writing poetry. Journaling gives me the opportunity to be more honest, open and take a step back to see my patterns of thinking, my blind spots and my beliefs about myself. When I don’t write for a long time, my thoughts feel scattered, messy, disorganized. I worry I will forget things, and I feel like I have too many tabs open in my brain at the same time. It is something I have always, and will always come back to, whenever I want to bring more balance, peacefulness and calm in my life and in my head.See you soon in the next article, where I’ll share the reasons you should try journaling." + }, + + { + "title": "There's nothing colder than a warm memory", + "url": "/posts/a-warm-memory/", + "categories": "English, Gallery", + "tags": "emotions", + "date": "2022-12-06 16:40:00 +0100", + + + + + + + + "snippet": "", + "content": "" + }, + + { + "title": "A difficult child", + "url": "/posts/a-difficult-child/", + "categories": "English, Poetry", + "tags": "coming-out, self-acceptance", + "date": "2022-11-30 09:45:00 +0100", + + + + + + + + "snippet": "The other day, I bought some queer books, and I suddenly felt invincible. I wanted to shout how proud I was on the street while walking home. My heart burst out from love and kinship for my fellow ...", + "content": "The other day, I bought some queer books, and I suddenly felt invincible. I wanted to shout how proud I was on the street while walking home. My heart burst out from love and kinship for my fellow trans and queer friends, and I realised once again that I don’t need to define myself and that I can be whoever I want to be. I realised the power and the potential there is in building your own identity, the rebellion even, in not only escaping the standards, but also refusing to put a word, a label on what you are.If you have an idea of what it’s like to be confused regarding your own gender identity, you will probably understand my identity without me expressing it. If you don’t, well I don’t feel the need to put a fancy, easy little word dismissing the complexities of my identity, just for it to be more palatable to you. I am trans and I am queer, but I refuse to define myself further just so society can classify me and comprehend me and confine me to something they are comfortable with.I didn’t care about what anyone else thought. I felt powerful, I felt like I had finally found my place.My parents made me feel I was a difficult childIs there really a child that is not difficult?A child who doesn’t make any noise and doesn’t make a mess and never cries and doesn’t tear the paper napkins into a thousand little pieces of paper and doesn’t throw those little flakes to the ceiling because look it’s snowing?I tried to behaveTo be a good child, a nice childTo make myself small and silentPaper thin and transparentInvisibleBut that wasn’t funI couldn’t exist within those constraintsI had to make noise, and be freeNow, along the way, I have finally understood why they wanted me to behaveI know it’s the only power they have over us, to keep us in lineThe words and the looks and the judgementsThey lost their grip on meWhen I realised their eyes were just eyes and their hands were just handsAnd I could escape themThe second I stopped listeningI was freeTake their power away like I didIt doesn’t have to be bigIt doesn’t have to be boldExisting is the first stepTake their power by writing your wordsDon’t let yourself be confinedMake noiseTurn your body into whatever you want it to beFind your own name and shout it from the rooftopsShow your colours and make your own kind of musicDon’t let them mold you into something you’re notBe a difficult child" + }, + + { + "title": "Où sont les vie.ille.ux non-binaires?", + "url": "/posts/representations-non-binaires/", + "categories": "Français, Réflexions", + "tags": "genre, representations", + "date": "2022-11-21 13:22:00 +0100", + + + + + + + + "snippet": "Récemment, je me suis rappelé.e d’une histoire que l’on raconte souvent dans ma famille. Il faut savoir que ma grand-mère peut être très maladroite dans ses interactions avec les autres. Je voyais ...", + "content": "Récemment, je me suis rappelé.e d’une histoire que l’on raconte souvent dans ma famille. Il faut savoir que ma grand-mère peut être très maladroite dans ses interactions avec les autres. Je voyais à l’époque cette histoire comme une histoire drôle, une énième gaffe que l’on pouvait utiliser pour se moquer gentiment d’elle.L’histoire peut être résumée très simplement : depuis toujours, elle allait faire les courses à son épicerie favorite. Un jour, le vendeur qu’elle avait l’habitude de voir, et à qui elle avait dit “Bonjour Monsieur” tous les jours jusque-là, n’était plus là. Alors elle a demandé: “Il n’est plus là, le vendeur de d’habitude?”. Et le patron de l’épicerie lui a répondu que non, “[Prénom de femme] est partie à la retraite.”À l’époque, tout comme ma famille, je trouvais cette histoire très drôle. Ma grand-mère, incapable de deviner correctement le genre d’une personne pendant plusieurs années ! Je me demandais parfois pourquoi lae vendeureuse ne l’avait jamais corrigée, mais ma réflexion n’allait pas plus loin.Je me suis penché.e à nouveau sur cette histoire, après m’être questionné.e longuement sur mon propre genre, et avoir lu Tomboy survival guide, de Ivan Coyote.Je ne la vois plus comme une histoire drôle, comme une maladresse de la part de ma grand-mère. Ce n’est pas drôle que ma grand-mère ait mal deviné le genre de cette personne. Ce n’est pas drôle que cette personne ait une présentation de genre qui ne correspond pas à son prénom. Ce n’est pas parce que son patron l’appelle par un prénom féminin que cette personne est une femme.Je ne saurai jamais quel était le genre de cette personne. Était-ce une butch très masculine, ou bien un homme trans ? S’iel ne l’a jamais corrigée pendant toutes ces années, est-ce que cela veut dire que c’est un homme ? Ou simplement que cela ne lui importait pas ? Est-ce qu’on ne l’appelait par un prénom féminin uniquement parce que c’était ce qui était écrit sur sa carte d’identité ?Ou bien suis-je en train de rechercher désespérement des miettes de représentation parmi des choses qui n’ont rien à voir avec la transidentité ou les représentations queer ?Mais j’ai besoin de mes héros. J’ai besoin de trouver mes exemples, des gens comme moi, pas seulement dans la grande histoire, mais aussi dans la petite. Dans la vie des autres, de ceux qui ont construit qui je suis. Je ne peux pas être lae seul.e, je ne peux pas être lae premier.e. Il a bien dû y en avoir d’autres avant moi, d’autres comme moi.Si je veux qu’ils me voient, moi, cela m’aiderait de trouver de telles représentations dans notre passé, de prouver que des gens comme moi existaient déjà, et que cela existera encore longtemps. Que ce n’est pas seulement à la télé, parmi les activistes, sur les réseaux sociaux. Que c’est aussi la personne à qui tu achètes tes courses tous les lundis matins.Le livre d’Ivan Coyote a rempli une grande partie de ce besoin de représentation pour moi. Je n’avais jamais lu de représentation de cet aspect de mon identité auparavant. J’écrirai sans doute un autre article sur ce livre à l’avenir, mais en un mot ce livre était une vraie bouffée d’air frais pour moi.Je ne m’identifie pas à tous les aspects de sa vie, et notre identité ainsi que notre présentation de genre sont différentes.Mais savoir qu’une personne de plus de 40 ans a un jour ressenti les mêmes choses que moi, et les ressent toujours, m’a fait me sentir beaucoup moins seul.e, et m’a montré un avenir que je n’osais pas imaginer.Je me projette rarement dans un avenir lointain, pour diverses raisons, mais ma sexualité et mon identité de genre ont toujours beaucoup pesé là-dedans. Comment se projeter quand le modèle est d’être dans une relation hétérosexuelle, de vieillir dans un corps qui n’est pas exactement le nôtre, entourés de gens qui ne nous comprennent pas vraiment ? Tout cela en pensant que les questions qui nous taraudent n’ont sûrement pas de réponses. Qu’elles sont honteuses, qu’il s’agit de quelque chose qui est brisé à l’intérieur de nous, quelque chose qu’on a raté, qu’on a perdu. Ivan Coyote me montre que ces réponses existent, que des gens comme moi existent, qu’iels ont toujours existé, et que j’ai un avenir. Avoir des personnes LGBTQ+ dans ses représentations, mais aussi dans son entourage, est essentiel.Quand je ne vois la représentation sur les réseaux sociaux, les seules personnes que je vois sont des personnes de mon âge, voire plus jeunes. Sans doute que leur apparence finalement normée, même si peut-être pas dans des normes binaires, les favorise. C’est aussi, simplement, que les jeunes sont plus souvent sur les réseaux sociaux. Où sont les vieux queer? Comment savoir ce que l’on va devenir, si on ne le voit pas?Comment savoir que ce n’est pas quelque chose de nouveau, que ce n’est pas une phase, pas un caprice, s’il n’existe pas de personnes non binaires de plus de 30 ans dans nos représentations?Les médias en live-action dans lesquels j’ai vu des personnes non binaires (récemment Sex Education et Heartbreak High1) sont destinés aux adolescents. Les personnes non binaires représenté.es sont des lycéen.e.s. Iels sont déjà assez sûr.e.s d’eux et de leur identité pour reprendre les adultes cisgenres lorsqu’ils utilisent les mauvais pronoms. Iels savent défendre leur place avant même d’avoir quitté le lycée.Moi-même, à 24 ans, je ne suis out qu’à une poignée de personnes elles-mêmes trans pour la plupart. Je n’ose même pas dire mes pronoms à des personnes cisgenres de peur de les déranger. À l’âge de ces personnages, je ne connaissais que vaguement l’existence des femmes trans, et pas du tout les hommes trans ou la non-binarité. Je ne savais pas que d’autres personnes pouvaient avoir les mêmes questionnements et insécurités que moi.C’est pour cela que je ne me reconnais pas dans ces représentations. Ces personnages sont aspirationnel.le.s, inspirant.e.s, oui. Leur force et le fait qu’iels soient sûr.e.s d’elleux me montre que je pourrais moi aussi, un jour, ne plus m’excuser d’exister. Mais je ne me reconnais pas dans ces personnages qui n’ont pas de failles, qui ne doutent jamais de leur identité, qui ne se mégenrent jamais elleux-mêmes, qui ne se demandent jamais s’iels on fait une erreur, s’iels ont bien le droit de prendre la place qu’iels prennent.Je sais qu’il s’agit également d’une différence de générations, et qu’en presque une dizaine d’années, beaucoup de choses ont changé. Là où mes ami.e.s queer n’étaient out qu’à leurs ami.e.s les plus proches quand nous étions au lycée, j’entends que leurs petits adelphes sont out auprès de tout leur lycée, et même de leurs professeurs.C’est une autre époque, et des modèles comme Ivan Coyote me semblent plus abordables. Il ne s’agit pas de gens qui sont plus jeunes que moi et savent déjà mieux que moi quelle est leur identité de genre, là où je doute constamment.Les jeunes me poussent à penser qu’il est déjà trop tard pour moi.Ivan Coyote me montre qu’il n’est jamais trop tard. On peut faire une mamectomie à plus de 40 ans après avoir passé des annéees avec un binder. Notre société et son culte de la jeunesse m’ont toujours fait croire qu’il fallait tout savoir maintenant, tout faire maintenant. Ivan Coyote me dit que j’ai le temps, et c’est de ça que j’ai besoin. Nous ne cessons pas d’être non-binaires quand nous sortons du lycée et que nous entrons dans le monde du travail. Nous ne cessons pas d’être non-binaires quand nous ne correspondons plus aux critères de casting d’une série pour adolescents. Nous existons partout dans la société, même quand ce n’est pas pour faire une jolie répresentation innoffensive. Nous participons aussi à la marche du monde. Nous existions déjà avant ces séries, même si le reste de la société n’avait pas les mots pour nous décrire, même si nous n’avions pas l’espace de créer nos propres représentations.Mais si on ne nous représente que sous la forme d’enfants, ou d’êtres non-humains dans des mondes imaginaires qui n’ont rien à voir avec le nôtre, comment pouvons-nous exprimer notre voix ? Quand nous montrera-t-on des personnes non-binaires adultes, dont la voix pèse réellement dans la société, et qui sont en charge de leur propre vie, comme les autres ? Où trouver un autre modèle, comment vieillir en n’étant pas binaire ?Bien sûr, je suis content.e que ces représentations d’adolescents existent, car je serais sans doute une personne plus sûre. de moi aujourd’hui si je m’étais contruit.e avec eux comme modèle. J’aime à penser que les personnes non-binaires qui sont né.e.s quelques années après moi ressemblent vraiment à ces personnages, et qu’iels trouveront leur place plus facilement que moi. En attendant, je continuerai de chercher des personnes non-binaires ailleurs que sur les sentiers battus, qui ne ressemblent pas à une version prémâchée pour une série facile à visionner ou un algorithme friand de personnes maigres, androgynes et blanches, mais des personne réelles, qui nous ressemblent. J’exclus volontairement les représentations que j’ai vues dans des dessins animés, The Owl House et She-Ra and the Princesses of Power pour différentes raisons: le monde dans lequel se déroule ces histoires n’est pas réaliste, et les personnages n’évoluent pas dans une société et avec un parcours ou une vie quotidienne à laquelle je puisse m’identifier. Leur identité de genre n’est pas explorée ni expliquée, et Double Trouble comme Raine ne sont pas humains. ↩︎ " + }, + + { + "title": "The vampire", + "url": "/posts/the-vampire/", + "categories": "English, Poetry", + "tags": "relations, emotions", + "date": "2022-10-30 17:00:00 +0100", + + + + + + + + "snippet": "Happy Halloween!This is a poem I first composed at the end of November last year, at a time where I felt dissatisfied with my relationships and was hoping for something more. I thought it would be ...", + "content": "Happy Halloween!This is a poem I first composed at the end of November last year, at a time where I felt dissatisfied with my relationships and was hoping for something more. I thought it would be impossible for me to get what I wanted, and that I was a bad person for not being content with what I already had.I am at a much better place now, feeling fulfilled in my relationships. I rarely feel alone anymore, and I don’t find myself yearning for more connection.I figured the theme is perfect for spooky season, so I decided to rewrite it, experimenting with rhymes, which I rarely do in English poems.I am a vampireFeeding off of all the love that I can findConsuming my lover’s warmth like a fireThen leaving them behindI need the love to fuel meBut once it’s gone, it leaves me even colderThe joy and comfort stay behind as a memoryLike when I turn off the hot waterAnd I am left naked and alone, shuderring in the coldSearching for more, feeling around me for someone, anyoneFinding only darkness, heartbreak, and promises I couldn’t holdI used to think I would never get enough, but you might be the oneThat’s what I thought last time tooBut I promise I hope that it’s you" + }, + + { + "title": "Handle with care", + "url": "/posts/handle-with-care/", + "categories": "English, Poetry", + "tags": "emotions, relations", + "date": "2022-10-21 16:58:00 +0200", + + + + + + + + "snippet": "I know it was not written on my heart From the moment you met meYou had to guess from the signsAnd the things I told youI should have let you know from the beginningInstead of making you learn the ...", + "content": "I know it was not written on my heart From the moment you met meYou had to guess from the signsAnd the things I told youI should have let you know from the beginningInstead of making you learn the hard way But it took me time to see it tooAnd I was afraid that you would not want anything to do with meOnce you’d seen the labelHandle with careIt’s not that I’m fragileIt’s not that I’ve been through a lotI’m just afraid I’ll be droppedAnd you’ll forget me Broken in the gutterPeople will see the contents of my heartSpilled on the roadSoon they will wash away in the rainAnd it will all have been for nothingThat is why I’m asking youTo handle me with careAnd if you need to let go of my handPlease do it gentlyWhen you need to leave" + }, + + { + "title": "Killing butterflies", + "url": "/posts/killing-butterflies/", + "categories": "English, Poetry", + "tags": "coming-out, self-acceptance", + "date": "2022-10-20 17:57:00 +0200", + + + + + + + + "snippet": "This is one of the first poems I wrote when I picked up writing again in November last year. I was at the very beginning of the process of coming to terms with my sexuality. I predominantly felt sh...", + "content": "This is one of the first poems I wrote when I picked up writing again in November last year. I was at the very beginning of the process of coming to terms with my sexuality. I predominantly felt shame and confusion.This poem touches on some experiences from my past that I would not give the same meaning to today, but I wanted to leave its authentic original meaning.It is one of my favorite poems I’ve ever written, as the act of writing it, and telling myself the truth I had been holding back for so long was a cathartic experience.I tried so hard to unsee itIt started long agoWhen I looked too long for my own goodI tried to avert my eyesTo look awayBut after that, I could never be straight againYou held me tightlyIn a way that I felt wasn’t allowedDo you still think about it sometimes?Does your brain take you back to this moment, late at night, and then do you wonder about me, and whether I felt it too?Because I did, and I do, and I still rememberBecause after thatI could never be straight againI thought I could convince myselfI thought if I tried hard enough to look awayIt would disappearI thought I would never be able to loveI thought I was brokenIt just never cameThe feeling they talk about in love songsThe butterfliesI didn’t know I had shoved them all in a jar, and put it in a closet and locked it and thrown away the keyI didn’t know that becauseOf course I would always be straightAnd then I felt themThe butterfliesAnd it was for a boyAnd so it was all rightAnd maybe I could be straight againBut still I kept looking too longStill I kept looking too intentlySo ashamedI hid inside myselfBecause I knew deep downThat I would never really be straightWhen the butterflies were on the verge of dying off someone came Took my hand andShowed me that there is nothing wrongWith never being straight at allAnd then I felt them once moreThe butterfliesAnd it wasn’t for a boyAnd it didn’t feel right, but also it didAnd then I wasn’t straight anymoreI tried to close back the jarI tried to hold them downThe butterfliesBut still they kept flyingAnd I couldn’t catch them allBecause there is no stopping the butterfliesOnly waiting for them to passAnd so I will never be straight againI am not killing butterflies anytime soonBecause holding that jar closedTakes all the energy that I haveBecause I want to live to my fullest And I need both of my hands to do thatI want to feel their wings brushing my cheeks as I blushI want to see them dance in the sun when I hold my lover’s handI want to feel them hugging my heart when it is about to crack wide openI don’t want to dim the colors of my heart ever againOf course I know that there will still be daysWhen I will be tempted to look awayWhen I will want to hideBut even then I knowThat I will never be straight again" + }, + + { + "title": "Know my name: Similarities between coming out as transgender and as a victim of assault", + "url": "/posts/know-my-name/", + "categories": "English, Reflections", + "tags": "gender, violence", + "date": "2022-10-04 15:52:00 +0200", + + + + + + + + "snippet": "Content warning: This article discusses themes of transphobia and sexual assault.Today I finished reading Know my name, by Chanel Miller. One thing that struck me in the Afterword of the book is th...", + "content": "Content warning: This article discusses themes of transphobia and sexual assault.Today I finished reading Know my name, by Chanel Miller. One thing that struck me in the Afterword of the book is that the way she talks about coming forward as a rape victim has a lot to do with the experience of coming out as transgender.One sentence in particular ignited the parallel in my head with what I know of the trans experience. I wondered if there was a way to reveal my first name, but not my last.As she states in this video, “when you are assaulted, an identity is given to you. It threatens to swallow up everything you plan to do, and be. I became Emily Doe. Assault teaches you to shrink. Makes you afraid to exist. Shame, really, can kill you.”She did not choose the name everyone referred to her as during the trial. She had no say as to what name the media would use to report on the case. An identity was imposed on her, without her ever being able to consent to it, much like when a baby is given a name while just freshly out of the womb. But this identity didn’t only consist of a name. Victim is a role that limits who you are, and what you can say.When the statement she read to her attacker went viral, some people suggested she wasn’t the one to write it. Because she was a victim, her words were not supposed to have power. What they were really saying is, victims can’t write. Victims aren’t smart, capable or independent. They need external help to articulate their thoughts, needs and demands. They are too emotional to compose anything coherent. It cannot be the same drunk girl who was found unconscious, the one who the media said uncontrollably sobbed throughout testimony. On a deep level they wanted to take away my writing, which I would not give up as easily.After her assault, she was given a new name and a new, limiting role in society. She was told by influential voices around her that she didn’t belong in the spotlight, that she had to hide, that she had to be ashamed of herself.That is what transphobia does to transgender people every day. While still in the closet, we are referred to by names we didn’t choose, and, in order to survive, we have to shrink and hide. We can’t abide by the narrative of what our life is supposed to be like, and we are unable to imagine a future for ourselves within the bounds of what is expected of us. Gender roles are imposed that prevent us from ever living as our true selves. Society reminds us that we are supposed to feel shame and guilt for who we are. It denies us our power, because of how threatening we are to the status quo that maintains men and women in oppressive gender roles, and destroys any attempt to define a life outside of this binary. Hold up your head when the tears come, when you are mocked, insulted, questioned, threatened, when they tell you you are nothing, when your body is reduced to openings.Victims are always looked at from a place of scrutiny. They are not believed simply from their words, just like words often aren’t enough for trans people to be recognized as the gender they identify with. Society looks at them both from a place of distrust, and humiliates them on any occasion it gets. Transgender women have been the object of jokes since the beginning of cinema, as exemplified in Netflix’s Disclosure. But above all, the experience of trans people can be described as one of erasure. Only a handful trans of trans people are represented on screen and in the media.Trans people, just like rape victims, are reduced to their bodies, they are defined by them. Strangers may ask them intrusive, inappropriate questions, just like rape victims’ bodies, outfits and personal history are scrutinized during a trial.Their past is used to define them, and they are often unable to ever completely detach from their former identity, as a victim or as their pre-transition selves. In the victim realm, we speak of anonymity like a golden shield. […] But while we discussed the protection it afforded, no one discussed the cost. Never to speak aloud who you are, what you’re thinking, what’s important to you. I was lonely. I longed to know what it was like not to have to spend all my energy concealing the mode heated parts of me. I kept coming back to a line from one of Lao Tzu’s poems: He who stands on tiptoe doesn’t stand firm. I could not spend my life tiptoeing.She uses the word golden shield, but I would describe it as a golden prison. For a while, hiding protects you from any bad things that might happen to you in the physical world because you are visibly trans. But it doesn’t protect you from what is arguably the most hurtful part, which is the rejection from society and from yourself, through internalized transphobia. Hiding does come at a cost, it costs us our energy, it costs us our voices, it costs us a life that is authentic to who we are.That golden prison is a step we need to go through, until we find it in ourselves to say aloud who we are. But hiding inside that cage doesn’t mean that we lack any courage. Whenever I hear a survivor say they wish they’d had the courage to come forward, I instinctively shake my head. It was never about your courage. Fear of retaliation is real. Security is not free. […] I don’t think survivors want to live in hiding. We do because silence means safety. Openness means retaliation. Which means it’s not the telling of the stories that we fear, it’s what people will do when we tell our stories. I remember thinking, If anyone finds out, they’ll think I’m dirty. We suffer from society’s shallow understanding.But when the circumstances allow us to, we have to step out to set an example, and let other people know that they are not alone, just like we once longed to know, even if it means exposing ourselves to violence and prejudice. Chanel Miller’s mother first tells her to remain anonymous because she wants to protect her. But after a while, she finally gives Chanel her blessing. She said, If you want to break yourself, to be bigger, to help other women, do that. Pain always gives you more power to go forward. Happiness and comfort don’t. It all depends on who you want to be.But coming out doesn’t mean we will be exposed only to violence and negative reactions. To the contrary, Chanel Miller’s experience in coming forward has a lot of positive aspects. For so long, I worried that to be known meant to be undone. The more they see you, the more they can use against you. For years I worried this was true. Upon finishing this book, I knew it was not. […] I often question where men like the defense attorney get their confidence, while I’m the one who struggles with self-loathing. […] I decided that for as long as they’re out there, I will be out there too. I will appear on every television screen across the nation and I will not question my being there. I will be seen, open about everything I am and ever was, because I know that from the very beginning, the defense attorney had it wrong. To be known is to be loved.When her name and picture were released, her friend texted her “Happy birthday”, “because that’s what it felt like, being born into the world. No more fragmentation, all my pieces aligning. I had put my voice back inside my body. I was inundated with messages of grief, shock, pride, but all I felt was peace.” She describes the merging of her own identity and her victim status as the two identities of a trans person merge together when they come out, the hidden, closeted, true identity, and the mask that we are expected to wear for our own safety. We are finally able to live under one identity, after a period of leading a double life, which can last anywhere from days to years. In coming out, we are born again, because we get a new first name, a thing that is normally only given to you once, on the day you are born. We get a new identity, not only a new gender, but also all the expectations that come along with the word transgender.The responses to a coming out can be mixed, but they can be described exactly the way Chanel Miller describes the reactions of people learning she was assaulted: some people may face grief, when loved ones consider their newly born selves as having killed and replaced their old selves (which they have not, as they are the same person they have been all along). Other reactions might include shock, and sometimes disbelief, because people believe they have known you all along when you were only really showing a version of yourself tailored to help you survive. Finally, there is pride, the opposite of shame, the feeling that allows you to step out of your hiding place, and other people might feel that on your behalf, because they know that it is the right path for you, and that it took courage for you to get there.Ultimately, we can see that assault victims and transgender people are both regarded as a monolithic group, taught to hide and be ashamed, reduced only to the flesh of their bodies, deprived from any complexity or depth, unable to choose their own identity. Those two groups are porous, and a disproportionate number of transgender people, especially women, are victims of sexual assault. Our voices are silenced, but we don’t have to hide forever. Speaking up not only helps us be more true to ourselves, but it might also be what sparks change and acceptance in another victim, in another trans person." + }, + + { + "title": "Le tricot", + "url": "/posts/le-tricot/", + "categories": "Français, Poèmes", + "tags": "genre, relations", + "date": "2022-09-22 16:38:00 +0200", + + + + + + + + "snippet": "La première fois que je t’ai vueTu étais un mystèreSilencieuseCachéeUne énigmeEnfermée dans un pull trop grand pour elleDont elle ne pouvait se détacherJ’ai réussi à saisir un filJ’ai essayé de le ...", + "content": "La première fois que je t’ai vueTu étais un mystèreSilencieuseCachéeUne énigmeEnfermée dans un pull trop grand pour elleDont elle ne pouvait se détacherJ’ai réussi à saisir un filJ’ai essayé de le détricoterPetit à petitMaille par mailleNon pas que je voulais te priver de ton coconSimplement parce que je voulais te comprendreTe chérirJe voulais te voir toiSans la honte et les secretsJ’ai pris un fil et j’ai tiré dessusTrop fort d’abordSans me rendre compteQue c’est en voulant démêler trop vite qu’on fait le plus de noeudsC’est à force de patience que j’ai pu les défaireDétricoter tous les morceauxTu voulais les tenir tous ensemblePour rester hors de ma vueHors de la vue du mondeHors de la tienne surtoutMais je ne me laisse pas abattreQuand j’aimeJ’ai tiré sur le fil et petit à petit j’ai appris à te connaîtreC’était une longue entrepriseEt elle n’est pas finieMais chaque jourAvec douceurChaque jourAvec amourJ’ai détricoté une maille à la foisEt avec tout le temps du mondeJ’ai fini par te trouverTu auras peut-être froid sans ces mailles pour te serrerMais tu brilleras plus fortEt je serai toujours là pour te réchaufferEt t’enlacer encoreEt peut-être qu’ensemble on pourraTe tricoter un pull à ta taille" + }, + + { + "title": "La brume", + "url": "/posts/la-brume/", + "categories": "Français, Poèmes", + "tags": "relations", + "date": "2022-09-20 16:49:00 +0200", + + + + + + + + "snippet": "C’est un poème que j’ai écrit pour la première fois en janvier cette année, le jour où je prenais l’avion pour retourner chez moi, sur un autre continent que les deux personnes qui partagent aujour...", + "content": "C’est un poème que j’ai écrit pour la première fois en janvier cette année, le jour où je prenais l’avion pour retourner chez moi, sur un autre continent que les deux personnes qui partagent aujourd’hui ma vie.C’était un moment suspendu, presque hors du temps, comme souvent dans les aéroports. Malgré les énormes baies vitrées de l’aéroport, je ne voyais pas le tarmac car tout était couvert de brume. Il y a eu de la brume jusqu’à ce qu’on décolle, et j’ai été frustré.e de ne pas avoir une dernière image nette de mon pays avant de partir.Aujourd’hui la brume ne s’est pas levéeComme si elle ne voulait pas que je parteComme si elle voulait m’empêcher d’avoir les adieux dont j’ai besoinPour me punir de tout laisser derrière moiJe la comprendsPourtant je n’ai pas voulu partirElle me donne un adieu moroseAvec pour seul paysage la lumière grise et diffusePas de ciel et pas de soleilElle ne me laisse rien voir avant de m’en allerPas même le tarmac ou les ailes des avionsUn dernier morceau d’herbe ou de ciel bleuUn morceau d’ici, un dernier souvenir que je puisse emporter avec moiMais non, rien.Peut être pour me forcer à revenirPeut être pour m’empêcher de te quitterLa brume veut me cacher la conclusionLes gouttelettes en suspension me laissent avec un sentiment d’inachevéCelles dans mes yeux ne m’aident pas non plusEst-ce seulement mes larmes qui m’empêchent de voir ?Peut-être que je n’aurais pas dû partirMais je laisse un morceau de mon coeur avec toi, et je tâche de me souvenirQu’il fait toujours beau au dessus des nuagesIl faut simplement réussir à s’envoler assez hautEt à sécher ses larmes" + }, + + { + "title": "A guest in your own house", + "url": "/posts/a-guest/", + "categories": "English, Poetry", + "tags": "emotions", + "date": "2022-09-06 16:48:00 +0200", + + + + + + + + "snippet": "I feel as uneasy as a guest, not knowing where to stand, or where to hang my coat, or why on Earth I was invitedToo uncomfortable to make any noise, create any ripples, in a place that ain’t mineHa...", + "content": "I feel as uneasy as a guest, not knowing where to stand, or where to hang my coat, or why on Earth I was invitedToo uncomfortable to make any noise, create any ripples, in a place that ain’t mineHaving trouble remembering that I’m welcome, and this is my own bodySurely if I say anything, express any needs, show any sign of discomfort, I will be kicked outRudeDisrespectful.Surely I will break the harmony of the place, and forever be bannedBut where else could I go?This is my only home.I don’t like how the room is arranged, but oh well, what can I do? It’s not like it is my placeOh but it isBut what if I decorate it to my taste, and my guests don’t like itWhat if there is nowhere for them to sit?What if they get offended, what if I break the rules?Will I have enough time to take out the decor, if they come unannounced?Will I ever feel at home here. if I never stop treating myself as a guest?" + }, + + { + "title": "The zombie", + "url": "/posts/the-zombie/", + "categories": "English, Poetry", + "tags": "emotions", + "date": "2022-09-04 16:48:00 +0200", + + + + + + + + "snippet": "I have been living my life like a zombieHiding inside myselfHiding from yourself is the hardest partI’ve become so good at itI can’t even see it anymoreI sometimes forget I used toI wish people cou...", + "content": "I have been living my life like a zombieHiding inside myselfHiding from yourself is the hardest partI’ve become so good at itI can’t even see it anymoreI sometimes forget I used toI wish people could see me stillRead into the parts I hidBut people can’t read minds, especially those that have been meticulously erasedI wish I could still see it from time to time, but I lost trackI run around the building but I can’t find the door, I hid it so wellThe windows are closed and the shutters are onIf I try breaking a wall to enter I will only find rubbleI have to enter through a mouse’s hole and unravel it slowlyRemoving a brick and then another until I make a door for myselfIt is a dark place and I am still crawlingBut one day I will find the switch and turn the light onAnd when the sun will rise I will open the windows and let it all outFor everyone to see" + } + +] + diff --git a/assets/js/data/swconf.js b/assets/js/data/swconf.js new file mode 100644 index 0000000..7217e29 --- /dev/null +++ b/assets/js/data/swconf.js @@ -0,0 +1,30 @@ +const swconf = { + + cacheName: 'chirpy-1725803935',resources: [ + '/assets/css/jekyll-theme-chirpy.css', + '/', + + '/categories/', + + '/tags/', + + '/archives/', + + '/about/', + + + + + ], + + interceptor: {paths: [ + + ],urlPrefixes: [ + + ] + }, + + purge: false + +}; + diff --git a/assets/js/dist/categories.min.js b/assets/js/dist/categories.min.js new file mode 100644 index 0000000..716468d --- /dev/null +++ b/assets/js/dist/categories.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",l="clippingParents",c="viewport",f="popper",u="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",O=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof A(e).Element||e instanceof Element}function L(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function T(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];L(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});L(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function S(e){return e.split("-")[0]}var D=Math.max,k=Math.min,P=Math.round;function N(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(N())}function B(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&L(e)&&(o=e.offsetWidth>0&&P(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&P(i.height)/e.offsetHeight||1);var s=(C(e)?A(e):window).visualViewport,a=!M()&&n,l=(i.left+(a&&s?s.offsetLeft:0))/o,c=(i.top+(a&&s?s.offsetTop:0))/r,f=i.width/o,u=i.height/r;return{width:f,height:u,top:c,right:l+f,bottom:c+u,left:l,x:l,y:c}}function F(e){var t=B(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function H(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&T(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function $(e){return["table","td","th"].indexOf(x(e))>=0}function W(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function z(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(T(e)?e.host:null)||W(e)}function q(e){return L(e)&&"fixed"!==I(e).position?e.offsetParent:null}function R(e){for(var t=A(e),n=q(e);n&&$(n)&&"static"===I(n).position;)n=q(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(N());if(/Trident/i.test(N())&&L(e)&&"fixed"===I(e).position)return null;var n=z(e);for(T(n)&&(n=n.host);L(n)&&["html","body"].indexOf(x(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function V(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Y(e,t,n){return D(e,k(t,n))}function U(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function K(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,l=o.name,c=o.options,f=a.elements.arrow,u=a.modifiersData.popperOffsets,d=S(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(f&&u){var m=function(e,t){return U("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:K(e,r))}(c.padding,a),g=F(f),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-u[p]-a.rects.popper[h],_=u[p]-a.rects.reference[p],w=R(f),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,O=y/2-_/2,x=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+O,L=Y(x,C,A),T=p;a.modifiersData[l]=((s={})[T]=L,s.centerOffset=L-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&H(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,l=o.popperRect,c=o.placement,f=o.variation,u=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=u.x,b=void 0===v?0:v,y=u.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=u.hasOwnProperty("x"),O=u.hasOwnProperty("y"),x=i,C=e,L=window;if(h){var T=R(s),j="clientHeight",S="clientWidth";if(T===A(s)&&"static"!==I(T=W(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),c===e||(c===i||c===n)&&f===a)C=t,_-=(g&&T===L&&L.visualViewport?L.visualViewport.height:T[j])-l.height,_*=p?1:-1;if(c===i||(c===e||c===t)&&f===a)x=n,b-=(g&&T===L&&L.visualViewport?L.visualViewport.width:T[S])-l.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),N=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=N.x,_=N.y,p?Object.assign({},k,((D={})[C]=O?"0":"",D[x]=E?"0":"",D.transform=(L.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=O?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,c={placement:S(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,l=A(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&c.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&l.addEventListener("resize",n.update,ee),function(){r&&c.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&l.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return B(W(e)).left+se(e).scrollLeft}function le(e){var t=I(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function ce(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:L(e)&&le(e)?e:ce(z(e))}function fe(e,t){var n;void 0===t&&(t=[]);var i=ce(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],le(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(fe(z(s)))}function ue(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===c?ue(function(e,t){var n=A(e),i=W(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,l=0;if(o){r=o.width,s=o.height;var c=M();(c||!c&&"fixed"===t)&&(a=o.offsetLeft,l=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:l}}(e,n)):C(t)?function(e,t){var n=B(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ue(function(e){var t,n=W(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),l=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:l}}(W(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=fe(z(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&L(e)?R(e):e;return C(n)?t.filter((function(e){return C(e)&&H(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=D(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=D(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,l=o.reference,c=o.element,f=o.placement,u=f?S(f):null,d=f?G(f):null,p=l.x+l.width/2-c.width/2,h=l.y+l.height/2-c.height/2;switch(u){case e:r={x:p,y:l.y-c.height};break;case t:r={x:p,y:l.y+l.height};break;case n:r={x:l.x+l.width,y:h};break;case i:r={x:l.x-c.width,y:h};break;default:r={x:l.x,y:l.y}}var m=u?V(u):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(l[g]/2-c[g]/2);break;case a:r[m]=r[m]+(l[g]/2-c[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?l:m,v=s.rootBoundary,b=void 0===v?c:v,y=s.elementContext,_=void 0===y?f:y,w=s.altBoundary,E=void 0!==w&&w,O=s.padding,x=void 0===O?0:O,A=U("number"!=typeof x?x:K(x,r)),L=_===f?u:f,T=i.rects.popper,j=i.elements[E?L:_],S=pe(C(j)?j:j.contextElement||W(i.elements.popper),g,b,h),D=B(i.elements.reference),k=he({reference:D,element:T,strategy:"absolute",placement:d}),P=ue(Object.assign({},T,k)),N=_===f?P:D,M={top:S.top-N.top+A.top,bottom:N.bottom-S.bottom+A.bottom,left:S.left-N.left+A.left,right:N.right-S.right+A.right},F=i.modifiersData.offset;if(_===f&&F){var H=F[d];Object.keys(M).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";M[i]+=H[r]*o}))}return M}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,f=void 0===c?p:c,u=G(i),h=u?l?d:d.filter((function(e){return G(e)===u})):r,m=h.filter((function(e){return f.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[S(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,l=r.options,c=r.name;if(!a.modifiersData[c]._skip){for(var f=l.mainAxis,u=void 0===f||f,d=l.altAxis,p=void 0===d||d,h=l.fallbackPlacements,m=l.padding,g=l.boundary,v=l.rootBoundary,b=l.altBoundary,y=l.flipVariations,_=void 0===y||y,w=l.allowedAutoPlacements,E=a.options.placement,O=S(E),x=h||(O===E||!_?[ie(E)]:function(e){if(S(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),A=[E].concat(x).reduce((function(e,t){return e.concat(S(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,L=a.rects.popper,T=new Map,j=!0,D=A[0],k=0;k=0,F=B?"width":"height",H=me(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=B?M?n:i:M?t:e;C[F]>L[F]&&(I=ie(I));var $=ie(I),W=[];if(u&&W.push(H[N]<=0),p&&W.push(H[I]<=0,H[$]<=0),W.every((function(e){return e}))){D=P,j=!1;break}T.set(P,W)}if(j)for(var z=function(e){var t=A.find((function(t){var n=T.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},q=_?3:1;q>0;q--){if("break"===z(q))break}a.placement!==D&&(a.modifiersData[c]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),l=be(s,i),c=be(a,o,r),f=ye(l),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:f,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":u})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,l=void 0===a?[0,0]:a,c=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=S(t),a=[i,e].indexOf(s)>=0?-1:1,l="function"==typeof r?r(Object.assign({},o,{placement:t})):r,c=l[0],f=l[1];return c=c||0,f=(f||0)*a,[i,n].indexOf(s)>=0?{x:f,y:c}:{x:c,y:f}}(r,o.rects,l),t}),{}),f=c[o.placement],u=f.x,d=f.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=u,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=c}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,l=o.name,c=a.mainAxis,f=void 0===c||c,u=a.altAxis,d=void 0!==u&&u,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(r.placement),O=G(r.placement),x=!O,A=V(E),C="x"===A?"y":"x",L=r.modifiersData.popperOffsets,T=r.rects.reference,j=r.rects.popper,P="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,N="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),M=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,B={x:0,y:0};if(L){if(f){var H,I="y"===A?e:i,$="y"===A?t:n,W="y"===A?"height":"width",z=L[A],q=z+w[I],U=z-w[$],K=b?-j[W]/2:0,Q=O===s?T[W]:j[W],X=O===s?-j[W]:-T[W],J=r.elements.arrow,Z=b&&J?F(J):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[$],ie=Y(0,T[W],Z[W]),oe=x?T[W]/2-K-ie-te-N.mainAxis:Q-ie-te-N.mainAxis,re=x?-T[W]/2+K+ie+ne+N.mainAxis:X+ie+ne+N.mainAxis,se=r.elements.arrow&&R(r.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,le=null!=(H=null==M?void 0:M[A])?H:0,ce=z+re-le,fe=Y(b?k(q,z+oe-le-ae):q,z,b?D(U,ce):U);L[A]=fe,B[A]=fe-z}if(d){var ue,de="x"===A?e:i,pe="x"===A?t:n,he=L[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(ue=null==M?void 0:M[C])?ue:0,we=ye?ve:he-T[ge]-j[ge]-_e+N.altAxis,Ee=ye?he+T[ge]+j[ge]-_e-N.altAxis:be,Oe=b&&ye?function(e,t,n){var i=Y(e,t,n);return i>n?n:i}(we,he,Ee):Y(b?we:ve,he,b?Ee:be);L[C]=Oe,B[C]=Oe-he}r.modifiersData[l]=B}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=L(t),s=L(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,i=P(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=W(t),l=B(e,s,n),c={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||le(a))&&(c=(i=t)!==A(i)&&L(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),L(t)?((f=B(t,!0)).x+=t.clientLeft,f.y+=t.clientTop):a&&(f.x=ae(a))),{x:l.left+c.scrollLeft-f.x,y:l.top+c.scrollTop-f.y,width:l.width,height:l.height}}function Ae(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Le(){for(var e=arguments.length,t=new Array(e),n=0;nPe.has(e)&&Pe.get(e).get(t)||null,remove(e,t){if(!Pe.has(e))return;const n=Pe.get(e);n.delete(t),0===n.size&&Pe.delete(e)}};const Me="transitionend",Be=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),Fe=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),He=e=>Fe(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Be(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},$e=()=>{},We=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,ze=[],qe=()=>"rtl"===document.documentElement.dir,Re=e=>{var t;t=()=>{const t=We();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(ze.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of ze)e()})),ze.push(t)):t()},Ve=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ye=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ve(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Me,o),Ve(e))};t.addEventListener(Me,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Me))}),n)},Ue=/[^.]*(?=\..*)\.|.*/,Ke=/\..*/,Qe=/::\d+$/,Ge={};let Xe=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&`${t}::${Xe++}`||e.uidEvent||Xe++}function tt(e){const t=et(e);return e.uidEvent=t,Ge[t]=Ge[t]||{},Ge[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=at(e);return Ze.has(r)||(r=e),[i,o,r]}function ot(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=it(t,n,i);if(t in Je){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=tt(e),c=l[a]||(l[a]={}),f=nt(c,s,r?n:null);if(f)return void(f.oneOff=f.oneOff&&o);const u=et(s,t.replace(Ue,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return ct(o,{delegateTarget:s}),i.oneOff&<.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&<.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=u,c[u]=d,e.addEventListener(a,d,r)}function rt(e,t,n,i,o){const r=nt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function st(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&rt(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Ke,""),Je[e]||e}const lt={on(e,t,n,i){ot(e,t,n,i,!1)},one(e,t,n,i){ot(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=it(t,n,i),a=s!==t,l=tt(e),c=l[s]||{},f=t.startsWith(".");if(void 0===r){if(f)for(const n of Object.keys(l))st(e,l,n,t.slice(1));for(const[n,i]of Object.entries(c)){const o=n.replace(Qe,"");a&&!t.includes(o)||rt(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;rt(e,l,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=We();let o=null,r=!0,s=!0,a=!1;t!==at(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=ct(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ft(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ut(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const dt={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${ut(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ut(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ft(e.dataset[i])}return t},getDataAttribute:(e,t)=>ft(e.getAttribute(`data-bs-${ut(t)}`))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Fe(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Fe(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=Fe(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class ht extends pt{constructor(e,t){super(),(e=He(e))&&(this._element=e,this._config=this._getConfig(t),Ne.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Ne.remove(this._element,this.constructor.DATA_KEY),lt.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ye(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Ne.get(He(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Be(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Fe(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ot={entry:"(string|element|function|null)",selector:"(string|element)"};class xt extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Ot)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Fe(t)?this._putElementInTemplate(He(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ve(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const At=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Lt="show",Tt=".tooltip-inner",jt=".modal",St="hide.bs.modal",Dt="hover",kt="focus",Pt={AUTO:"auto",TOP:"top",RIGHT:qe()?"left":"right",BOTTOM:"bottom",LEFT:qe()?"right":"left"},Nt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Mt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Bt extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Nt}static get DefaultType(){return Mt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),lt.off(this._element.closest(jt),St,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=lt.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),lt.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.on(e,"mouseover",$e);this._queueCallback((()=>{lt.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(lt.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.off(e,"mouseover",$e);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),lt.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Lt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new xt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Tt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Lt)}_createPopper(e){const t=Ve(this._config.placement,[this,e,this._element]),n=Pt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ve(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ve(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)lt.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");lt.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),lt.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},lt.on(this._element.closest(jt),St,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))At.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:He(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Bt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}Re(Bt);const Ft=document.getElementById("mode-toggle");function Ht(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const It="sidebar-display";class $t{static toggle(){!1===$t.isExpanded?document.body.setAttribute(It,""):document.body.removeAttribute(It),$t.isExpanded=!$t.isExpanded}}Ht($t,"isExpanded",!1);const Wt=document.getElementById("sidebar-trigger"),zt=document.getElementById("search-trigger"),qt=document.getElementById("search-cancel"),Rt=document.querySelectorAll("#main-wrapper>.container>.row"),Vt=document.getElementById("topbar-title"),Yt=document.getElementById("search"),Ut=document.getElementById("search-result-wrapper"),Kt=document.getElementById("search-results"),Qt=document.getElementById("search-input"),Gt=document.getElementById("search-hints"),Xt="d-block",Jt="d-none",Zt="input-focus",en="d-flex";class tn{static on(){Wt.classList.add(Jt),Vt.classList.add(Jt),zt.classList.add(Jt),Yt.classList.add(en),qt.classList.add(Xt)}static off(){qt.classList.remove(Xt),Yt.classList.remove(en),Wt.classList.remove(Jt),Vt.classList.remove(Jt),zt.classList.remove(Jt)}}class nn{static on(){this.resultVisible||(Ut.classList.remove(Jt),Rt.forEach((e=>{e.classList.add(Jt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Kt.innerHTML="",Gt.classList.contains(Jt)&&Gt.classList.remove(Jt),Ut.classList.add(Jt),Rt.forEach((e=>{e.classList.remove(Jt)})),Qt.textContent="",this.resultVisible=!1)}}function on(){return qt.classList.contains(Xt)}Ht(nn,"resultVisible",!1);const rn=".bs.collapse",sn=`show${rn}`,an=`shown${rn}`,ln=`hide${rn}`,cn=`hidden${rn}`,fn=`click${rn}.data-api`,un="show",dn="collapse",pn="collapsing",hn=`:scope .${dn} .${dn}`,mn='[data-bs-toggle="collapse"]',gn={parent:null,toggle:!0},vn={parent:"(null|element)",toggle:"boolean"};class bn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(mn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gn}static get DefaultType(){return vn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>bn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(lt.trigger(this._element,sn).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(dn),this._element.classList.add(pn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn,un),this._element.style[t]="",lt.trigger(this._element,an)}),this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(lt.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.offsetHeight,this._element.classList.add(pn),this._element.classList.remove(dn,un);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn),lt.trigger(this._element,cn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(un)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=He(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(mn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(hn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=bn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}}))}}lt.on(document,fn,mn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))bn.getOrCreateInstance(e,{toggle:!1}).toggle()})),Re(bn);const yn=document.getElementsByClassName("collapse");!function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Bt(e))),Ft&&Ft.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",$t.toggle),document.getElementById("mask").addEventListener("click",$t.toggle),zt.addEventListener("click",(()=>{tn.on(),nn.on(),Qt.focus()})),qt.addEventListener("click",(()=>{tn.off(),nn.off()})),Qt.addEventListener("focus",(()=>{Yt.classList.add(Zt)})),Qt.addEventListener("focusout",(()=>{Yt.classList.remove(Zt)})),Qt.addEventListener("input",(()=>{""===Qt.value?on()?Gt.classList.remove(Jt):nn.off():(nn.on(),on()&&Gt.classList.add(Jt))})),[...yn].forEach((e=>{const t="h_"+e.id.substring(2),n=document.getElementById(t);e.addEventListener("hide.bs.collapse",(()=>{n&&(n.querySelector(".far.fa-folder-open").className="far fa-folder fa-fw",n.querySelector(".fas.fa-angle-down").classList.add("rotate"),n.classList.remove("hide-border-bottom"))})),e.addEventListener("show.bs.collapse",(()=>{n&&(n.querySelector(".far.fa-folder").className="far fa-folder-open fa-fw",n.querySelector(".fas.fa-angle-down").classList.remove("rotate"),n.classList.add("hide-border-bottom"))}))}))}(); diff --git a/assets/js/dist/commons.min.js b/assets/js/dist/commons.min.js new file mode 100644 index 0000000..7009dfa --- /dev/null +++ b/assets/js/dist/commons.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",O=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function T(e){return e instanceof A(e).Element||e instanceof Element}function C(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function L(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];C(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});C(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function D(e){return e.split("-")[0]}var S=Math.max,k=Math.min,P=Math.round;function M(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(M())}function B(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&C(e)&&(o=e.offsetWidth>0&&P(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&P(i.height)/e.offsetHeight||1);var s=(T(e)?A(e):window).visualViewport,a=!N()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function H(e){var t=B(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function F(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&L(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function W(e){return["table","td","th"].indexOf(x(e))>=0}function z(e){return((T(e)?e.ownerDocument:e.document)||window.document).documentElement}function R(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(L(e)?e.host:null)||z(e)}function $(e){return C(e)&&"fixed"!==I(e).position?e.offsetParent:null}function q(e){for(var t=A(e),n=$(e);n&&W(n)&&"static"===I(n).position;)n=$(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(M());if(/Trident/i.test(M())&&C(e)&&"fixed"===I(e).position)return null;var n=R(e);for(L(n)&&(n=n.host);C(n)&&["html","body"].indexOf(x(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function V(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Y(e,t,n){return S(e,k(t,n))}function K(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function U(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=D(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return K("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:U(e,r))}(l.padding,a),g=H(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=q(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,O=y/2-_/2,x=m[v],A=E-g[h]-m[b],T=E/2-g[h]/2+O,C=Y(x,T,A),L=p;a.modifiersData[c]=((s={})[L]=C,s.centerOffset=C-T,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&F(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),x=i,T=e,C=window;if(h){var L=q(s),j="clientHeight",D="clientWidth";if(L===A(s)&&"static"!==I(L=z(s)).position&&"absolute"===d&&(j="scrollHeight",D="scrollWidth"),l===e||(l===i||l===n)&&u===a)T=t,_-=(g&&L===C&&C.visualViewport?C.visualViewport.height:L[j])-c.height,_*=p?1:-1;if(l===i||(l===e||l===t)&&u===a)x=n,b-=(g&&L===C&&C.visualViewport?C.visualViewport.width:L[D])-c.width,b*=p?1:-1}var S,k=Object.assign({position:d},h&&X),M=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=M.x,_=M.y,p?Object.assign({},k,((S={})[T]=O?"0":"",S[x]=E?"0":"",S.transform=(C.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",S)):Object.assign({},k,((r={})[T]=O?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:D(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=A(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&l.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&c.addEventListener("resize",n.update,ee),function(){r&&l.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&c.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return B(z(e)).left+se(e).scrollLeft}function ce(e){var t=I(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function le(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:C(e)&&ce(e)?e:le(R(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=le(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],ce(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(ue(R(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===l?fe(function(e,t){var n=A(e),i=z(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=N();(l||!l&&"fixed"===t)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:c}}(e,n)):T(t)?function(e,t){var n=B(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=z(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=S(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=S(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),c=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=S(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(z(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=ue(R(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&C(e)?q(e):e;return T(n)?t.filter((function(e){return T(e)&&F(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=S(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=S(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?D(u):null,d=u?G(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case e:r={x:p,y:c.y-l.height};break;case t:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?V(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,O=s.padding,x=void 0===O?0:O,A=K("number"!=typeof x?x:U(x,r)),C=_===u?f:u,L=i.rects.popper,j=i.elements[E?C:_],D=pe(T(j)?j:j.contextElement||z(i.elements.popper),g,b,h),S=B(i.elements.reference),k=he({reference:S,element:L,strategy:"absolute",placement:d}),P=fe(Object.assign({},L,k)),M=_===u?P:S,N={top:D.top-M.top+A.top,bottom:M.bottom-D.bottom+A.bottom,left:D.left-M.left+A.left,right:M.right-D.right+A.right},H=i.modifiersData.offset;if(_===u&&H){var F=H[d];Object.keys(N).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";N[i]+=F[r]*o}))}return N}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=G(i),h=f?c?d:d.filter((function(e){return G(e)===f})):r,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[D(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,O=D(E),x=h||(O===E||!_?[ie(E)]:function(e){if(D(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),A=[E].concat(x).reduce((function(e,t){return e.concat(D(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),T=a.rects.reference,C=a.rects.popper,L=new Map,j=!0,S=A[0],k=0;k=0,H=B?"width":"height",F=me(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=B?N?n:i:N?t:e;T[H]>C[H]&&(I=ie(I));var W=ie(I),z=[];if(f&&z.push(F[M]<=0),p&&z.push(F[I]<=0,F[W]<=0),z.every((function(e){return e}))){S=P,j=!1;break}L.set(P,z)}if(j)for(var R=function(e){var t=A.find((function(t){var n=L.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},$=_?3:1;$>0;$--){if("break"===R($))break}a.placement!==S&&(a.modifiersData[l]._skip=!0,a.placement=S,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),c=be(s,i),l=be(a,o,r),u=ye(c),f=ye(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=D(t),a=[i,e].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:t})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),t}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=D(r.placement),O=G(r.placement),x=!O,A=V(E),T="x"===A?"y":"x",C=r.modifiersData.popperOffsets,L=r.rects.reference,j=r.rects.popper,P="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,M="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,B={x:0,y:0};if(C){if(u){var F,I="y"===A?e:i,W="y"===A?t:n,z="y"===A?"height":"width",R=C[A],$=R+w[I],K=R-w[W],U=b?-j[z]/2:0,Q=O===s?L[z]:j[z],X=O===s?-j[z]:-L[z],J=r.elements.arrow,Z=b&&J?H(J):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[W],ie=Y(0,L[z],Z[z]),oe=x?L[z]/2-U-ie-te-M.mainAxis:Q-ie-te-M.mainAxis,re=x?-L[z]/2+U+ie+ne+M.mainAxis:X+ie+ne+M.mainAxis,se=r.elements.arrow&&q(r.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,ce=null!=(F=null==N?void 0:N[A])?F:0,le=R+re-ce,ue=Y(b?k($,R+oe-ce-ae):$,R,b?S(K,le):K);C[A]=ue,B[A]=ue-R}if(d){var fe,de="x"===A?e:i,pe="x"===A?t:n,he=C[T],ge="y"===T?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==N?void 0:N[T])?fe:0,we=ye?ve:he-L[ge]-j[ge]-_e+M.altAxis,Ee=ye?he+L[ge]+j[ge]-_e-M.altAxis:be,Oe=b&&ye?function(e,t,n){var i=Y(e,t,n);return i>n?n:i}(we,he,Ee):Y(b?we:ve,he,b?Ee:be);C[T]=Oe,B[T]=Oe-he}r.modifiersData[c]=B}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=C(t),s=C(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,i=P(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=z(t),c=B(e,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||ce(a))&&(l=(i=t)!==A(i)&&C(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),C(t)?((u=B(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function Ae(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Te={placement:"bottom",modifiers:[],strategy:"absolute"};function Ce(){for(var e=arguments.length,t=new Array(e),n=0;nPe.has(e)&&Pe.get(e).get(t)||null,remove(e,t){if(!Pe.has(e))return;const n=Pe.get(e);n.delete(t),0===n.size&&Pe.delete(e)}};const Ne="transitionend",Be=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),He=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),Fe=e=>He(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Be(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},We=()=>{},ze=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Re=[],$e=()=>"rtl"===document.documentElement.dir,qe=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ve=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void qe(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Ne,o),qe(e))};t.addEventListener(Ne,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Ne))}),n)},Ye=/[^.]*(?=\..*)\.|.*/,Ke=/\..*/,Ue=/::\d+$/,Qe={};let Ge=1;const Xe={mouseenter:"mouseover",mouseleave:"mouseout"},Je=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function Ze(e,t){return t&&`${t}::${Ge++}`||e.uidEvent||Ge++}function et(e){const t=Ze(e);return e.uidEvent=t,Qe[t]=Qe[t]||{},Qe[t]}function tt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function nt(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=st(e);return Je.has(r)||(r=e),[i,o,r]}function it(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=nt(t,n,i);if(t in Xe){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const c=et(e),l=c[a]||(c[a]={}),u=tt(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=Ze(s,t.replace(Ye,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return ct(o,{delegateTarget:s}),i.oneOff&&at.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&&at.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,e.addEventListener(a,d,r)}function ot(e,t,n,i,o){const r=tt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function rt(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&ot(e,t,n,s.callable,s.delegationSelector)}function st(e){return e=e.replace(Ke,""),Xe[e]||e}const at={on(e,t,n,i){it(e,t,n,i,!1)},one(e,t,n,i){it(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=nt(t,n,i),a=s!==t,c=et(e),l=c[s]||{},u=t.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))rt(e,c,n,t.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace(Ue,"");a&&!t.includes(o)||ot(e,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;ot(e,c,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=ze();let o=null,r=!0,s=!0,a=!1;t!==st(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=ct(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function lt(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ut(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const ft={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${ut(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ut(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=lt(e.dataset[i])}return t},getDataAttribute:(e,t)=>lt(e.getAttribute(`data-bs-${ut(t)}`))};class dt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=He(t)?ft.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...He(t)?ft.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=He(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class pt extends dt{constructor(e,t){super(),(e=Fe(e))&&(this._element=e,this._config=this._getConfig(t),Me.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Me.remove(this._element,this.constructor.DATA_KEY),at.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ve(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Me.get(Fe(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const ht={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},mt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),gt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,vt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!mt.has(n)||Boolean(gt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const bt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Be(e))).join(","):null},yt={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!He(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=bt(e);return t&&yt.findOne(t)?t:null},getElementFromSelector(e){const t=bt(e);return t?yt.findOne(t):null},getMultipleElementsFromSelector(e){const t=bt(e);return t?yt.find(t):[]}},_t={allowList:ht,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},wt={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Et={entry:"(string|element|function|null)",selector:"(string|element)"};class Ot extends dt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return _t}static get DefaultType(){return wt}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Et)}_setContent(e,t,n){const i=yt.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?He(t)?this._putElementInTemplate(Fe(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)vt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return qe(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const xt=new Set(["sanitize","allowList","sanitizeFn"]),At="fade",Tt="show",Ct=".tooltip-inner",Lt=".modal",jt="hide.bs.modal",Dt="hover",St="focus",kt={AUTO:"auto",TOP:"top",RIGHT:$e()?"left":"right",BOTTOM:"bottom",LEFT:$e()?"right":"left"},Pt={allowList:ht,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Mt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Nt extends pt{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pt}static get DefaultType(){return Mt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),at.off(this._element.closest(Lt),jt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=at.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),at.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))at.on(e,"mouseover",We);this._queueCallback((()=>{at.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(at.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))at.off(e,"mouseover",We);this._activeTrigger.click=!1,this._activeTrigger[St]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),at.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(At,Tt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(At),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Ot({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Ct]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(At)}_isShown(){return this.tip&&this.tip.classList.contains(Tt)}_createPopper(e){const t=qe(this._config.placement,[this,e,this._element]),n=kt[t.toUpperCase()];return Se(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return qe(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...qe(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)at.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");at.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?St:Dt]=!0,t._enter()})),at.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?St:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},at.on(this._element.closest(Lt),jt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=ft.getDataAttributes(this._element);for(const e of Object.keys(t))xt.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:Fe(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Nt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}var Bt,Ht;Bt=Nt,Ht=()=>{const e=ze();if(e){const t=Bt.NAME,n=e.fn[t];e.fn[t]=Bt.jQueryInterface,e.fn[t].Constructor=Bt,e.fn[t].noConflict=()=>(e.fn[t]=n,Bt.jQueryInterface)}},"loading"===document.readyState?(Re.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of Re)e()})),Re.push(Ht)):Ht();const Ft=document.getElementById("mode-toggle");function It(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Wt="sidebar-display";class zt{static toggle(){!1===zt.isExpanded?document.body.setAttribute(Wt,""):document.body.removeAttribute(Wt),zt.isExpanded=!zt.isExpanded}}It(zt,"isExpanded",!1);const Rt=document.getElementById("sidebar-trigger"),$t=document.getElementById("search-trigger"),qt=document.getElementById("search-cancel"),Vt=document.querySelectorAll("#main-wrapper>.container>.row"),Yt=document.getElementById("topbar-title"),Kt=document.getElementById("search"),Ut=document.getElementById("search-result-wrapper"),Qt=document.getElementById("search-results"),Gt=document.getElementById("search-input"),Xt=document.getElementById("search-hints"),Jt="d-block",Zt="d-none",en="input-focus",tn="d-flex";class nn{static on(){Rt.classList.add(Zt),Yt.classList.add(Zt),$t.classList.add(Zt),Kt.classList.add(tn),qt.classList.add(Jt)}static off(){qt.classList.remove(Jt),Kt.classList.remove(tn),Rt.classList.remove(Zt),Yt.classList.remove(Zt),$t.classList.remove(Zt)}}class on{static on(){this.resultVisible||(Ut.classList.remove(Zt),Vt.forEach((e=>{e.classList.add(Zt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Qt.innerHTML="",Xt.classList.contains(Zt)&&Xt.classList.remove(Zt),Ut.classList.add(Zt),Vt.forEach((e=>{e.classList.remove(Zt)})),Gt.textContent="",this.resultVisible=!1)}}function rn(){return qt.classList.contains(Jt)}It(on,"resultVisible",!1),Ft&&Ft.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",zt.toggle),document.getElementById("mask").addEventListener("click",zt.toggle),$t.addEventListener("click",(()=>{nn.on(),on.on(),Gt.focus()})),qt.addEventListener("click",(()=>{nn.off(),on.off()})),Gt.addEventListener("focus",(()=>{Kt.classList.add(en)})),Gt.addEventListener("focusout",(()=>{Kt.classList.remove(en)})),Gt.addEventListener("input",(()=>{""===Gt.value?rn()?Xt.classList.remove(Zt):on.off():(on.on(),rn()&&Xt.classList.add(Zt))})),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Nt(e)))}(); diff --git a/assets/js/dist/home.min.js b/assets/js/dist/home.min.js new file mode 100644 index 0000000..8edc42d --- /dev/null +++ b/assets/js/dist/home.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var e="top",t="bottom",n="right",i="left",r="auto",o=[e,t,n,i],s="start",a="end",l="clippingParents",c="viewport",u="popper",f="reference",d=o.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(o,[r]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",x=[h,m,g,v,b,y,_,w,E];function O(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof A(e).Element||e instanceof Element}function T(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function L(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},r=t.elements[e];T(r)&&O(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});T(i)&&O(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function S(e){return e.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function P(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(P())}function F(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),r=1,o=1;t&&T(e)&&(r=e.offsetWidth>0&&M(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&M(i.height)/e.offsetHeight||1);var s=(C(e)?A(e):window).visualViewport,a=!N()&&n,l=(i.left+(a&&s?s.offsetLeft:0))/r,c=(i.top+(a&&s?s.offsetTop:0))/o,u=i.width/r,f=i.height/o;return{width:u,height:f,top:c,right:l+u,bottom:c+f,left:l,x:l,y:c}}function B(e){var t=F(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function H(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&L(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function $(e){return["table","td","th"].indexOf(O(e))>=0}function R(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function z(e){return"html"===O(e)?e:e.assignedSlot||e.parentNode||(L(e)?e.host:null)||R(e)}function W(e){return T(e)&&"fixed"!==I(e).position?e.offsetParent:null}function q(e){for(var t=A(e),n=W(e);n&&$(n)&&"static"===I(n).position;)n=W(n);return n&&("html"===O(n)||"body"===O(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(P());if(/Trident/i.test(P())&&T(e)&&"fixed"===I(e).position)return null;var n=z(e);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(O(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function V(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e,t,n){return D(e,k(t,n))}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function K(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(r){var s,a=r.state,l=r.name,c=r.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=S(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:K(e,o))}(c.padding,a),g=B(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=q(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,x=y/2-_/2,O=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+x,T=U(O,C,A),L=p;a.modifiersData[l]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&H(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(r){var o,s=r.popper,l=r.popperRect,c=r.placement,u=r.variation,f=r.offsets,d=r.position,p=r.gpuAcceleration,h=r.adaptive,m=r.roundOffsets,g=r.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),x=f.hasOwnProperty("y"),O=i,C=e,T=window;if(h){var L=q(s),j="clientHeight",S="clientWidth";if(L===A(s)&&"static"!==I(L=R(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),c===e||(c===i||c===n)&&u===a)C=t,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[j])-l.height,_*=p?1:-1;if(c===i||(c===e||c===t)&&u===a)O=n,b-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[S])-l.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),P=!0===m?function(e,t){var n=e.x,i=e.y,r=t.devicePixelRatio||1;return{x:M(n*r)/r||0,y:M(i*r)/r||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=P.x,_=P.y,p?Object.assign({},k,((D={})[C]=x?"0":"",D[O]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((o={})[C]=x?_+"px":"",o[O]=E?b+"px":"",o.transform="",o))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,r=void 0===i||i,o=n.adaptive,s=void 0===o||o,a=n.roundOffsets,l=void 0===a||a,c={placement:S(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,r=i.scroll,o=void 0===r||r,s=i.resize,a=void 0===s||s,l=A(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&l.addEventListener("resize",n.update,ee),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&l.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var re={start:"end",end:"start"};function oe(e){return e.replace(/start|end/g,(function(e){return re[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return F(R(e)).left+se(e).scrollLeft}function le(e){var t=I(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function ce(e){return["html","body","#document"].indexOf(O(e))>=0?e.ownerDocument.body:T(e)&&le(e)?e:ce(z(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=ce(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),o=A(i),s=r?[o].concat(o.visualViewport||[],le(i)?i:[]):i,a=t.concat(s);return r?a:a.concat(ue(z(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===c?fe(function(e,t){var n=A(e),i=R(e),r=n.visualViewport,o=i.clientWidth,s=i.clientHeight,a=0,l=0;if(r){o=r.width,s=r.height;var c=N();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop)}return{width:o,height:s,x:a+ae(e),y:l}}(e,n)):C(t)?function(e,t){var n=F(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=R(e),i=se(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=D(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-i.scrollLeft+ae(e),l=-i.scrollTop;return"rtl"===I(r||n).direction&&(a+=D(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}(R(e)))}function pe(e,t,n,i){var r="clippingParents"===t?function(e){var t=ue(z(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&T(e)?q(e):e;return C(n)?t.filter((function(e){return C(e)&&H(e,n)&&"body"!==O(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),s=o[0],a=o.reduce((function(t,n){var r=de(e,n,i);return t.top=D(r.top,t.top),t.right=k(r.right,t.right),t.bottom=k(r.bottom,t.bottom),t.left=D(r.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(r){var o,l=r.reference,c=r.element,u=r.placement,f=u?S(u):null,d=u?G(u):null,p=l.x+l.width/2-c.width/2,h=l.y+l.height/2-c.height/2;switch(f){case e:o={x:p,y:l.y-c.height};break;case t:o={x:p,y:l.y+l.height};break;case n:o={x:l.x+l.width,y:h};break;case i:o={x:l.x-c.width,y:h};break;default:o={x:l.x,y:l.y}}var m=f?V(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:o[m]=o[m]-(l[g]/2-c[g]/2);break;case a:o[m]=o[m]+(l[g]/2-c[g]/2)}}return o}function me(i,r){void 0===r&&(r={});var s=r,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?l:m,v=s.rootBoundary,b=void 0===v?c:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,x=s.padding,O=void 0===x?0:x,A=Y("number"!=typeof O?O:K(O,o)),T=_===u?f:u,L=i.rects.popper,j=i.elements[E?T:_],S=pe(C(j)?j:j.contextElement||R(i.elements.popper),g,b,h),D=F(i.elements.reference),k=he({reference:D,element:L,strategy:"absolute",placement:d}),M=fe(Object.assign({},L,k)),P=_===u?M:D,N={top:S.top-P.top+A.top,bottom:P.bottom-S.bottom+A.bottom,left:S.left-P.left+A.left,right:P.right-S.right+A.right},B=i.modifiersData.offset;if(_===u&&B){var H=B[d];Object.keys(N).forEach((function(i){var r=[n,t].indexOf(i)>=0?1:-1,o=[e,t].indexOf(i)>=0?"y":"x";N[i]+=H[o]*r}))}return N}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=n.boundary,s=n.rootBoundary,a=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?p:c,f=G(i),h=f?l?d:d.filter((function(e){return G(e)===f})):o,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:r,rootBoundary:s,padding:a})[S(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(o){var a=o.state,l=o.options,c=o.name;if(!a.modifiersData[c]._skip){for(var u=l.mainAxis,f=void 0===u||u,d=l.altAxis,p=void 0===d||d,h=l.fallbackPlacements,m=l.padding,g=l.boundary,v=l.rootBoundary,b=l.altBoundary,y=l.flipVariations,_=void 0===y||y,w=l.allowedAutoPlacements,E=a.options.placement,x=S(E),O=h||(x===E||!_?[ie(E)]:function(e){if(S(e)===r)return[];var t=ie(e);return[oe(e),t,oe(t)]}(E)),A=[E].concat(O).reduce((function(e,t){return e.concat(S(t)===r?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,j=!0,D=A[0],k=0;k=0,B=F?"width":"height",H=me(a,{placement:M,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=F?N?n:i:N?t:e;C[B]>T[B]&&(I=ie(I));var $=ie(I),R=[];if(f&&R.push(H[P]<=0),p&&R.push(H[I]<=0,H[$]<=0),R.every((function(e){return e}))){D=M,j=!1;break}L.set(M,R)}if(j)for(var z=function(e){var t=A.find((function(t){var n=L.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},W=_?3:1;W>0;W--){if("break"===z(W))break}a.placement!==D&&(a.modifiersData[c]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(r){return[e,n,t,i].some((function(e){return r[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),l=be(s,i),c=be(a,r,o),u=ye(l),f=ye(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var r=t.state,o=t.options,s=t.name,a=o.offset,l=void 0===a?[0,0]:a,c=p.reduce((function(t,o){return t[o]=function(t,r,o){var s=S(t),a=[i,e].indexOf(s)>=0?-1:1,l="function"==typeof o?o(Object.assign({},r,{placement:t})):o,c=l[0],u=l[1];return c=c||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:c}:{x:c,y:u}}(o,r.rects,l),t}),{}),u=c[r.placement],f=u.x,d=u.y;null!=r.modifiersData.popperOffsets&&(r.modifiersData.popperOffsets.x+=f,r.modifiersData.popperOffsets.y+=d),r.modifiersData[s]=c}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var xe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(r){var o=r.state,a=r.options,l=r.name,c=a.mainAxis,u=void 0===c||c,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(o,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(o.placement),x=G(o.placement),O=!x,A=V(E),C="x"===A?"y":"x",T=o.modifiersData.popperOffsets,L=o.rects.reference,j=o.rects.popper,M="function"==typeof _?_(Object.assign({},o.rects,{placement:o.placement})):_,P="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),N=o.modifiersData.offset?o.modifiersData.offset[o.placement]:null,F={x:0,y:0};if(T){if(u){var H,I="y"===A?e:i,$="y"===A?t:n,R="y"===A?"height":"width",z=T[A],W=z+w[I],Y=z-w[$],K=b?-j[R]/2:0,Q=x===s?L[R]:j[R],X=x===s?-j[R]:-L[R],J=o.elements.arrow,Z=b&&J?B(J):{width:0,height:0},ee=o.modifiersData["arrow#persistent"]?o.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[$],ie=U(0,L[R],Z[R]),re=O?L[R]/2-K-ie-te-P.mainAxis:Q-ie-te-P.mainAxis,oe=O?-L[R]/2+K+ie+ne+P.mainAxis:X+ie+ne+P.mainAxis,se=o.elements.arrow&&q(o.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,le=null!=(H=null==N?void 0:N[A])?H:0,ce=z+oe-le,ue=U(b?k(W,z+re-le-ae):W,z,b?D(Y,ce):Y);T[A]=ue,F[A]=ue-z}if(d){var fe,de="x"===A?e:i,pe="x"===A?t:n,he=T[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==N?void 0:N[C])?fe:0,we=ye?ve:he-L[ge]-j[ge]-_e+P.altAxis,Ee=ye?he+L[ge]+j[ge]-_e-P.altAxis:be,xe=b&&ye?function(e,t,n){var i=U(e,t,n);return i>n?n:i}(we,he,Ee):U(b?we:ve,he,b?Ee:be);T[C]=xe,F[C]=xe-he}o.modifiersData[l]=F}},requiresIfExists:["offset"]};function Oe(e,t,n){void 0===n&&(n=!1);var i,r,o=T(t),s=T(t)&&function(e){var t=e.getBoundingClientRect(),n=M(t.width)/e.offsetWidth||1,i=M(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=R(t),l=F(e,s,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(o||!o&&!n)&&(("body"!==O(t)||le(a))&&(c=(i=t)!==A(i)&&T(i)?{scrollLeft:(r=i).scrollLeft,scrollTop:r.scrollTop}:se(i)),T(t)?((u=F(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function Ae(e){var t=new Map,n=new Set,i=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&r(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Te(){for(var e=arguments.length,t=new Array(e),n=0;nMe.has(e)&&Me.get(e).get(t)||null,remove(e,t){if(!Me.has(e))return;const n=Me.get(e);n.delete(t),0===n.size&&Me.delete(e)}};const Ne="transitionend",Fe=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),Be=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),He=e=>Be(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Fe(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},$e=()=>{},Re=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,ze=[],We=()=>"rtl"===document.documentElement.dir,qe=e=>{var t;t=()=>{const t=Re();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(ze.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of ze)e()})),ze.push(t)):t()},Ve=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ue=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ve(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),r=Number.parseFloat(n);return i||r?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const r=n=>{let{target:o}=n;o===t&&(i=!0,t.removeEventListener(Ne,r),Ve(e))};t.addEventListener(Ne,r),setTimeout((()=>{i||t.dispatchEvent(new Event(Ne))}),n)},Ye=/[^.]*(?=\..*)\.|.*/,Ke=/\..*/,Qe=/::\d+$/,Ge={};let Xe=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&`${t}::${Xe++}`||e.uidEvent||Xe++}function tt(e){const t=et(e);return e.uidEvent=t,Ge[t]=Ge[t]||{},Ge[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,r=i?n:t||n;let o=at(e);return Ze.has(o)||(o=e),[i,r,o]}function rt(e,t,n,i,r){if("string"!=typeof t||!e)return;let[o,s,a]=it(t,n,i);if(t in Je){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=tt(e),c=l[a]||(l[a]={}),u=nt(c,s,o?n:null);if(u)return void(u.oneOff=u.oneOff&&r);const f=et(s,t.replace(Ye,"")),d=o?function(e,t,n){return function i(r){const o=e.querySelectorAll(t);for(let{target:s}=r;s&&s!==this;s=s.parentNode)for(const a of o)if(a===s)return ct(r,{delegateTarget:s}),i.oneOff&<.off(e,r.type,t,n),n.apply(s,[r])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&<.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=o?n:null,d.callable=s,d.oneOff=r,d.uidEvent=f,c[f]=d,e.addEventListener(a,d,o)}function ot(e,t,n,i,r){const o=nt(t[n],i,r);o&&(e.removeEventListener(n,o,Boolean(r)),delete t[n][o.uidEvent])}function st(e,t,n,i){const r=t[n]||{};for(const[o,s]of Object.entries(r))o.includes(i)&&ot(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Ke,""),Je[e]||e}const lt={on(e,t,n,i){rt(e,t,n,i,!1)},one(e,t,n,i){rt(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[r,o,s]=it(t,n,i),a=s!==t,l=tt(e),c=l[s]||{},u=t.startsWith(".");if(void 0===o){if(u)for(const n of Object.keys(l))st(e,l,n,t.slice(1));for(const[n,i]of Object.entries(c)){const r=n.replace(Qe,"");a&&!t.includes(r)||ot(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;ot(e,l,s,o,r?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=Re();let r=null,o=!0,s=!0,a=!1;t!==at(t)&&i&&(r=i.Event(t,n),i(e).trigger(r),o=!r.isPropagationStopped(),s=!r.isImmediatePropagationStopped(),a=r.isDefaultPrevented());const l=ct(new Event(t,{bubbles:o,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&r&&r.preventDefault(),l}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ut(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ft(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const dt={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${ft(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ft(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ut(e.dataset[i])}return t},getDataAttribute:(e,t)=>ut(e.getAttribute(`data-bs-${ft(t)}`))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Be(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Be(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,r]of Object.entries(t)){const t=e[i],o=Be(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(r).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${r}".`)}var n}}class ht extends pt{constructor(e,t){super(),(e=He(e))&&(this._element=e,this._config=this._getConfig(t),Pe.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Pe.remove(this._element,this.constructor.DATA_KEY),lt.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ue(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Pe.get(He(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Fe(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Be(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},xt={entry:"(string|element|function|null)",selector:"(string|element)"};class Ot extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},xt)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Be(t)?this._putElementInTemplate(He(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),r=[].concat(...i.body.querySelectorAll("*"));for(const e of r){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),r=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,r)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ve(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const At=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Tt="show",Lt=".tooltip-inner",jt=".modal",St="hide.bs.modal",Dt="hover",kt="focus",Mt={AUTO:"auto",TOP:"top",RIGHT:We()?"left":"right",BOTTOM:"bottom",LEFT:We()?"right":"left"},Pt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Nt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Ft extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pt}static get DefaultType(){return Nt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),lt.off(this._element.closest(jt),St,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=lt.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),lt.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.on(e,"mouseover",$e);this._queueCallback((()=>{lt.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(lt.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.off(e,"mouseover",$e);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),lt.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Tt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Ot({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Lt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Tt)}_createPopper(e){const t=Ve(this._config.placement,[this,e,this._element]),n=Mt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ve(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ve(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)lt.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");lt.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),lt.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},lt.on(this._element.closest(jt),St,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))At.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:He(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Ft.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}qe(Ft);const Bt=document.getElementById("mode-toggle");function Ht(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const It="sidebar-display";class $t{static toggle(){!1===$t.isExpanded?document.body.setAttribute(It,""):document.body.removeAttribute(It),$t.isExpanded=!$t.isExpanded}}Ht($t,"isExpanded",!1);const Rt=document.getElementById("sidebar-trigger"),zt=document.getElementById("search-trigger"),Wt=document.getElementById("search-cancel"),qt=document.querySelectorAll("#main-wrapper>.container>.row"),Vt=document.getElementById("topbar-title"),Ut=document.getElementById("search"),Yt=document.getElementById("search-result-wrapper"),Kt=document.getElementById("search-results"),Qt=document.getElementById("search-input"),Gt=document.getElementById("search-hints"),Xt="d-block",Jt="d-none",Zt="input-focus",en="d-flex";class tn{static on(){Rt.classList.add(Jt),Vt.classList.add(Jt),zt.classList.add(Jt),Ut.classList.add(en),Wt.classList.add(Xt)}static off(){Wt.classList.remove(Xt),Ut.classList.remove(en),Rt.classList.remove(Jt),Vt.classList.remove(Jt),zt.classList.remove(Jt)}}class nn{static on(){this.resultVisible||(Yt.classList.remove(Jt),qt.forEach((e=>{e.classList.add(Jt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Kt.innerHTML="",Gt.classList.contains(Jt)&&Gt.classList.remove(Jt),Yt.classList.add(Jt),qt.forEach((e=>{e.classList.remove(Jt)})),Qt.textContent="",this.resultVisible=!1)}}function rn(){return Wt.classList.contains(Xt)}Ht(nn,"resultVisible",!1);const on=".bs.collapse",sn=`show${on}`,an=`shown${on}`,ln=`hide${on}`,cn=`hidden${on}`,un=`click${on}.data-api`,fn="show",dn="collapse",pn="collapsing",hn=`:scope .${dn} .${dn}`,mn='[data-bs-toggle="collapse"]',gn={parent:null,toggle:!0},vn={parent:"(null|element)",toggle:"boolean"};class bn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(mn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gn}static get DefaultType(){return vn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>bn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(lt.trigger(this._element,sn).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(dn),this._element.classList.add(pn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn,fn),this._element.style[t]="",lt.trigger(this._element,an)}),this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(lt.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.offsetHeight,this._element.classList.add(pn),this._element.classList.remove(dn,fn);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn),lt.trigger(this._element,cn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(fn)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=He(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(mn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(hn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=bn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}}))}}lt.on(document,un,mn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))bn.getOrCreateInstance(e,{toggle:!1}).toggle()})),qe(bn),document.getElementsByClassName("collapse");const yn="data-src",_n="data-lqip",wn={SHIMMER:"shimmer",BLUR:"blur"};function En(e){this.parentElement.classList.remove(e)}function xn(){this.complete&&(this.hasAttribute(_n)?En.call(this,wn.BLUR):En.call(this,wn.SHIMMER))}function On(){const e=this.getAttribute(yn);this.setAttribute("src",encodeURI(e)),this.removeAttribute(yn)}class An{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(e){return Number(e.getAttribute(this.attrTimestamp))}static getDateFormat(e){return e.getAttribute(this.attrDateFormat)}}!function(){const e=document.querySelectorAll("article img");if(0===e.length)return;e.forEach((e=>{e.addEventListener("load",xn)})),document.querySelectorAll('article img[loading="lazy"]').forEach((e=>{e.complete&&En.call(e,wn.SHIMMER)}));const t=document.querySelectorAll(`article img[${_n}="true"]`);t.length&&t.forEach((e=>{On.call(e)}))}(),dayjs.locale(An.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll(`[${An.attrTimestamp}]`).forEach((e=>{const t=dayjs.unix(An.getTimestamp(e)),n=t.format(An.getDateFormat(e));if(e.textContent=n,e.removeAttribute(An.attrTimestamp),e.removeAttribute(An.attrDateFormat),e.hasAttribute("data-bs-toggle")&&"tooltip"===e.getAttribute("data-bs-toggle")){const n=t.format("llll");e.setAttribute("data-bs-title",n)}})),Bt&&Bt.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",$t.toggle),document.getElementById("mask").addEventListener("click",$t.toggle),zt.addEventListener("click",(()=>{tn.on(),nn.on(),Qt.focus()})),Wt.addEventListener("click",(()=>{tn.off(),nn.off()})),Qt.addEventListener("focus",(()=>{Ut.classList.add(Zt)})),Qt.addEventListener("focusout",(()=>{Ut.classList.remove(Zt)})),Qt.addEventListener("input",(()=>{""===Qt.value?rn()?Gt.classList.remove(Jt):nn.off():(nn.on(),rn()&&Gt.classList.add(Jt))})),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Ft(e)))}(); diff --git a/assets/js/dist/misc.min.js b/assets/js/dist/misc.min.js new file mode 100644 index 0000000..1eb69e1 --- /dev/null +++ b/assets/js/dist/misc.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var e="top",t="bottom",n="right",i="left",r="auto",o=[e,t,n,i],s="start",a="end",l="clippingParents",c="viewport",u="popper",f="reference",d=o.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(o,[r]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",x=[h,m,g,v,b,y,_,w,E];function O(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof A(e).Element||e instanceof Element}function T(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function L(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},r=t.elements[e];T(r)&&O(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});T(i)&&O(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function S(e){return e.split("-")[0]}var D=Math.max,k=Math.min,P=Math.round;function N(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(N())}function F(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),r=1,o=1;t&&T(e)&&(r=e.offsetWidth>0&&P(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&P(i.height)/e.offsetHeight||1);var s=(C(e)?A(e):window).visualViewport,a=!M()&&n,l=(i.left+(a&&s?s.offsetLeft:0))/r,c=(i.top+(a&&s?s.offsetTop:0))/o,u=i.width/r,f=i.height/o;return{width:u,height:f,top:c,right:l+u,bottom:c+f,left:l,x:l,y:c}}function B(e){var t=F(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function H(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&L(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function $(e){return["table","td","th"].indexOf(O(e))>=0}function z(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function W(e){return"html"===O(e)?e:e.assignedSlot||e.parentNode||(L(e)?e.host:null)||z(e)}function R(e){return T(e)&&"fixed"!==I(e).position?e.offsetParent:null}function q(e){for(var t=A(e),n=R(e);n&&$(n)&&"static"===I(n).position;)n=R(n);return n&&("html"===O(n)||"body"===O(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(N());if(/Trident/i.test(N())&&T(e)&&"fixed"===I(e).position)return null;var n=W(e);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(O(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function V(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Y(e,t,n){return D(e,k(t,n))}function U(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function K(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(r){var s,a=r.state,l=r.name,c=r.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=S(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return U("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:K(e,o))}(c.padding,a),g=B(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=q(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,x=y/2-_/2,O=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+x,T=Y(O,C,A),L=p;a.modifiersData[l]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&H(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(r){var o,s=r.popper,l=r.popperRect,c=r.placement,u=r.variation,f=r.offsets,d=r.position,p=r.gpuAcceleration,h=r.adaptive,m=r.roundOffsets,g=r.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),x=f.hasOwnProperty("y"),O=i,C=e,T=window;if(h){var L=q(s),j="clientHeight",S="clientWidth";if(L===A(s)&&"static"!==I(L=z(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),c===e||(c===i||c===n)&&u===a)C=t,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[j])-l.height,_*=p?1:-1;if(c===i||(c===e||c===t)&&u===a)O=n,b-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[S])-l.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),N=!0===m?function(e,t){var n=e.x,i=e.y,r=t.devicePixelRatio||1;return{x:P(n*r)/r||0,y:P(i*r)/r||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=N.x,_=N.y,p?Object.assign({},k,((D={})[C]=x?"0":"",D[O]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((o={})[C]=x?_+"px":"",o[O]=E?b+"px":"",o.transform="",o))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,r=void 0===i||i,o=n.adaptive,s=void 0===o||o,a=n.roundOffsets,l=void 0===a||a,c={placement:S(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,r=i.scroll,o=void 0===r||r,s=i.resize,a=void 0===s||s,l=A(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&l.addEventListener("resize",n.update,ee),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&l.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var re={start:"end",end:"start"};function oe(e){return e.replace(/start|end/g,(function(e){return re[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return F(z(e)).left+se(e).scrollLeft}function le(e){var t=I(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function ce(e){return["html","body","#document"].indexOf(O(e))>=0?e.ownerDocument.body:T(e)&&le(e)?e:ce(W(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=ce(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),o=A(i),s=r?[o].concat(o.visualViewport||[],le(i)?i:[]):i,a=t.concat(s);return r?a:a.concat(ue(W(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===c?fe(function(e,t){var n=A(e),i=z(e),r=n.visualViewport,o=i.clientWidth,s=i.clientHeight,a=0,l=0;if(r){o=r.width,s=r.height;var c=M();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop)}return{width:o,height:s,x:a+ae(e),y:l}}(e,n)):C(t)?function(e,t){var n=F(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=z(e),i=se(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=D(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-i.scrollLeft+ae(e),l=-i.scrollTop;return"rtl"===I(r||n).direction&&(a+=D(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}(z(e)))}function pe(e,t,n,i){var r="clippingParents"===t?function(e){var t=ue(W(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&T(e)?q(e):e;return C(n)?t.filter((function(e){return C(e)&&H(e,n)&&"body"!==O(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),s=o[0],a=o.reduce((function(t,n){var r=de(e,n,i);return t.top=D(r.top,t.top),t.right=k(r.right,t.right),t.bottom=k(r.bottom,t.bottom),t.left=D(r.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(r){var o,l=r.reference,c=r.element,u=r.placement,f=u?S(u):null,d=u?G(u):null,p=l.x+l.width/2-c.width/2,h=l.y+l.height/2-c.height/2;switch(f){case e:o={x:p,y:l.y-c.height};break;case t:o={x:p,y:l.y+l.height};break;case n:o={x:l.x+l.width,y:h};break;case i:o={x:l.x-c.width,y:h};break;default:o={x:l.x,y:l.y}}var m=f?V(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:o[m]=o[m]-(l[g]/2-c[g]/2);break;case a:o[m]=o[m]+(l[g]/2-c[g]/2)}}return o}function me(i,r){void 0===r&&(r={});var s=r,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?l:m,v=s.rootBoundary,b=void 0===v?c:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,x=s.padding,O=void 0===x?0:x,A=U("number"!=typeof O?O:K(O,o)),T=_===u?f:u,L=i.rects.popper,j=i.elements[E?T:_],S=pe(C(j)?j:j.contextElement||z(i.elements.popper),g,b,h),D=F(i.elements.reference),k=he({reference:D,element:L,strategy:"absolute",placement:d}),P=fe(Object.assign({},L,k)),N=_===u?P:D,M={top:S.top-N.top+A.top,bottom:N.bottom-S.bottom+A.bottom,left:S.left-N.left+A.left,right:N.right-S.right+A.right},B=i.modifiersData.offset;if(_===u&&B){var H=B[d];Object.keys(M).forEach((function(i){var r=[n,t].indexOf(i)>=0?1:-1,o=[e,t].indexOf(i)>=0?"y":"x";M[i]+=H[o]*r}))}return M}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=n.boundary,s=n.rootBoundary,a=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?p:c,f=G(i),h=f?l?d:d.filter((function(e){return G(e)===f})):o,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:r,rootBoundary:s,padding:a})[S(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(o){var a=o.state,l=o.options,c=o.name;if(!a.modifiersData[c]._skip){for(var u=l.mainAxis,f=void 0===u||u,d=l.altAxis,p=void 0===d||d,h=l.fallbackPlacements,m=l.padding,g=l.boundary,v=l.rootBoundary,b=l.altBoundary,y=l.flipVariations,_=void 0===y||y,w=l.allowedAutoPlacements,E=a.options.placement,x=S(E),O=h||(x===E||!_?[ie(E)]:function(e){if(S(e)===r)return[];var t=ie(e);return[oe(e),t,oe(t)]}(E)),A=[E].concat(O).reduce((function(e,t){return e.concat(S(t)===r?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,j=!0,D=A[0],k=0;k=0,B=F?"width":"height",H=me(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=F?M?n:i:M?t:e;C[B]>T[B]&&(I=ie(I));var $=ie(I),z=[];if(f&&z.push(H[N]<=0),p&&z.push(H[I]<=0,H[$]<=0),z.every((function(e){return e}))){D=P,j=!1;break}L.set(P,z)}if(j)for(var W=function(e){var t=A.find((function(t){var n=L.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},R=_?3:1;R>0;R--){if("break"===W(R))break}a.placement!==D&&(a.modifiersData[c]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(r){return[e,n,t,i].some((function(e){return r[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),l=be(s,i),c=be(a,r,o),u=ye(l),f=ye(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var r=t.state,o=t.options,s=t.name,a=o.offset,l=void 0===a?[0,0]:a,c=p.reduce((function(t,o){return t[o]=function(t,r,o){var s=S(t),a=[i,e].indexOf(s)>=0?-1:1,l="function"==typeof o?o(Object.assign({},r,{placement:t})):o,c=l[0],u=l[1];return c=c||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:c}:{x:c,y:u}}(o,r.rects,l),t}),{}),u=c[r.placement],f=u.x,d=u.y;null!=r.modifiersData.popperOffsets&&(r.modifiersData.popperOffsets.x+=f,r.modifiersData.popperOffsets.y+=d),r.modifiersData[s]=c}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var xe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(r){var o=r.state,a=r.options,l=r.name,c=a.mainAxis,u=void 0===c||c,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(o,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(o.placement),x=G(o.placement),O=!x,A=V(E),C="x"===A?"y":"x",T=o.modifiersData.popperOffsets,L=o.rects.reference,j=o.rects.popper,P="function"==typeof _?_(Object.assign({},o.rects,{placement:o.placement})):_,N="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),M=o.modifiersData.offset?o.modifiersData.offset[o.placement]:null,F={x:0,y:0};if(T){if(u){var H,I="y"===A?e:i,$="y"===A?t:n,z="y"===A?"height":"width",W=T[A],R=W+w[I],U=W-w[$],K=b?-j[z]/2:0,Q=x===s?L[z]:j[z],X=x===s?-j[z]:-L[z],J=o.elements.arrow,Z=b&&J?B(J):{width:0,height:0},ee=o.modifiersData["arrow#persistent"]?o.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[$],ie=Y(0,L[z],Z[z]),re=O?L[z]/2-K-ie-te-N.mainAxis:Q-ie-te-N.mainAxis,oe=O?-L[z]/2+K+ie+ne+N.mainAxis:X+ie+ne+N.mainAxis,se=o.elements.arrow&&q(o.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,le=null!=(H=null==M?void 0:M[A])?H:0,ce=W+oe-le,ue=Y(b?k(R,W+re-le-ae):R,W,b?D(U,ce):U);T[A]=ue,F[A]=ue-W}if(d){var fe,de="x"===A?e:i,pe="x"===A?t:n,he=T[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==M?void 0:M[C])?fe:0,we=ye?ve:he-L[ge]-j[ge]-_e+N.altAxis,Ee=ye?he+L[ge]+j[ge]-_e-N.altAxis:be,xe=b&&ye?function(e,t,n){var i=Y(e,t,n);return i>n?n:i}(we,he,Ee):Y(b?we:ve,he,b?Ee:be);T[C]=xe,F[C]=xe-he}o.modifiersData[l]=F}},requiresIfExists:["offset"]};function Oe(e,t,n){void 0===n&&(n=!1);var i,r,o=T(t),s=T(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,i=P(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=z(t),l=F(e,s,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(o||!o&&!n)&&(("body"!==O(t)||le(a))&&(c=(i=t)!==A(i)&&T(i)?{scrollLeft:(r=i).scrollLeft,scrollTop:r.scrollTop}:se(i)),T(t)?((u=F(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function Ae(e){var t=new Map,n=new Set,i=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&r(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Te(){for(var e=arguments.length,t=new Array(e),n=0;nPe.has(e)&&Pe.get(e).get(t)||null,remove(e,t){if(!Pe.has(e))return;const n=Pe.get(e);n.delete(t),0===n.size&&Pe.delete(e)}};const Me="transitionend",Fe=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),Be=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),He=e=>Be(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Fe(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},$e=()=>{},ze=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,We=[],Re=()=>"rtl"===document.documentElement.dir,qe=e=>{var t;t=()=>{const t=ze();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(We.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of We)e()})),We.push(t)):t()},Ve=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ye=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ve(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),r=Number.parseFloat(n);return i||r?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const r=n=>{let{target:o}=n;o===t&&(i=!0,t.removeEventListener(Me,r),Ve(e))};t.addEventListener(Me,r),setTimeout((()=>{i||t.dispatchEvent(new Event(Me))}),n)},Ue=/[^.]*(?=\..*)\.|.*/,Ke=/\..*/,Qe=/::\d+$/,Ge={};let Xe=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&`${t}::${Xe++}`||e.uidEvent||Xe++}function tt(e){const t=et(e);return e.uidEvent=t,Ge[t]=Ge[t]||{},Ge[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,r=i?n:t||n;let o=at(e);return Ze.has(o)||(o=e),[i,r,o]}function rt(e,t,n,i,r){if("string"!=typeof t||!e)return;let[o,s,a]=it(t,n,i);if(t in Je){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=tt(e),c=l[a]||(l[a]={}),u=nt(c,s,o?n:null);if(u)return void(u.oneOff=u.oneOff&&r);const f=et(s,t.replace(Ue,"")),d=o?function(e,t,n){return function i(r){const o=e.querySelectorAll(t);for(let{target:s}=r;s&&s!==this;s=s.parentNode)for(const a of o)if(a===s)return ct(r,{delegateTarget:s}),i.oneOff&<.off(e,r.type,t,n),n.apply(s,[r])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&<.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=o?n:null,d.callable=s,d.oneOff=r,d.uidEvent=f,c[f]=d,e.addEventListener(a,d,o)}function ot(e,t,n,i,r){const o=nt(t[n],i,r);o&&(e.removeEventListener(n,o,Boolean(r)),delete t[n][o.uidEvent])}function st(e,t,n,i){const r=t[n]||{};for(const[o,s]of Object.entries(r))o.includes(i)&&ot(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Ke,""),Je[e]||e}const lt={on(e,t,n,i){rt(e,t,n,i,!1)},one(e,t,n,i){rt(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[r,o,s]=it(t,n,i),a=s!==t,l=tt(e),c=l[s]||{},u=t.startsWith(".");if(void 0===o){if(u)for(const n of Object.keys(l))st(e,l,n,t.slice(1));for(const[n,i]of Object.entries(c)){const r=n.replace(Qe,"");a&&!t.includes(r)||ot(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;ot(e,l,s,o,r?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=ze();let r=null,o=!0,s=!0,a=!1;t!==at(t)&&i&&(r=i.Event(t,n),i(e).trigger(r),o=!r.isPropagationStopped(),s=!r.isImmediatePropagationStopped(),a=r.isDefaultPrevented());const l=ct(new Event(t,{bubbles:o,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&r&&r.preventDefault(),l}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ut(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ft(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const dt={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${ft(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ft(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ut(e.dataset[i])}return t},getDataAttribute:(e,t)=>ut(e.getAttribute(`data-bs-${ft(t)}`))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Be(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Be(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,r]of Object.entries(t)){const t=e[i],o=Be(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(r).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${r}".`)}var n}}class ht extends pt{constructor(e,t){super(),(e=He(e))&&(this._element=e,this._config=this._getConfig(t),Ne.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Ne.remove(this._element,this.constructor.DATA_KEY),lt.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ye(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Ne.get(He(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Fe(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Be(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},xt={entry:"(string|element|function|null)",selector:"(string|element)"};class Ot extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},xt)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Be(t)?this._putElementInTemplate(He(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),r=[].concat(...i.body.querySelectorAll("*"));for(const e of r){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),r=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,r)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ve(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const At=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Tt="show",Lt=".tooltip-inner",jt=".modal",St="hide.bs.modal",Dt="hover",kt="focus",Pt={AUTO:"auto",TOP:"top",RIGHT:Re()?"left":"right",BOTTOM:"bottom",LEFT:Re()?"right":"left"},Nt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Mt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Ft extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Nt}static get DefaultType(){return Mt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),lt.off(this._element.closest(jt),St,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=lt.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),lt.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.on(e,"mouseover",$e);this._queueCallback((()=>{lt.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(lt.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.off(e,"mouseover",$e);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),lt.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Tt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Ot({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Lt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Tt)}_createPopper(e){const t=Ve(this._config.placement,[this,e,this._element]),n=Pt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ve(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ve(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)lt.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");lt.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),lt.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},lt.on(this._element.closest(jt),St,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))At.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:He(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Ft.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}qe(Ft);const Bt=document.getElementById("mode-toggle");function Ht(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const It="sidebar-display";class $t{static toggle(){!1===$t.isExpanded?document.body.setAttribute(It,""):document.body.removeAttribute(It),$t.isExpanded=!$t.isExpanded}}Ht($t,"isExpanded",!1);const zt=document.getElementById("sidebar-trigger"),Wt=document.getElementById("search-trigger"),Rt=document.getElementById("search-cancel"),qt=document.querySelectorAll("#main-wrapper>.container>.row"),Vt=document.getElementById("topbar-title"),Yt=document.getElementById("search"),Ut=document.getElementById("search-result-wrapper"),Kt=document.getElementById("search-results"),Qt=document.getElementById("search-input"),Gt=document.getElementById("search-hints"),Xt="d-block",Jt="d-none",Zt="input-focus",en="d-flex";class tn{static on(){zt.classList.add(Jt),Vt.classList.add(Jt),Wt.classList.add(Jt),Yt.classList.add(en),Rt.classList.add(Xt)}static off(){Rt.classList.remove(Xt),Yt.classList.remove(en),zt.classList.remove(Jt),Vt.classList.remove(Jt),Wt.classList.remove(Jt)}}class nn{static on(){this.resultVisible||(Ut.classList.remove(Jt),qt.forEach((e=>{e.classList.add(Jt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Kt.innerHTML="",Gt.classList.contains(Jt)&&Gt.classList.remove(Jt),Ut.classList.add(Jt),qt.forEach((e=>{e.classList.remove(Jt)})),Qt.textContent="",this.resultVisible=!1)}}function rn(){return Rt.classList.contains(Xt)}Ht(nn,"resultVisible",!1);const on=".bs.collapse",sn=`show${on}`,an=`shown${on}`,ln=`hide${on}`,cn=`hidden${on}`,un=`click${on}.data-api`,fn="show",dn="collapse",pn="collapsing",hn=`:scope .${dn} .${dn}`,mn='[data-bs-toggle="collapse"]',gn={parent:null,toggle:!0},vn={parent:"(null|element)",toggle:"boolean"};class bn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(mn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gn}static get DefaultType(){return vn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>bn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(lt.trigger(this._element,sn).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(dn),this._element.classList.add(pn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn,fn),this._element.style[t]="",lt.trigger(this._element,an)}),this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(lt.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.offsetHeight,this._element.classList.add(pn),this._element.classList.remove(dn,fn);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn),lt.trigger(this._element,cn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(fn)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=He(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(mn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(hn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=bn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}}))}}lt.on(document,un,mn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))bn.getOrCreateInstance(e,{toggle:!1}).toggle()})),qe(bn),document.getElementsByClassName("collapse");class yn{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(e){return Number(e.getAttribute(this.attrTimestamp))}static getDateFormat(e){return e.getAttribute(this.attrDateFormat)}}Bt&&Bt.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",$t.toggle),document.getElementById("mask").addEventListener("click",$t.toggle),Wt.addEventListener("click",(()=>{tn.on(),nn.on(),Qt.focus()})),Rt.addEventListener("click",(()=>{tn.off(),nn.off()})),Qt.addEventListener("focus",(()=>{Yt.classList.add(Zt)})),Qt.addEventListener("focusout",(()=>{Yt.classList.remove(Zt)})),Qt.addEventListener("input",(()=>{""===Qt.value?rn()?Gt.classList.remove(Jt):nn.off():(nn.on(),rn()&&Gt.classList.add(Jt))})),dayjs.locale(yn.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll(`[${yn.attrTimestamp}]`).forEach((e=>{const t=dayjs.unix(yn.getTimestamp(e)),n=t.format(yn.getDateFormat(e));if(e.textContent=n,e.removeAttribute(yn.attrTimestamp),e.removeAttribute(yn.attrDateFormat),e.hasAttribute("data-bs-toggle")&&"tooltip"===e.getAttribute("data-bs-toggle")){const n=t.format("llll");e.setAttribute("data-bs-title",n)}})),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Ft(e)))}(); diff --git a/assets/js/dist/page.min.js b/assets/js/dist/page.min.js new file mode 100644 index 0000000..64ec559 --- /dev/null +++ b/assets/js/dist/page.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",l="clippingParents",c="viewport",u="popper",f="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",A=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function O(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof O(e).Element||e instanceof Element}function L(e){return e instanceof O(e).HTMLElement||e instanceof HTMLElement}function T(e){return"undefined"!=typeof ShadowRoot&&(e instanceof O(e).ShadowRoot||e instanceof ShadowRoot)}var S={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];L(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});L(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function j(e){return e.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function P(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(P())}function I(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&L(e)&&(o=e.offsetWidth>0&&M(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&M(i.height)/e.offsetHeight||1);var s=(C(e)?O(e):window).visualViewport,a=!N()&&n,l=(i.left+(a&&s?s.offsetLeft:0))/o,c=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:c,right:l+u,bottom:c+f,left:l,x:l,y:c}}function B(e){var t=I(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function F(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&T(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function H(e){return O(e).getComputedStyle(e)}function $(e){return["table","td","th"].indexOf(x(e))>=0}function q(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function R(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(T(e)?e.host:null)||q(e)}function z(e){return L(e)&&"fixed"!==H(e).position?e.offsetParent:null}function W(e){for(var t=O(e),n=z(e);n&&$(n)&&"static"===H(n).position;)n=z(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===H(n).position)?t:n||function(e){var t=/firefox/i.test(P());if(/Trident/i.test(P())&&L(e)&&"fixed"===H(e).position)return null;var n=R(e);for(T(n)&&(n=n.host);L(n)&&["html","body"].indexOf(x(n))<0;){var i=H(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function V(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e,t,n){return D(e,k(t,n))}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function K(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,l=o.name,c=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=j(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:K(e,r))}(c.padding,a),g=B(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=W(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,A=y/2-_/2,x=m[v],O=E-g[h]-m[b],C=E/2-g[h]/2+A,L=U(x,C,O),T=p;a.modifiersData[l]=((s={})[T]=L,s.centerOffset=L-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&F(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var J={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(o){var r,s=o.popper,l=o.popperRect,c=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),A=f.hasOwnProperty("y"),x=i,C=e,L=window;if(h){var T=W(s),S="clientHeight",j="clientWidth";if(T===O(s)&&"static"!==H(T=q(s)).position&&"absolute"===d&&(S="scrollHeight",j="scrollWidth"),c===e||(c===i||c===n)&&u===a)C=t,_-=(g&&T===L&&L.visualViewport?L.visualViewport.height:T[S])-l.height,_*=p?1:-1;if(c===i||(c===e||c===t)&&u===a)x=n,b-=(g&&T===L&&L.visualViewport?L.visualViewport.width:T[j])-l.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&J),P=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:M(n*o)/o||0,y:M(i*o)/o||0}}({x:b,y:_},O(s)):{x:b,y:_};return b=P.x,_=P.y,p?Object.assign({},k,((D={})[C]=A?"0":"",D[x]=E?"0":"",D.transform=(L.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=A?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,c={placement:j(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,l=O(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&c.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&l.addEventListener("resize",n.update,ee),function(){r&&c.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&l.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=O(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return I(q(e)).left+se(e).scrollLeft}function le(e){var t=H(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function ce(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:L(e)&&le(e)?e:ce(R(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=ce(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=O(i),s=o?[r].concat(r.visualViewport||[],le(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(ue(R(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===c?fe(function(e,t){var n=O(e),i=q(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,l=0;if(o){r=o.width,s=o.height;var c=N();(c||!c&&"fixed"===t)&&(a=o.offsetLeft,l=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:l}}(e,n)):C(t)?function(e,t){var n=I(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=q(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),l=-i.scrollTop;return"rtl"===H(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:l}}(q(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=ue(R(e)),n=["absolute","fixed"].indexOf(H(e).position)>=0&&L(e)?W(e):e;return C(n)?t.filter((function(e){return C(e)&&F(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=D(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=D(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,l=o.reference,c=o.element,u=o.placement,f=u?j(u):null,d=u?G(u):null,p=l.x+l.width/2-c.width/2,h=l.y+l.height/2-c.height/2;switch(f){case e:r={x:p,y:l.y-c.height};break;case t:r={x:p,y:l.y+l.height};break;case n:r={x:l.x+l.width,y:h};break;case i:r={x:l.x-c.width,y:h};break;default:r={x:l.x,y:l.y}}var m=f?V(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(l[g]/2-c[g]/2);break;case a:r[m]=r[m]+(l[g]/2-c[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?l:m,v=s.rootBoundary,b=void 0===v?c:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,A=s.padding,x=void 0===A?0:A,O=Y("number"!=typeof x?x:K(x,r)),L=_===u?f:u,T=i.rects.popper,S=i.elements[E?L:_],j=pe(C(S)?S:S.contextElement||q(i.elements.popper),g,b,h),D=I(i.elements.reference),k=he({reference:D,element:T,strategy:"absolute",placement:d}),M=fe(Object.assign({},T,k)),P=_===u?M:D,N={top:j.top-P.top+O.top,bottom:P.bottom-j.bottom+O.bottom,left:j.left-P.left+O.left,right:P.right-j.right+O.right},B=i.modifiersData.offset;if(_===u&&B){var F=B[d];Object.keys(N).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";N[i]+=F[r]*o}))}return N}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?p:c,f=G(i),h=f?l?d:d.filter((function(e){return G(e)===f})):r,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[j(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,l=r.options,c=r.name;if(!a.modifiersData[c]._skip){for(var u=l.mainAxis,f=void 0===u||u,d=l.altAxis,p=void 0===d||d,h=l.fallbackPlacements,m=l.padding,g=l.boundary,v=l.rootBoundary,b=l.altBoundary,y=l.flipVariations,_=void 0===y||y,w=l.allowedAutoPlacements,E=a.options.placement,A=j(E),x=h||(A===E||!_?[ie(E)]:function(e){if(j(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),O=[E].concat(x).reduce((function(e,t){return e.concat(j(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,L=a.rects.popper,T=new Map,S=!0,D=O[0],k=0;k=0,B=I?"width":"height",F=me(a,{placement:M,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),H=I?N?n:i:N?t:e;C[B]>L[B]&&(H=ie(H));var $=ie(H),q=[];if(f&&q.push(F[P]<=0),p&&q.push(F[H]<=0,F[$]<=0),q.every((function(e){return e}))){D=M,S=!1;break}T.set(M,q)}if(S)for(var R=function(e){var t=O.find((function(t){var n=T.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},z=_?3:1;z>0;z--){if("break"===R(z))break}a.placement!==D&&(a.modifiersData[c]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),l=be(s,i),c=be(a,o,r),u=ye(l),f=ye(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,l=void 0===a?[0,0]:a,c=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=j(t),a=[i,e].indexOf(s)>=0?-1:1,l="function"==typeof r?r(Object.assign({},o,{placement:t})):r,c=l[0],u=l[1];return c=c||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:c}:{x:c,y:u}}(r,o.rects,l),t}),{}),u=c[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=c}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Ae={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,l=o.name,c=a.mainAxis,u=void 0===c||c,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=j(r.placement),A=G(r.placement),x=!A,O=V(E),C="x"===O?"y":"x",L=r.modifiersData.popperOffsets,T=r.rects.reference,S=r.rects.popper,M="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,P="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,I={x:0,y:0};if(L){if(u){var F,H="y"===O?e:i,$="y"===O?t:n,q="y"===O?"height":"width",R=L[O],z=R+w[H],Y=R-w[$],K=b?-S[q]/2:0,Q=A===s?T[q]:S[q],J=A===s?-S[q]:-T[q],X=r.elements.arrow,Z=b&&X?B(X):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[H],ne=ee[$],ie=U(0,T[q],Z[q]),oe=x?T[q]/2-K-ie-te-P.mainAxis:Q-ie-te-P.mainAxis,re=x?-T[q]/2+K+ie+ne+P.mainAxis:J+ie+ne+P.mainAxis,se=r.elements.arrow&&W(r.elements.arrow),ae=se?"y"===O?se.clientTop||0:se.clientLeft||0:0,le=null!=(F=null==N?void 0:N[O])?F:0,ce=R+re-le,ue=U(b?k(z,R+oe-le-ae):z,R,b?D(Y,ce):Y);L[O]=ue,I[O]=ue-R}if(d){var fe,de="x"===O?e:i,pe="x"===O?t:n,he=L[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==N?void 0:N[C])?fe:0,we=ye?ve:he-T[ge]-S[ge]-_e+P.altAxis,Ee=ye?he+T[ge]+S[ge]-_e-P.altAxis:be,Ae=b&&ye?function(e,t,n){var i=U(e,t,n);return i>n?n:i}(we,he,Ee):U(b?we:ve,he,b?Ee:be);L[C]=Ae,I[C]=Ae-he}r.modifiersData[l]=I}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=L(t),s=L(t)&&function(e){var t=e.getBoundingClientRect(),n=M(t.width)/e.offsetWidth||1,i=M(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=q(t),l=I(e,s,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||le(a))&&(c=(i=t)!==O(i)&&L(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),L(t)?((u=I(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function Oe(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Le(){for(var e=arguments.length,t=new Array(e),n=0;nMe.has(e)&&Me.get(e).get(t)||null,remove(e,t){if(!Me.has(e))return;const n=Me.get(e);n.delete(t),0===n.size&&Me.delete(e)}};const Ne="transitionend",Ie=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),Be=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),Fe=e=>Be(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Ie(e)):null,He=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?He(e.parentNode):null},$e=()=>{},qe=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Re=[],ze=()=>"rtl"===document.documentElement.dir,We=e=>{var t;t=()=>{const t=qe();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(Re.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of Re)e()})),Re.push(t)):t()},Ve=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ue=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ve(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Ne,o),Ve(e))};t.addEventListener(Ne,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Ne))}),n)},Ye=/[^.]*(?=\..*)\.|.*/,Ke=/\..*/,Qe=/::\d+$/,Ge={};let Je=1;const Xe={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&`${t}::${Je++}`||e.uidEvent||Je++}function tt(e){const t=et(e);return e.uidEvent=t,Ge[t]=Ge[t]||{},Ge[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=at(e);return Ze.has(r)||(r=e),[i,o,r]}function ot(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=it(t,n,i);if(t in Xe){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const l=tt(e),c=l[a]||(l[a]={}),u=nt(c,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=et(s,t.replace(Ye,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return ct(o,{delegateTarget:s}),i.oneOff&<.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&<.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,c[f]=d,e.addEventListener(a,d,r)}function rt(e,t,n,i,o){const r=nt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function st(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&rt(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Ke,""),Xe[e]||e}const lt={on(e,t,n,i){ot(e,t,n,i,!1)},one(e,t,n,i){ot(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=it(t,n,i),a=s!==t,l=tt(e),c=l[s]||{},u=t.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(l))st(e,l,n,t.slice(1));for(const[n,i]of Object.entries(c)){const o=n.replace(Qe,"");a&&!t.includes(o)||rt(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;rt(e,l,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=qe();let o=null,r=!0,s=!0,a=!1;t!==at(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=ct(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ut(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ft(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const dt={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${ft(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ft(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ut(e.dataset[i])}return t},getDataAttribute:(e,t)=>ut(e.getAttribute(`data-bs-${ft(t)}`))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Be(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Be(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=Be(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class ht extends pt{constructor(e,t){super(),(e=Fe(e))&&(this._element=e,this._config=this._getConfig(t),Pe.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Pe.remove(this._element,this.constructor.DATA_KEY),lt.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ue(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Pe.get(Fe(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Ie(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Be(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},At={entry:"(string|element|function|null)",selector:"(string|element)"};class xt extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},At)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Be(t)?this._putElementInTemplate(Fe(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ve(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const Ot=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Lt="show",Tt=".tooltip-inner",St=".modal",jt="hide.bs.modal",Dt="hover",kt="focus",Mt={AUTO:"auto",TOP:"top",RIGHT:ze()?"left":"right",BOTTOM:"bottom",LEFT:ze()?"right":"left"},Pt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Nt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class It extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pt}static get DefaultType(){return Nt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),lt.off(this._element.closest(St),jt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=lt.trigger(this._element,this.constructor.eventName("show")),t=(He(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),lt.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.on(e,"mouseover",$e);this._queueCallback((()=>{lt.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(lt.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))lt.off(e,"mouseover",$e);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),lt.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Lt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new xt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Tt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Lt)}_createPopper(e){const t=Ve(this._config.placement,[this,e,this._element]),n=Mt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ve(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ve(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)lt.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");lt.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),lt.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},lt.on(this._element.closest(St),jt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))Ot.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:Fe(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=It.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}We(It);const Bt=document.getElementById("mode-toggle");function Ft(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ht="sidebar-display";class $t{static toggle(){!1===$t.isExpanded?document.body.setAttribute(Ht,""):document.body.removeAttribute(Ht),$t.isExpanded=!$t.isExpanded}}Ft($t,"isExpanded",!1);const qt=document.getElementById("sidebar-trigger"),Rt=document.getElementById("search-trigger"),zt=document.getElementById("search-cancel"),Wt=document.querySelectorAll("#main-wrapper>.container>.row"),Vt=document.getElementById("topbar-title"),Ut=document.getElementById("search"),Yt=document.getElementById("search-result-wrapper"),Kt=document.getElementById("search-results"),Qt=document.getElementById("search-input"),Gt=document.getElementById("search-hints"),Jt="d-block",Xt="d-none",Zt="input-focus",en="d-flex";class tn{static on(){qt.classList.add(Xt),Vt.classList.add(Xt),Rt.classList.add(Xt),Ut.classList.add(en),zt.classList.add(Jt)}static off(){zt.classList.remove(Jt),Ut.classList.remove(en),qt.classList.remove(Xt),Vt.classList.remove(Xt),Rt.classList.remove(Xt)}}class nn{static on(){this.resultVisible||(Yt.classList.remove(Xt),Wt.forEach((e=>{e.classList.add(Xt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Kt.innerHTML="",Gt.classList.contains(Xt)&&Gt.classList.remove(Xt),Yt.classList.add(Xt),Wt.forEach((e=>{e.classList.remove(Xt)})),Qt.textContent="",this.resultVisible=!1)}}function on(){return zt.classList.contains(Jt)}Ft(nn,"resultVisible",!1);const rn=".bs.collapse",sn=`show${rn}`,an=`shown${rn}`,ln=`hide${rn}`,cn=`hidden${rn}`,un=`click${rn}.data-api`,fn="show",dn="collapse",pn="collapsing",hn=`:scope .${dn} .${dn}`,mn='[data-bs-toggle="collapse"]',gn={parent:null,toggle:!0},vn={parent:"(null|element)",toggle:"boolean"};class bn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(mn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gn}static get DefaultType(){return vn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>bn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(lt.trigger(this._element,sn).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(dn),this._element.classList.add(pn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn,fn),this._element.style[t]="",lt.trigger(this._element,an)}),this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(lt.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.offsetHeight,this._element.classList.add(pn),this._element.classList.remove(dn,fn);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn),lt.trigger(this._element,cn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(fn)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=Fe(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(mn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(hn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=bn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}}))}}lt.on(document,un,mn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))bn.getOrCreateInstance(e,{toggle:!1}).toggle()})),We(bn),document.getElementsByClassName("collapse");const yn=".code-header>button",_n="far fa-clipboard",wn="fas fa-check",En="timeout",An="data-title-succeed",xn="data-bs-original-title",On=2e3;function Cn(e){if(e.hasAttribute(En)){let t=e.getAttribute(En);if(Number(t)>Date.now())return!0}return!1}function Ln(e){e.setAttribute(En,Date.now()+On)}function Tn(e){e.removeAttribute(En)}function Sn(){const e=document.querySelectorAll(yn);if(0===e.length)return;const t=new ClipboardJS(yn,{target:e=>e.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...e].map((e=>new It(e,{placement:"left"}))),t.on("success",(e=>{const t=e.trigger;(e.clearSelection(),Cn(t))||(t.children[0].setAttribute("class",wn),function(e){const t=e.getAttribute(An);e.setAttribute(xn,t),It.getInstance(e).show()}(t),Ln(t),setTimeout((()=>{!function(e){It.getInstance(e).hide(),e.removeAttribute(xn)}(t),function(e){e.children[0].setAttribute("class",_n)}(t),Tn(t)}),On))}))}const jn="data-src",Dn="data-lqip",kn={SHIMMER:"shimmer",BLUR:"blur"};function Mn(e){this.parentElement.classList.remove(e)}function Pn(){this.complete&&(this.hasAttribute(Dn)?Mn.call(this,kn.BLUR):Mn.call(this,kn.SHIMMER))}function Nn(){const e=this.getAttribute(jn);this.setAttribute("src",encodeURI(e)),this.removeAttribute(jn)}const In=document.documentElement,Bn=".popup:not(.dark)",Fn=".popup:not(.light)";let Hn=Bn;!function(){const e=document.querySelectorAll("article img");if(0===e.length)return;e.forEach((e=>{e.addEventListener("load",Pn)})),document.querySelectorAll('article img[loading="lazy"]').forEach((e=>{e.complete&&Mn.call(e,kn.SHIMMER)}));const t=document.querySelectorAll(`article img[${Dn}="true"]`);t.length&&t.forEach((e=>{Nn.call(e)}))}(),function(){if(null===document.querySelector(".popup"))return;const e=!(null===document.querySelector(".popup.light")&&null===document.querySelector(".popup.dark"));(In.hasAttribute("data-mode")&&"dark"===In.getAttribute("data-mode")||!In.hasAttribute("data-mode")&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&(Hn=Fn);let t=GLightbox({selector:`${Hn}`});if(e&&document.getElementById("mode-toggle")){let e=null;window.addEventListener("message",(n=>{n.source===window&&n.data&&n.data.direction===ModeToggle.ID&&function(e,t){Hn=Hn===Bn?Fn:Bn,null===t&&(t=GLightbox({selector:`${Hn}`})),[e,t]=[t,e]}(t,e)}))}}(),Bt&&Bt.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",$t.toggle),document.getElementById("mask").addEventListener("click",$t.toggle),Rt.addEventListener("click",(()=>{tn.on(),nn.on(),Qt.focus()})),zt.addEventListener("click",(()=>{tn.off(),nn.off()})),Qt.addEventListener("focus",(()=>{Ut.classList.add(Zt)})),Qt.addEventListener("focusout",(()=>{Ut.classList.remove(Zt)})),Qt.addEventListener("input",(()=>{""===Qt.value?on()?Gt.classList.remove(Xt):nn.off():(nn.on(),on()&&Gt.classList.add(Xt))})),Sn(),function(){const e=document.getElementById("copy-link");null!==e&&(e.addEventListener("click",(e=>{const t=e.target;Cn(t)||navigator.clipboard.writeText(window.location.href).then((()=>{const e=t.getAttribute(xn),n=t.getAttribute(An);t.setAttribute(xn,n),It.getInstance(t).show(),Ln(t),setTimeout((()=>{t.setAttribute(xn,e),Tn(t)}),On)}))})),e.addEventListener("mouseleave",(e=>{It.getInstance(e.target).hide()})))}(),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new It(e)))}(); diff --git a/assets/js/dist/post.min.js b/assets/js/dist/post.min.js new file mode 100644 index 0000000..aa163a4 --- /dev/null +++ b/assets/js/dist/post.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";var t="top",e="bottom",n="right",i="left",o="auto",r=[t,e,n,i],s="start",a="end",l="clippingParents",c="viewport",u="popper",f="reference",d=r.reduce((function(t,e){return t.concat([e+"-"+s,e+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(t,e){return t.concat([e,e+"-"+s,e+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",b="beforeMain",v="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",A=[h,m,g,b,v,y,_,w,E];function x(t){return t?(t.nodeName||"").toLowerCase():null}function O(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function C(t){return t instanceof O(t).Element||t instanceof Element}function T(t){return t instanceof O(t).HTMLElement||t instanceof HTMLElement}function L(t){return"undefined"!=typeof ShadowRoot&&(t instanceof O(t).ShadowRoot||t instanceof ShadowRoot)}var S={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];T(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(t){var e=i[t];!1===e?o.removeAttribute(t):o.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],o=e.attributes[t]||{},r=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});T(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]};function j(t){return t.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function P(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(P())}function I(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var i=t.getBoundingClientRect(),o=1,r=1;e&&T(t)&&(o=t.offsetWidth>0&&M(i.width)/t.offsetWidth||1,r=t.offsetHeight>0&&M(i.height)/t.offsetHeight||1);var s=(C(t)?O(t):window).visualViewport,a=!N()&&n,l=(i.left+(a&&s?s.offsetLeft:0))/o,c=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:c,right:l+u,bottom:c+f,left:l,x:l,y:c}}function F(t){var e=I(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function B(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&L(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function H(t){return O(t).getComputedStyle(t)}function $(t){return["table","td","th"].indexOf(x(t))>=0}function q(t){return((C(t)?t.ownerDocument:t.document)||window.document).documentElement}function R(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(L(t)?t.host:null)||q(t)}function z(t){return T(t)&&"fixed"!==H(t).position?t.offsetParent:null}function W(t){for(var e=O(t),n=z(t);n&&$(n)&&"static"===H(n).position;)n=z(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===H(n).position)?e:n||function(t){var e=/firefox/i.test(P());if(/Trident/i.test(P())&&T(t)&&"fixed"===H(t).position)return null;var n=R(t);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(x(n))<0;){var i=H(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function V(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function U(t,e,n){return D(t,k(e,n))}function Y(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function K(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}var Q={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,l=o.name,c=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=j(a.placement),p=V(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(t,e){return Y("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:K(t,r))}(c.padding,a),g=F(u),b="y"===p?t:i,v="y"===p?e:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=W(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,A=y/2-_/2,x=m[b],O=E-g[h]-m[v],C=E/2-g[h]/2+A,T=U(x,C,O),L=p;a.modifiersData[l]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&B(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(t){return t.split("-")[1]}var J={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(o){var r,s=o.popper,l=o.popperRect,c=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,b=f.x,v=void 0===b?0:b,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:v,y:_}):{x:v,y:_};v=w.x,_=w.y;var E=f.hasOwnProperty("x"),A=f.hasOwnProperty("y"),x=i,C=t,T=window;if(h){var L=W(s),S="clientHeight",j="clientWidth";if(L===O(s)&&"static"!==H(L=q(s)).position&&"absolute"===d&&(S="scrollHeight",j="scrollWidth"),c===t||(c===i||c===n)&&u===a)C=e,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[S])-l.height,_*=p?1:-1;if(c===i||(c===t||c===e)&&u===a)x=n,v-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[j])-l.width,v*=p?1:-1}var D,k=Object.assign({position:d},h&&J),P=!0===m?function(t,e){var n=t.x,i=t.y,o=e.devicePixelRatio||1;return{x:M(n*o)/o||0,y:M(i*o)/o||0}}({x:v,y:_},O(s)):{x:v,y:_};return v=P.x,_=P.y,p?Object.assign({},k,((D={})[C]=A?"0":"",D[x]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+v+"px, "+_+"px)":"translate3d("+v+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=A?_+"px":"",r[x]=E?v+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,c={placement:j(e.placement),variation:G(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,X(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,X(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},tt={passive:!0};var et={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,l=O(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&c.forEach((function(t){t.addEventListener("scroll",n.update,tt)})),a&&l.addEventListener("resize",n.update,tt),function(){r&&c.forEach((function(t){t.removeEventListener("scroll",n.update,tt)})),a&&l.removeEventListener("resize",n.update,tt)}},data:{}},nt={left:"right",right:"left",bottom:"top",top:"bottom"};function it(t){return t.replace(/left|right|bottom|top/g,(function(t){return nt[t]}))}var ot={start:"end",end:"start"};function rt(t){return t.replace(/start|end/g,(function(t){return ot[t]}))}function st(t){var e=O(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function at(t){return I(q(t)).left+st(t).scrollLeft}function lt(t){var e=H(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function ct(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:T(t)&<(t)?t:ct(R(t))}function ut(t,e){var n;void 0===e&&(e=[]);var i=ct(t),o=i===(null==(n=t.ownerDocument)?void 0:n.body),r=O(i),s=o?[r].concat(r.visualViewport||[],lt(i)?i:[]):i,a=e.concat(s);return o?a:a.concat(ut(R(s)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function dt(t,e,n){return e===c?ft(function(t,e){var n=O(t),i=q(t),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,l=0;if(o){r=o.width,s=o.height;var c=N();(c||!c&&"fixed"===e)&&(a=o.offsetLeft,l=o.offsetTop)}return{width:r,height:s,x:a+at(t),y:l}}(t,n)):C(e)?function(t,e){var n=I(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=q(t),i=st(t),o=null==(e=t.ownerDocument)?void 0:e.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+at(t),l=-i.scrollTop;return"rtl"===H(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:l}}(q(t)))}function pt(t,e,n,i){var o="clippingParents"===e?function(t){var e=ut(R(t)),n=["absolute","fixed"].indexOf(H(t).position)>=0&&T(t)?W(t):t;return C(n)?e.filter((function(t){return C(t)&&B(t,n)&&"body"!==x(t)})):[]}(t):[].concat(e),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(e,n){var o=dt(t,n,i);return e.top=D(o.top,e.top),e.right=k(o.right,e.right),e.bottom=k(o.bottom,e.bottom),e.left=D(o.left,e.left),e}),dt(t,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ht(o){var r,l=o.reference,c=o.element,u=o.placement,f=u?j(u):null,d=u?G(u):null,p=l.x+l.width/2-c.width/2,h=l.y+l.height/2-c.height/2;switch(f){case t:r={x:p,y:l.y-c.height};break;case e:r={x:p,y:l.y+l.height};break;case n:r={x:l.x+l.width,y:h};break;case i:r={x:l.x-c.width,y:h};break;default:r={x:l.x,y:l.y}}var m=f?V(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(l[g]/2-c[g]/2);break;case a:r[m]=r[m]+(l[g]/2-c[g]/2)}}return r}function mt(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?l:m,b=s.rootBoundary,v=void 0===b?c:b,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,A=s.padding,x=void 0===A?0:A,O=Y("number"!=typeof x?x:K(x,r)),T=_===u?f:u,L=i.rects.popper,S=i.elements[E?T:_],j=pt(C(S)?S:S.contextElement||q(i.elements.popper),g,v,h),D=I(i.elements.reference),k=ht({reference:D,element:L,strategy:"absolute",placement:d}),M=ft(Object.assign({},L,k)),P=_===u?M:D,N={top:j.top-P.top+O.top,bottom:P.bottom-j.bottom+O.bottom,left:j.left-P.left+O.left,right:P.right-j.right+O.right},F=i.modifiersData.offset;if(_===u&&F){var B=F[d];Object.keys(N).forEach((function(i){var o=[n,e].indexOf(i)>=0?1:-1,r=[t,e].indexOf(i)>=0?"y":"x";N[i]+=B[r]*o}))}return N}function gt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?p:c,f=G(i),h=f?l?d:d.filter((function(t){return G(t)===f})):r,m=h.filter((function(t){return u.indexOf(t)>=0}));0===m.length&&(m=h);var g=m.reduce((function(e,n){return e[n]=mt(t,{placement:n,boundary:o,rootBoundary:s,padding:a})[j(n)],e}),{});return Object.keys(g).sort((function(t,e){return g[t]-g[e]}))}var bt={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,l=r.options,c=r.name;if(!a.modifiersData[c]._skip){for(var u=l.mainAxis,f=void 0===u||u,d=l.altAxis,p=void 0===d||d,h=l.fallbackPlacements,m=l.padding,g=l.boundary,b=l.rootBoundary,v=l.altBoundary,y=l.flipVariations,_=void 0===y||y,w=l.allowedAutoPlacements,E=a.options.placement,A=j(E),x=h||(A===E||!_?[it(E)]:function(t){if(j(t)===o)return[];var e=it(t);return[rt(t),e,rt(e)]}(E)),O=[E].concat(x).reduce((function(t,e){return t.concat(j(e)===o?gt(a,{placement:e,boundary:g,rootBoundary:b,padding:m,flipVariations:_,allowedAutoPlacements:w}):e)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,S=!0,D=O[0],k=0;k=0,F=I?"width":"height",B=mt(a,{placement:M,boundary:g,rootBoundary:b,altBoundary:v,padding:m}),H=I?N?n:i:N?e:t;C[F]>T[F]&&(H=it(H));var $=it(H),q=[];if(f&&q.push(B[P]<=0),p&&q.push(B[H]<=0,B[$]<=0),q.every((function(t){return t}))){D=M,S=!1;break}L.set(M,q)}if(S)for(var R=function(t){var e=O.find((function(e){var n=L.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return D=e,"break"},z=_?3:1;z>0;z--){if("break"===R(z))break}a.placement!==D&&(a.modifiersData[c]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(o){return[t,n,e,i].some((function(t){return o[t]>=0}))}var _t={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,o=e.rects.popper,r=e.modifiersData.preventOverflow,s=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),l=vt(s,i),c=vt(a,o,r),u=yt(l),f=yt(c);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var o=e.state,r=e.options,s=e.name,a=r.offset,l=void 0===a?[0,0]:a,c=p.reduce((function(e,r){return e[r]=function(e,o,r){var s=j(e),a=[i,t].indexOf(s)>=0?-1:1,l="function"==typeof r?r(Object.assign({},o,{placement:e})):r,c=l[0],u=l[1];return c=c||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:c}:{x:c,y:u}}(r,o.rects,l),e}),{}),u=c[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=c}};var Et={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=ht({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var At={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,l=o.name,c=a.mainAxis,u=void 0===c||c,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,b=a.tether,v=void 0===b||b,y=a.tetherOffset,_=void 0===y?0:y,w=mt(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=j(r.placement),A=G(r.placement),x=!A,O=V(E),C="x"===O?"y":"x",T=r.modifiersData.popperOffsets,L=r.rects.reference,S=r.rects.popper,M="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,P="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,I={x:0,y:0};if(T){if(u){var B,H="y"===O?t:i,$="y"===O?e:n,q="y"===O?"height":"width",R=T[O],z=R+w[H],Y=R-w[$],K=v?-S[q]/2:0,Q=A===s?L[q]:S[q],J=A===s?-S[q]:-L[q],X=r.elements.arrow,Z=v&&X?F(X):{width:0,height:0},tt=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[H],nt=tt[$],it=U(0,L[q],Z[q]),ot=x?L[q]/2-K-it-et-P.mainAxis:Q-it-et-P.mainAxis,rt=x?-L[q]/2+K+it+nt+P.mainAxis:J+it+nt+P.mainAxis,st=r.elements.arrow&&W(r.elements.arrow),at=st?"y"===O?st.clientTop||0:st.clientLeft||0:0,lt=null!=(B=null==N?void 0:N[O])?B:0,ct=R+rt-lt,ut=U(v?k(z,R+ot-lt-at):z,R,v?D(Y,ct):Y);T[O]=ut,I[O]=ut-R}if(d){var ft,dt="x"===O?t:i,pt="x"===O?e:n,ht=T[C],gt="y"===C?"height":"width",bt=ht+w[dt],vt=ht-w[pt],yt=-1!==[t,i].indexOf(E),_t=null!=(ft=null==N?void 0:N[C])?ft:0,wt=yt?bt:ht-L[gt]-S[gt]-_t+P.altAxis,Et=yt?ht+L[gt]+S[gt]-_t-P.altAxis:vt,At=v&&yt?function(t,e,n){var i=U(t,e,n);return i>n?n:i}(wt,ht,Et):U(v?wt:bt,ht,v?Et:vt);T[C]=At,I[C]=At-ht}r.modifiersData[l]=I}},requiresIfExists:["offset"]};function xt(t,e,n){void 0===n&&(n=!1);var i,o,r=T(e),s=T(e)&&function(t){var e=t.getBoundingClientRect(),n=M(e.width)/t.offsetWidth||1,i=M(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=q(e),l=I(t,s,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(e)||lt(a))&&(c=(i=e)!==O(i)&&T(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:st(i)),T(e)?((u=I(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):a&&(u.x=at(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function Ot(t){var e=new Map,n=new Set,i=[];function o(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var i=e.get(t);i&&o(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||o(t)})),i}var Ct={placement:"bottom",modifiers:[],strategy:"absolute"};function Tt(){for(var t=arguments.length,e=new Array(t),n=0;nMt.has(t)&&Mt.get(t).get(e)||null,remove(t,e){if(!Mt.has(t))return;const n=Mt.get(t);n.delete(e),0===n.size&&Mt.delete(t)}};const Nt="transitionend",It=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),Ft=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Bt=t=>Ft(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(It(t)):null,Ht=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Ht(t.parentNode):null},$t=()=>{},qt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Rt=[],zt=()=>"rtl"===document.documentElement.dir,Wt=t=>{var e;e=()=>{const e=qt();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=()=>(e.fn[n]=i,t.jQueryInterface)}},"loading"===document.readyState?(Rt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Rt)t()})),Rt.push(e)):e()},Vt=function(t){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;return"function"==typeof t?t(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):e},Ut=function(t,e){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Vt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),o=Number.parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let i=!1;const o=n=>{let{target:r}=n;r===e&&(i=!0,e.removeEventListener(Nt,o),Vt(t))};e.addEventListener(Nt,o),setTimeout((()=>{i||e.dispatchEvent(new Event(Nt))}),n)},Yt=/[^.]*(?=\..*)\.|.*/,Kt=/\..*/,Qt=/::\d+$/,Gt={};let Jt=1;const Xt={mouseenter:"mouseover",mouseleave:"mouseout"},Zt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function te(t,e){return e&&`${e}::${Jt++}`||t.uidEvent||Jt++}function ee(t){const e=te(t);return t.uidEvent=e,Gt[e]=Gt[e]||{},Gt[e]}function ne(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===n))}function ie(t,e,n){const i="string"==typeof e,o=i?n:e||n;let r=ae(t);return Zt.has(r)||(r=t),[i,o,r]}function oe(t,e,n,i,o){if("string"!=typeof e||!t)return;let[r,s,a]=ie(e,n,i);if(e in Xt){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s=t(s)}const l=ee(t),c=l[a]||(l[a]={}),u=ne(c,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=te(s,e.replace(Yt,"")),d=r?function(t,e,n){return function i(o){const r=t.querySelectorAll(e);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return ce(o,{delegateTarget:s}),i.oneOff&&le.off(t,o.type,e,n),n.apply(s,[o])}}(t,n,s):function(t,e){return function n(i){return ce(i,{delegateTarget:t}),n.oneOff&&le.off(t,i.type,e),e.apply(t,[i])}}(t,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,c[f]=d,t.addEventListener(a,d,r)}function re(t,e,n,i,o){const r=ne(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}function se(t,e,n,i){const o=e[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&re(t,e,n,s.callable,s.delegationSelector)}function ae(t){return t=t.replace(Kt,""),Xt[t]||t}const le={on(t,e,n,i){oe(t,e,n,i,!1)},one(t,e,n,i){oe(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[o,r,s]=ie(e,n,i),a=s!==e,l=ee(t),c=l[s]||{},u=e.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(l))se(t,l,n,e.slice(1));for(const[n,i]of Object.entries(c)){const o=n.replace(Qt,"");a&&!e.includes(o)||re(t,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;re(t,l,s,r,o?n:null)}},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=qt();let o=null,r=!0,s=!0,a=!1;e!==ae(e)&&i&&(o=i.Event(e,n),i(t).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=ce(new Event(e,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&t.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function ce(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(e))try{t[n]=i}catch{Object.defineProperty(t,n,{configurable:!0,get:()=>i})}return t}function ue(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function fe(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const de={setDataAttribute(t,e,n){t.setAttribute(`data-bs-${fe(e)}`,n)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${fe(e)}`)},getDataAttributes(t){if(!t)return{};const e={},n=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=ue(t.dataset[i])}return e},getDataAttribute:(t,e)=>ue(t.getAttribute(`data-bs-${fe(e)}`))};class pe{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=Ft(e)?de.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Ft(e)?de.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(e)){const e=t[i],r=Ft(e)?"element":null==(n=e)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class he extends pe{constructor(t,e){super(),(t=Bt(t))&&(this._element=t,this._config=this._getConfig(e),Pt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Pt.remove(this._element,this.constructor.DATA_KEY),le.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e){Ut(t,e,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Pt.get(Bt(t),this.DATA_KEY)}static getOrCreateInstance(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ge=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),be=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,ve=(t,e)=>{const n=t.nodeName.toLowerCase();return e.includes(n)?!ge.has(n)||Boolean(be.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(n)))};const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),e=n&&"#"!==n?n.trim():null}return e?e.split(",").map((t=>It(t))).join(","):null},_e={find(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(e,t)},children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const n=[];let i=t.parentNode.closest(e);for(;i;)n.push(i),i=i.parentNode.closest(e);return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!(t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")))(t)&&(t=>{if(!Ft(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),n=t.closest("details:not([open])");if(!n)return e;if(n!==t){const e=t.closest("summary");if(e&&e.parentNode!==n)return!1;if(null===e)return!1}return e})(t)))},getSelectorFromElement(t){const e=ye(t);return e&&_e.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?_e.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?_e.find(e):[]}},we={allowList:me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ee={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ae={entry:"(string|element|function|null)",selector:"(string|element)"};class xe extends pe{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return we}static get DefaultType(){return Ee}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,n]of Object.entries(this._config.content))this._setContent(t,n,e);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},Ae)}_setContent(t,e,n){const i=_e.findOne(n,t);i&&((e=this._resolvePossibleFunction(e))?Ft(e)?this._putElementInTemplate(Bt(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const t of o){const n=t.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){t.remove();continue}const i=[].concat(...t.attributes),o=[].concat(e["*"]||[],e[n]||[]);for(const e of i)ve(e,o)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Vt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Oe=new Set(["sanitize","allowList","sanitizeFn"]),Ce="fade",Te="show",Le=".tooltip-inner",Se=".modal",je="hide.bs.modal",De="hover",ke="focus",Me={AUTO:"auto",TOP:"top",RIGHT:zt()?"left":"right",BOTTOM:"bottom",LEFT:zt()?"right":"left"},Pe={allowList:me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Ne={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Ie extends he{constructor(t,e){if(void 0===kt)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pe}static get DefaultType(){return Ne}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),le.off(this._element.closest(Se),je,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=le.trigger(this._element,this.constructor.eventName("show")),e=(Ht(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),le.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))le.on(t,"mouseover",$t);this._queueCallback((()=>{le.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(le.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))le.off(t,"mouseover",$t);this._activeTrigger.click=!1,this._activeTrigger[ke]=!1,this._activeTrigger[De]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),le.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new xe({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Le]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=Vt(this._config.placement,[this,t,this._element]),n=Me[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Vt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Vt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)le.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===De?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=e===De?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");le.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?ke:De]=!0,e._enter()})),le.on(this._element,n,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?ke:De]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},le.on(this._element.closest(Se),je,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=de.getDataAttributes(this._element);for(const t of Object.keys(e))Oe.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Bt(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,n]of Object.entries(this._config))this.constructor.Default[e]!==n&&(t[e]=n);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Ie.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Wt(Ie);const Fe=document.getElementById("mode-toggle");function Be(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const He="sidebar-display";class $e{static toggle(){!1===$e.isExpanded?document.body.setAttribute(He,""):document.body.removeAttribute(He),$e.isExpanded=!$e.isExpanded}}Be($e,"isExpanded",!1);const qe=document.getElementById("sidebar-trigger"),Re=document.getElementById("search-trigger"),ze=document.getElementById("search-cancel"),We=document.querySelectorAll("#main-wrapper>.container>.row"),Ve=document.getElementById("topbar-title"),Ue=document.getElementById("search"),Ye=document.getElementById("search-result-wrapper"),Ke=document.getElementById("search-results"),Qe=document.getElementById("search-input"),Ge=document.getElementById("search-hints"),Je="d-block",Xe="d-none",Ze="input-focus",tn="d-flex";class en{static on(){qe.classList.add(Xe),Ve.classList.add(Xe),Re.classList.add(Xe),Ue.classList.add(tn),ze.classList.add(Je)}static off(){ze.classList.remove(Je),Ue.classList.remove(tn),qe.classList.remove(Xe),Ve.classList.remove(Xe),Re.classList.remove(Xe)}}class nn{static on(){this.resultVisible||(Ye.classList.remove(Xe),We.forEach((t=>{t.classList.add(Xe)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Ke.innerHTML="",Ge.classList.contains(Xe)&&Ge.classList.remove(Xe),Ye.classList.add(Xe),We.forEach((t=>{t.classList.remove(Xe)})),Qe.textContent="",this.resultVisible=!1)}}function on(){return ze.classList.contains(Je)}Be(nn,"resultVisible",!1);const rn=".bs.collapse",sn=`show${rn}`,an=`shown${rn}`,ln=`hide${rn}`,cn=`hidden${rn}`,un=`click${rn}.data-api`,fn="show",dn="collapse",pn="collapsing",hn=`:scope .${dn} .${dn}`,mn='[data-bs-toggle="collapse"]',gn={parent:null,toggle:!0},bn={parent:"(null|element)",toggle:"boolean"};class vn extends he{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=_e.find(mn);for(const t of n){const e=_e.getSelectorFromElement(t),n=_e.find(e).filter((t=>t===this._element));null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gn}static get DefaultType(){return bn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>vn.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(le.trigger(this._element,sn).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(dn),this._element.classList.add(pn),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn,fn),this._element.style[e]="",le.trigger(this._element,an)}),this._element,!0),this._element.style[e]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(le.trigger(this._element,ln).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,this._element.offsetHeight,this._element.classList.add(pn),this._element.classList.remove(dn,fn);for(const t of this._triggerArray){const e=_e.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(pn),this._element.classList.add(dn),le.trigger(this._element,cn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(fn)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Bt(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(mn);for(const e of t){const t=_e.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=_e.find(hn,this._config.parent);return _e.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const n=vn.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}le.on(document,un,mn,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of _e.getMultipleElementsFromSelector(this))vn.getOrCreateInstance(t,{toggle:!1}).toggle()})),Wt(vn),document.getElementsByClassName("collapse");const yn=".code-header>button",_n="far fa-clipboard",wn="fas fa-check",En="timeout",An="data-title-succeed",xn="data-bs-original-title",On=2e3;function Cn(t){if(t.hasAttribute(En)){let e=t.getAttribute(En);if(Number(e)>Date.now())return!0}return!1}function Tn(t){t.setAttribute(En,Date.now()+On)}function Ln(t){t.removeAttribute(En)}function Sn(){const t=document.querySelectorAll(yn);if(0===t.length)return;const e=new ClipboardJS(yn,{target:t=>t.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...t].map((t=>new Ie(t,{placement:"left"}))),e.on("success",(t=>{const e=t.trigger;(t.clearSelection(),Cn(e))||(e.children[0].setAttribute("class",wn),function(t){const e=t.getAttribute(An);t.setAttribute(xn,e),Ie.getInstance(t).show()}(e),Tn(e),setTimeout((()=>{!function(t){Ie.getInstance(t).hide(),t.removeAttribute(xn)}(e),function(t){t.children[0].setAttribute("class",_n)}(e),Ln(e)}),On))}))}const jn="data-src",Dn="data-lqip",kn={SHIMMER:"shimmer",BLUR:"blur"};function Mn(t){this.parentElement.classList.remove(t)}function Pn(){this.complete&&(this.hasAttribute(Dn)?Mn.call(this,kn.BLUR):Mn.call(this,kn.SHIMMER))}function Nn(){const t=this.getAttribute(jn);this.setAttribute("src",encodeURI(t)),this.removeAttribute(jn)}const In=document.documentElement,Fn=".popup:not(.dark)",Bn=".popup:not(.light)";let Hn=Fn;class $n{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(t){return Number(t.getAttribute(this.attrTimestamp))}static getDateFormat(t){return t.getAttribute(this.attrDateFormat)}}!function(){const t=document.querySelectorAll("article img");if(0===t.length)return;t.forEach((t=>{t.addEventListener("load",Pn)})),document.querySelectorAll('article img[loading="lazy"]').forEach((t=>{t.complete&&Mn.call(t,kn.SHIMMER)}));const e=document.querySelectorAll(`article img[${Dn}="true"]`);e.length&&e.forEach((t=>{Nn.call(t)}))}(),document.querySelector("main h2, main h3")&&(tocbot.init({tocSelector:"#toc",contentSelector:".content",ignoreSelector:"[data-toc-skip]",headingSelector:"h2, h3, h4",orderedList:!1,scrollSmooth:!1}),document.getElementById("toc-wrapper").classList.remove("d-none")),function(){if(null===document.querySelector(".popup"))return;const t=!(null===document.querySelector(".popup.light")&&null===document.querySelector(".popup.dark"));(In.hasAttribute("data-mode")&&"dark"===In.getAttribute("data-mode")||!In.hasAttribute("data-mode")&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&(Hn=Bn);let e=GLightbox({selector:`${Hn}`});if(t&&document.getElementById("mode-toggle")){let t=null;window.addEventListener("message",(n=>{n.source===window&&n.data&&n.data.direction===ModeToggle.ID&&function(t,e){Hn=Hn===Fn?Bn:Fn,null===e&&(e=GLightbox({selector:`${Hn}`})),[t,e]=[e,t]}(e,t)}))}}(),Fe&&Fe.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",$e.toggle),document.getElementById("mask").addEventListener("click",$e.toggle),dayjs.locale($n.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll(`[${$n.attrTimestamp}]`).forEach((t=>{const e=dayjs.unix($n.getTimestamp(t)),n=e.format($n.getDateFormat(t));if(t.textContent=n,t.removeAttribute($n.attrTimestamp),t.removeAttribute($n.attrDateFormat),t.hasAttribute("data-bs-toggle")&&"tooltip"===t.getAttribute("data-bs-toggle")){const n=e.format("llll");t.setAttribute("data-bs-title",n)}})),Sn(),function(){const t=document.getElementById("copy-link");null!==t&&(t.addEventListener("click",(t=>{const e=t.target;Cn(e)||navigator.clipboard.writeText(window.location.href).then((()=>{const t=e.getAttribute(xn),n=e.getAttribute(An);e.setAttribute(xn,n),Ie.getInstance(e).show(),Tn(e),setTimeout((()=>{e.setAttribute(xn,t),Ln(e)}),On)}))})),t.addEventListener("mouseleave",(t=>{Ie.getInstance(t.target).hide()})))}(),Re.addEventListener("click",(()=>{en.on(),nn.on(),Qe.focus()})),ze.addEventListener("click",(()=>{en.off(),nn.off()})),Qe.addEventListener("focus",(()=>{Ue.classList.add(Ze)})),Qe.addEventListener("focusout",(()=>{Ue.classList.remove(Ze)})),Qe.addEventListener("input",(()=>{""===Qe.value?on()?Ge.classList.remove(Xe):nn.off():(nn.on(),on()&&Ge.classList.add(Xe))})),function(){const t=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?t.classList.add("show"):t.classList.remove("show")})),t.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new Ie(t)))}(); diff --git a/categories/english/index.html b/categories/english/index.html new file mode 100644 index 0000000..6b92285 --- /dev/null +++ b/categories/english/index.html @@ -0,0 +1,2111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + English | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + English + 18 +

+ + +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/favorites/index.html b/categories/favorites/index.html new file mode 100644 index 0000000..8c9aaca --- /dev/null +++ b/categories/favorites/index.html @@ -0,0 +1,1703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Favorites | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/français/index.html b/categories/français/index.html new file mode 100644 index 0000000..0ba9df2 --- /dev/null +++ b/categories/français/index.html @@ -0,0 +1,1895 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Français | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + Français + 9 +

+ + +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/gallery/index.html b/categories/gallery/index.html new file mode 100644 index 0000000..e9a200f --- /dev/null +++ b/categories/gallery/index.html @@ -0,0 +1,1727 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gallery | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..0325c9b --- /dev/null +++ b/categories/index.html @@ -0,0 +1,1946 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Categories | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Categories +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + +

+ Categories +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + English + + + + + + 4 + + categories + , + + + 18 + + + posts + + + + + + + + + + +
+ + + + +
+
    + +
  • + + + + Favorites + + + + 1 + + + post + + +
  • + +
  • + + + + Gallery + + + + 2 + + + posts + + +
  • + +
  • + + + + Poetry + + + + 7 + + + posts + + +
  • + +
  • + + + + Reflections + + + + 8 + + + posts + + +
  • + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + Français + + + + + + 3 + + categories + , + + + 9 + + + posts + + + + + + + + + + +
+ + + + +
+
    + +
  • + + + + Nouvelles + + + + 1 + + + post + + +
  • + +
  • + + + + Poèmes + + + + 4 + + + posts + + +
  • + +
  • + + + + Réflexions + + + + 4 + + + posts + + +
  • + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/nouvelles/index.html b/categories/nouvelles/index.html new file mode 100644 index 0000000..ff77ae7 --- /dev/null +++ b/categories/nouvelles/index.html @@ -0,0 +1,1703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nouvelles | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + Nouvelles + 1 +

+ + +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/poetry/index.html b/categories/poetry/index.html new file mode 100644 index 0000000..9d03773 --- /dev/null +++ b/categories/poetry/index.html @@ -0,0 +1,1847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Poetry | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/poèmes/index.html b/categories/poèmes/index.html new file mode 100644 index 0000000..4f544a7 --- /dev/null +++ b/categories/poèmes/index.html @@ -0,0 +1,1775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Poèmes | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/reflections/index.html b/categories/reflections/index.html new file mode 100644 index 0000000..8462561 --- /dev/null +++ b/categories/reflections/index.html @@ -0,0 +1,1871 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflections | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + Reflections + 8 +

+ + +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/réflexions/index.html b/categories/réflexions/index.html new file mode 100644 index 0000000..fb16304 --- /dev/null +++ b/categories/réflexions/index.html @@ -0,0 +1,1775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Réflexions | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Category +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/commons/avatar.jpg b/commons/avatar.jpg new file mode 100644 index 0000000..52a7598 Binary files /dev/null and b/commons/avatar.jpg differ diff --git a/commons/logo.png b/commons/logo.png new file mode 100644 index 0000000..ae03147 Binary files /dev/null and b/commons/logo.png differ diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..2c79559 --- /dev/null +++ b/feed.xml @@ -0,0 +1,173 @@ + + + + https://bookshelf.thequinn.fr/ + Quinn's Bookshelf + A blog about LGBTQ+ reflections, gender, mental health and writing. + 2024-09-08T15:58:55+02:00 + + cookie + https://bookshelf.thequinn.fr/ + + + + Jekyll + © 2024 cookie + /assets/img/favicons/favicon.ico + /assets/img/favicons/favicon-96x96.png + + + + + Writing like Colleen Hoover, what makes a great opening line, and Nanowrimo's stance on AI + + 2024-06-08T19:55:00+02:00 + + 2024-06-08T19:55:00+02:00 + + https://bookshelf.thequinn.fr/posts/writing-like-colleen-hoover/ + + + cookie + + + + + + + + + + + I’ve wanted to share some favorites here for the longest time, but I either don’t take note of my favorites, or wait for so long to write about them that they’re not relevant to me anymore. I also don’t do it because I don’t see much value in just talking about stuff I’ve liked, but I have to try to stop overthinking it, so here we go I guess! + +Even though I haven’t written a lot of fiction her... + + + + + + Taylor Swift: le consumérisme au service du female gaze? + + 2024-06-08T19:55:00+02:00 + + 2024-06-08T19:55:00+02:00 + + https://bookshelf.thequinn.fr/posts/eras-tour/ + + + cookie + + + + + + + + + + + Début mai, j’ai eu la chance d’assister à l’un des 4 concerts donnés par Taylor Swift à Paris dans le cadre de son Eras Tour. Jupes à paillettes, santiags roses, longues robes blanches, il est rare de voir autant de fans faire un effort vestimentaire aussi coordonné pour un concert, un peu comme si c’était une Pride principalement consacrée aux femmes hétérosexuelles. Le concept même du Eras To... + + + + + + As an artist, should I be on social media? + + 2024-05-01T19:39:00+02:00 + + 2024-05-01T19:39:00+02:00 + + https://bookshelf.thequinn.fr/posts/should-i-be-on-social-media/ + + + cookie + + + + + + + + + + + Social media seems inescapable today, especially if you want to build an audience as an artist. But, knowing all the problems caused by social media platforms, is it ethical for me to use them? And if not, then how else can I build an audience as a writer? + + + + + + Enterrements + + 2024-03-11T19:38:00+01:00 + + 2024-03-11T19:38:00+01:00 + + https://bookshelf.thequinn.fr/posts/enterrements/ + + + cookie + + + + + + + + + + + Raphaël a deux ensembles de costume dans son placard, un bleu marine pour les mariages, et un noir pour les enterrements. Ce matin, il sort le noir et le pose sur la chaise qui est à côté de son lit, rendue invisible par la couche de vêtements à moitié portés, ni propres, ni sales, qu’il y dépose tous les soirs. + +Il soupire en se regardant dans le miroir, et passe machinalement sa main dans ses... + + + + + + Des mots sur un muret + + 2024-02-11T19:44:00+01:00 + + 2024-02-11T19:44:00+01:00 + + https://bookshelf.thequinn.fr/posts/des-mots-sur-un-muret/ + + + cookie + + + + + + + + + + + Il y avait un poème +Taggué sur un muret +C’était un endroit qu’on oublie +Laissé à l’abandon + +Tous les matins +Mon bus passait devant +Et je tendais le cou, et je guettais +Mais personne d’autre ne regardait + +J’ai oublié ce qu’il disait +Cela fait longtemps que je n’ai pas pris ce chemin +Je me souviens qu’il parlait de la vie +Qu’on ne mourrait qu’une fois + +Le tag n’était pas très joli +Je crois que la... + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..b1359cb --- /dev/null +++ b/index.html @@ -0,0 +1,2653 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Quinn's Bookshelf +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/norobots/index.html b/norobots/index.html new file mode 100644 index 0000000..8202826 --- /dev/null +++ b/norobots/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/page2/index.html b/page2/index.html new file mode 100644 index 0000000..5e1b88e --- /dev/null +++ b/page2/index.html @@ -0,0 +1,2493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Quinn's Bookshelf +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/page3/index.html b/page3/index.html new file mode 100644 index 0000000..646f80e --- /dev/null +++ b/page3/index.html @@ -0,0 +1,2483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Quinn's Bookshelf +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/a-difficult-child/index.html b/posts/a-difficult-child/index.html new file mode 100644 index 0000000..74e8607 --- /dev/null +++ b/posts/a-difficult-child/index.html @@ -0,0 +1,2362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A difficult child | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

A difficult child

+ + + +
+ +
+

The other day, I bought some queer books, and I suddenly felt invincible. I wanted to shout how proud I was on the street while walking home. My heart burst out from love and kinship for my fellow trans and queer friends, and I realised once again that I don’t need to define myself and that I can be whoever I want to be. I realised the power and the potential there is in building your own identity, the rebellion even, in not only escaping the standards, but also refusing to put a word, a label on what you are.

+ +

If you have an idea of what it’s like to be confused regarding your own gender identity, you will probably understand my identity without me expressing it. If you don’t, well I don’t feel the need to put a fancy, easy little word dismissing the complexities of my identity, just for it to be more palatable to you. I am trans and I am queer, but I refuse to define myself further just so society can classify me and comprehend me and confine me to something they are comfortable with.

+ +

I didn’t care about what anyone else thought. I felt powerful, I felt like I had finally found my place.

+ +

My parents made me feel I was a difficult child

+ +

Is there really a child that is not difficult?
+A child who doesn’t make any noise and doesn’t make a mess and never cries and doesn’t tear the paper napkins into a thousand little pieces of paper and doesn’t throw those little flakes to the ceiling because look it’s snowing?

+ +

I tried to behave
+To be a good child, a nice child
+To make myself small and silent
+Paper thin and transparent
+Invisible
+But that wasn’t fun
+I couldn’t exist within those constraints
+I had to make noise, and be free

+ +

Now, along the way, I have finally understood why they wanted me to behave
+I know it’s the only power they have over us, to keep us in line
+The words and the looks and the judgements

+ +

They lost their grip on me
+When I realised their eyes were just eyes and their hands were just hands
+And I could escape them

+ +

The second I stopped listening
+I was free

+ +

Take their power away like I did
+It doesn’t have to be big
+It doesn’t have to be bold
+Existing is the first step

+ +

Take their power by writing your words
+Don’t let yourself be confined
+Make noise
+Turn your body into whatever you want it to be
+Find your own name and shout it from the rooftops
+Show your colours and make your own kind of music
+Don’t let them mold you into something you’re not
+Be a difficult child

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/a-guest/index.html b/posts/a-guest/index.html new file mode 100644 index 0000000..f0a3d42 --- /dev/null +++ b/posts/a-guest/index.html @@ -0,0 +1,2462 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A guest in your own house | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

A guest in your own house

+ +

A poem about feeling as though you don't have control over the conditions of your life, your own body

+ + + +
+ +
+

I feel as uneasy as a guest, not knowing where to stand, or where to hang my coat, or why on Earth I was invited
+Too uncomfortable to make any noise, create any ripples, in a place that ain’t mine
+Having trouble remembering that I’m welcome, and this is my own body
+Surely if I say anything, express any needs, show any sign of discomfort, I will be kicked out

+ +

Rude
+Disrespectful.
+Surely I will break the harmony of the place, and forever be banned
+But where else could I go?
+This is my only home.

+ +

I don’t like how the room is arranged, but oh well, what can I do? It’s not like it is my place

+ +

Oh but it is

+ +

But what if I decorate it to my taste, and my guests don’t like it
+What if there is nowhere for them to sit?
+What if they get offended, what if I break the rules?
+Will I have enough time to take out the decor, if they come unannounced?

+ +

Will I ever feel at home here. if I never stop treating myself as a guest?

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/a-warm-memory/index.html b/posts/a-warm-memory/index.html new file mode 100644 index 0000000..f9e20bc --- /dev/null +++ b/posts/a-warm-memory/index.html @@ -0,0 +1,2395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + There's nothing colder than a warm memory | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

There's nothing colder than a warm memory

+ + + +
+ +
+

Image

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/after-the-party/index.html b/posts/after-the-party/index.html new file mode 100644 index 0000000..63a71c9 --- /dev/null +++ b/posts/after-the-party/index.html @@ -0,0 +1,2590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + After the party | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

After the party

+ + + +
+ +
+

A picture of an interior, with the text: Left alone after the party, Among scattered glasses and dirty dishes

+ +

A picture of the outside of a house, with the text, Music and conversation still ringing in your ears, But it only makes the silence louder

+ +

Someone left the window open while smoking on the balcony, you didn't see it then, but the smell lingers now

+ +

And you can see the sheer white curtains floating in the cold air. Like a ghost

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/coupe-menstruelle/index.html b/posts/coupe-menstruelle/index.html new file mode 100644 index 0000000..be85c41 --- /dev/null +++ b/posts/coupe-menstruelle/index.html @@ -0,0 +1,2347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ce que porter une coupe menstruelle m'a appris en tant que personne non binaire | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Ce que porter une coupe menstruelle m'a appris en tant que personne non binaire

+ + + +
+ +
+

Note: Tout au long de cet article, je vais parler de règles et de cycles menstruels. Ces choses sont traditionnellement associées à la féminité dans notre société. Elles sont vécues en majorité par des femmes, mais pas uniquement par des femmes, ni par toutes les femmes.

+ +

Je vais parfois utiliser le mot “femmes” pour désigner les personnes opprimées au sujet de leurs règles, car il s’agit davantage d’une oppression qui vise le groupe social des femmes que d’une oppression visant les personnes trans ou non binaires qui sont plutôt un impensé dans ce contexte.

+ +

Il ne faut pas oublier qu’il y a une spécificité dans le rapport des personnes trans et non binaires à leurs règles. Cette situation est un mélange de dysphorie de genre (c’est à dire la non concordance entre la représentation mentale que l’on a de son corps et la réalité biologique de notre corps) et l’invisibilisation et l’exclusion créées par la transphobie et l’ignorance.

+ +

Nous avons toustes à gagner à nous libérer d’une définition essentialiste et binaire du genre. Aucune personne de bonne foi ne peut se prétendre féministe et également définir le statut de femme comme dépendant de la capacité ou non à porter des enfants.

+ +

Mon rapport aux règles

+ +

Dès le début de ma puberté, j’ai voulu ignorer mes règles. J’ai longtemps associé les règles à l’infériorité de mon corps face au corps masculin. Pour moi, avoir mes règles, c’était avoir un corps sale, faible, incontrôlable, aux émotions imprévisibles dictées par des hormones. Un corps où la matière domine sur l’esprit, et, pire encore pour moi, un corps qui fait qu’on me rappelle sans cesse la perception que les autres ont de mon genre.

+ +

J’ai eu mes règles assez tard, et je les ai toujours attendues comme la chose qui me ferait enfin me sentir “femme”, qui me donnerait la pièce qui me manquait pour vraiment me sentir comme une “vraie femme”. Malheureusement ou heureusement, cette sensation n’est jamais arrivée, règles ou pas.

+ +

Ignorer l’existence de mes règles et faire comme si elles n’existaient pas était pour moi la meilleure manière de les gérer. Mon objectif était finalement de fonctionner selon l’idéal masculin de la société, selon un cycle de 24 heures et non pas de 28 jours. Si j’étais plus irritable, moins productif.ve ou moins fort.e à ce moment de mon cycle, je devais simplement redoubler d’effort pour être à la hauteur de ce que la société attendait de moi. Je ne pouvais pas me rabaisser à être limité.e par mon corps, car c’était donner raison aux clichés et aux moqueries véhiculés par les hommes autour de moi.

+ +

J’ai donc passé plusieurs années à “subir” mes règles sans jamais y être préparé.e psychologiquement car je ne suivais pas mon cycle et ne pouvais donc pas prévoir leur prochaine apparition. Je me promenais toujours avec des serviettes périodiques sur moi, je serrais les dents et je priais pour ne pas tâcher mon pantalon et me taper la honte devant toute la classe. Je marchais en canard avec l’impression de porter une couche, et je plissais le nez face à l’odeur de ma serviette à la fin de la journée, avant de la faire disparaître hors de ma vue aussi vite que possible, et je la remplaçais par une autre qui m’irritait et m’asséchait encore plus que la précédente. En bref, avoir mes règles, ça n’était vraiment pas ma chose préférée.

+ +

Mais alors, qu’est-ce qui a changé ? Le déclencheur pour moi, ça a vraiment été le podcast I weigh, avec Maisie Hill, Period Power. Je vous invite à l’écouter en entier, parce qu’il m’a permis de sortir d’une décennie complète passée à ignorer le fonctionnement de mon propre corps. Éviter d’en entendre parler et d’en parler n’apporte finalement rien, et ne fait qu’entretenir l’ignorance et la honte. Mon corps a un cycle, et prétendre qu’il n’en a pas ne me rend pas plus fort.e ou productif.ve. Au contraire, cela m’empêche d’écouter mon corps, de connaître mon propre état de santé et de subvenir correctement à mes besoins.

+ +

Faire semblant que son corps ne fonctionne pas selon un cycle menstruel, c’est comme vouloir gagner des sprints quand on n’a toujours couru que des marathons. Notre corps ne fonctionne simplement pas comme ça, et ce n’est pas une mauvaise chose, c’est simplement différent. Contrairement à ce que le capitalisme veut nous faire croire, nos corps ne sont pas des machines qui doivent toujours donner le même output pour le même input.

+ +

À partir de là, j’ai commencé à suivre mes règles avec l’application Clue, qui a l’avantage d’avoir l’air de bien protéger nos données et de proposer un langage et des ressources très inclusives. J’avais l’avantage de ne plus être pris.e par surprise par mes règles, et également de me rendre compte que les variations de mon humeur et de ma libido étaient en fait simplement explicables par les moments de mon cycle où je me trouvais. J’ai enfin appris à voir mes règles comme un signe de bonne santé de mon corps, et à ne pas avoir les mêmes attentes pour moi-même à cette période.

+ +

Pourquoi la cup ?

+ +

La cup ou coupe menstruelle est un dispositif en silicone que l’on place dans le vagin afin de recueillir le sang des règles tout au long de la journée ou de la nuit. Ses principaux avantages face aux protections menstruelles jetables sont son prix, et son impact moindre sur l’environnement et la santé. Je vous laisserai vous renseigner par vous-mêmes sur ces sujets.

+ +

Mais ce ne sont pas tant les avantages pratiques qui m’ont donné envie d’écrire cet article. C’est la réflexion que cela a alimenté en moi vis à vis du patriarcat, du capitalisme et de mon rapport à mon corps, à mon vagin et à mes règles.

+ +

Méconnaissance, peur et dégoût du corps féminin

+ +

D’abord, l’utilisation d’une cup m’a fait comprendre à quel point j’avais peur de mon corps. La première chose à laquelle j’ai pensé, et la première chose qu’ont évoquée certaines de mes connaissances quand je leur ai partagé mon expérience, c’est que “Moi ça me fait peur et je n’ose pas essayer”, ou bien “Je n’en serais pas capable”. Moi-même, avant d’essayer la cup, je n’avais jamais utilisé de tampon. C’était donc un grand saut vers l’inconnu que d’utiliser une cup (même si peut-être pas si grand, mais nous en reparlerons plus tard). Et finalement, c’est normal que nous ressentions ça: le corps des femmes est depuis toujours considéré comme compliqué et incompréhensible, longtemps exclu des études médicales pour ces mêmes raisons. La qualité des connaissances sur le fonctionnement du système reproductif féminin est encore perfectible, et des maladies comme l’endométriose étaient encore méconnues il y a quelques années.

+ +

Je vis dans un monde où on m’a appris à 12 ans comment mettre un préservatif sur un pénis, mais où je ne savais pas comment insérer un tampon ou une coupe menstruelle dans mon propre vagin à 24 ans. Et je ne suis pas la seule personne dans cette situation: Holly Gabrielle dans sa vidéo sur sa première expérience avec une coupe menstruelle explique que malgré ses études en biologie, elle ne connait absolument pas son anatomie.

+ +

Où se situe le vagin ? Quelle taille fait-il ? Y a-t-il un risque que ma cup se retrouve aspirée à jamais dans les limbes de mon utérus ? Ce sont de vraies questions dont les réponses ne sont pas innées. Nous avons besoin de cette éducation sur nos propres corps.

+ +

Et l’origine de cette méconnaissance et son utilité pour le patriarcat sont évidents: Knowledge is power, et nous maintenir dans l’ignorance, c’est nous maintenir dans une situation où contrôler nos corps est simple, où nous ne pouvons que difficilement reconnaître des violences ou même juger de la qualité d’un rapport sexuel. Les personnes avec un vagin ne peuvent qu’être passives, elles ne sont que le réceptacle immobile des vaillants spermatozoides qui se font la course.

+ +

Le vagin lui-même est vu comme un simple tuyau complètement passif et immobile. Pourtant, il possède des muscles, des muscles que l’on peut consciemment contrôler. Ce n’est pas particulièrement mis en avant quand on parle d’anatomie. Et ce sont ces mêmes mucles qui permettent justement de sortir plus facilement la cup le moment venu.

+ +

La vulve, le vagin et les règles sont également considérés comme sales. L’appellation même de “serviette hygiénique” que l’on entend parfois entretient cet imaginaire de la saleté. Tout comme la création des complexes autour des poils, des odeurs de transpiration, etc, cela permet de vendre plus de produits, pour s’épiler, se laver, être dans la norme jusque depuis l’intérieur de notre culotte. Et en effet, les serviettes et tampons qui font macérer le sang à l’air pendant plusieurs heures ne sont pas ce qu’il y a de plus agréable. Au contraire, la cup évite ces problèmes puisque le sang attend sagement à l’intérieur du vagin qu’on vienne le vider. Ce sang n’est pas sale. Il n’y a aucune raison d’en être dégoûté.e.

+ +

Quand on ajoute à cet environnement déjà peu accueillant de la dysphorie, qui fait que j’ai encore moins envie d’interagir avec cette partie de mon corps, on obtient un cocktail qui explique une méconnaissance et un dégoût complet de mon propre corps. Insérer une cup dans mon vagin deux fois par jour semble peut-être contre-intuitif, et pourtant c’est actuellement la solution que je trouve la plus agréable. Et pourquoi donc ?

+ +

Découverte de soi et confiance en son corps

+ +

Dans la vidéo de Holly Gabrielle que j’évoquais précédemment, elle explique n’avoir jamais eu d’expérience sexuelle avec une autre personne et n’avoir jamais non plus exploré sa sexualité en solo. C’est donc pour elle une découverte totale de son propre corps.

+ +

Je ne suis pas dans un cas aussi extrême, mais il est vrai qu’à une époque, je connaissais moins bien mon propre vagin que maon partenaire. Et, honnêtement, je trouve ça triste. Connaître son propre corps, comprendre son fonctionnement, le voir évoluer, c’est pour moi la clé qui permet une meilleure estime de soi et un rapport apaisé à son corps dans un monde qui veut nous créer toujours plus de complexes. Comprendre cette partie de mon corps m’aide, si ce n’est à l’accepter, au moins à ne pas en avoir peur. Pour moi, c’est passé non seulement par l’exploration de ma sexualité seul.e, mais aussi par l’utilisation d’une cup, et je sais qu’avec l’habitude je n’aurai plus du tout peur, ce qui est très empouvoirant pour moi.

+ +

Pouvoir observer mon propre sang, sa quantité, son aspect, me permet également de surveiller mon propre état de santé. Et la cup me permet d’oublier que j’ai mes règles pendant la plus grande partie de la journée, ce qui allège une partie de ma dysphorie.

+ +

Mon vagin n’est pas une partie sale, dangereuse ou incompréhensible de mon corps qui aurait besoin d’être domptée. À mon rythme, je peux apprendre à le connaître.

+ +

Pour aller plus loin

+ +

Je recommande à toutes les personnes qui ont leurs règles de tester la coupe menstruelle si iels s’y sentent prêt.e.s. C’est une occasion unique d’apprendre à mieux se connaître, même si vous décidez que ce n’est pas pour vous à long terme.

+ +

La chaîne Period Nirvana qui propose des vidéos très complètes sur tous les produits menstruels réutilisables, ainsi que tout un tas de conseils pratiques et de démonstrations qui m’ont été bien utiles dans ma préparation pour la première utilisation. L’important est d’aller à son rythme et d’écouter son corps.

+ +

Les autres ressources que j’ai mentionnées:

+ + +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/des-mots-sur-un-muret/index.html b/posts/des-mots-sur-un-muret/index.html new file mode 100644 index 0000000..8098ea7 --- /dev/null +++ b/posts/des-mots-sur-un-muret/index.html @@ -0,0 +1,2363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Des mots sur un muret | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Des mots sur un muret

+ + + +
+ +
+

Il y avait un poème
+Taggué sur un muret
+C’était un endroit qu’on oublie
+Laissé à l’abandon

+ +

Tous les matins
+Mon bus passait devant
+Et je tendais le cou, et je guettais
+Mais personne d’autre ne regardait

+ +

J’ai oublié ce qu’il disait
+Cela fait longtemps que je n’ai pas pris ce chemin
+Je me souviens qu’il parlait de la vie
+Qu’on ne mourrait qu’une fois

+ +

Le tag n’était pas très joli
+Je crois que la peinture coulait
+Mais ça n’a pas d’importance
+Il suffisait à me laisser gober les mots, absorber les idées

+ +

Maintenant que je suis revenu chez moi
+Je pourrais aller le retouver
+Mais qui sait s’il a été effacé
+Après toutes ces années ?

+ +

Qui sait sur quel muret il était?

+ +

L’endroit s’est envolé
+Il ne me reste que le chemin pour y aller
+Et peut-être qu’un jour ce sera mon tour
+De lui répondre, avec d’autres mots sur un muret

+ +

J’ai écrit ce poème quand je suis revenu dans ma ville natale après plusieurs années d’absence. Ce muret était un élément qui m’avait marqué quand je passais devant pendant mes études. J’ai retrouvé dans un carnet la citation qui y était écrite: Il s’agit d’un extrait d’ Autoportrait d’Édouard Levé :

+ +
+

Je ne pourrai dire qu’une fois sans mentir “je meurs”. Le plus beau jour de ma vie est peut-être passé.

+
+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/enterrements/index.html b/posts/enterrements/index.html new file mode 100644 index 0000000..ec6f2da --- /dev/null +++ b/posts/enterrements/index.html @@ -0,0 +1,2431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Enterrements | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Enterrements

+ + + +
+ +
+

Raphaël a deux ensembles de costume dans son placard, un bleu marine pour les mariages, et un noir pour les enterrements. Ce matin, il sort le noir et le pose sur la chaise qui est à côté de son lit, rendue invisible par la couche de vêtements à moitié portés, ni propres, ni sales, qu’il y dépose tous les soirs.

+ +

Il soupire en se regardant dans le miroir, et passe machinalement sa main dans ses cheveux bruns, entre lesquels commencent à apparaître quelques cheveux gris, d’un geste qui le rassure mais ne change rien à sa coiffure. Il commence à retirer la chemise du cintre quand son teléphone se met à vibrer.

+ +

Nathalie : Maman a invité Astrid, je n’ai pas pu l’en empêcher, désolée. Tu sais comment elle est.

+ +

Il répond par un simple “Ok”. Il sait que sa soeur ne se rend jamais compte qu’il répond “Ok” dans le but de couper court à la conversation, et qu’elle ne s’en formalisera pas. Il aimerait qu’elle s’en rende compte, parfois, quand il n’a pas envie de lui parler mais qu’il n’ose pas le lui dire. Il se sent toujours obligé de répondre, alors il dit “Ok”. Cette fois non plus, elle n’a pas compris.

+ +

Nathalie : Est-ce que tu l’as revue depuis le divorce ?

+ +

Il laisse retomber le téléphone, et boutonne sa chemise en soupirant. Il tourne le regard vers le lit encore défait, et derrière lui la vue sur les toits de Paris. Il reste là sans bouger, les sourcils froncés comme s’il avait oublié ce qu’il était en train de faire. Et puis une voix l’appelle de la cuisine.

+ +

“Raphaël, tu dois partir à quelle heure ?”

+ +

Sami s’appuie sur l’embrasure de la porte, encore en caleçon, une tasse de café à la main.

+ +

“Dans 10 minutes, répond Raphaël. Mais je ne sais pas si j’ai envie d’y aller.”

+ +

Sami hausse les sourcils d’un air interrogateur.

+ +

“Apparemment, ma mère a invité Astrid.
+— Je savais bien qu’il y avait quelque chose, répond Sami.
+— En même temps, je pouvais m’y attendre, elle va toujours à l’église avec sa mère tous les dimanches, comme quand on était petits, et le divorce n’a rien changé à ça. Elle doit sûrement jubiler de pouvoir me faire ça, amener mon ex-femme à l’enterrement de mon père, c’est sa vengeance pour avoir brisé ses rêves de petite famille parfaite, j’imagine.”

+ +

Sami s’approche et le prend dans ses bras.

+ +

“Je suis désolé…”

+ +

Raphaël hausse les épaules.

+ +

“Ça n’a rien à voir avec toi.”

+ +

Les yeux de Raphaël brillent un peu, et il se détourne.

+ +

“Il faut que j’y aille.”

+ +
+ +

Raphaël aimerait qu’il pleuve, pour pouvoir rester seul à broyer du noir sous son parapluie, mais la météo n’est pas de cet avis. Il n’y a qu’un lourd ciel gris éclairé par trop de soleil, qui lui fait plisser les yeux. Il s’engouffre dans l’église et s’asseoit en prenant un air recueilli, espérant que cela suffira à tenir les autres à l’écart. Mais à peine quelque secondes plus tard, il entend la voix de sa mère résonner entre les hauts murs de pierre. Il n’a jamais compris pourquoi elle parle aussi fort, partout, mais ça l’énerve d’autant plus dans les églises, et même lui qui n’y croit plus depuis longtemps, il respecte ça, alors, pourquoi est-ce qu’elle n’en est pas capable ?

+ +

Après tout, elle n’y croit peut-être pas plus que lui. Déjà quand il était enfant, et qu’ils étaient assis, Raphaël, sa mère, la meilleure amie de sa mère, et sa fille Astrid de l’autre côté, elles passaient tout le sermon à discuter, à commenter la vie des autres, et la forme comme le fond donnaient envie à Raphaël d’être ailleurs. Mais il se laissait traîner sans rien dire à l’église, et sa mère aimait se vanter d’avoir un garçon sage aux mêmes personnes qu’elle passait le sermon à critiquer. Finalement, Raphaël ne s’étonnait pas qu’après l’avoir entraîné à l’église tous les dimanches pendant 18 ans, sa mère ait réussi à le faire se marier avec Astrid. Ni qu’elle se soit tenue entre eux ensuite, comme elle en avait pris l’habitude pendant toutes ces années. Mais le mariage ne lui avait pas donné le répit qu’il espérait.

+ +

Raphaël décide d’aller plus près de l’autel. Il ne reconnaît que trop tard la silhouette qui est assise au deuxième rang. Il s’apprête à se retourner en espérant qu’elle ne l’ait pas vu, quand Astrid se retourne. Quand leurs yeux se croisent, il n’y voit pas les émotions qu’il avait peur de voir, la colère, la douleur, le dégoût. Après tout ce temps, il y voit le même regard timide que lorsqu’ils étaient enfants. Le regard d’une amie. Et pour la première fois depuis le divorce, les mots réussissent finalement à sortir de sa bouche.

+ +

“Je suis désolé…”

+ +

Astrid se décale et lui fait signe de s’asseoir à côté d’elle.

+ +

“Ma mère m’a forcée à venir. Je crois qu’elle t’en veut plus que moi,” elle dit avec un sourire dont il ne saurait dire s’il est complice ou mélancolique.

+ +

Il croise et décroise ses doigt avec nervosité.

+ +

“Tu ne m’en veux pas ? il demande.
+— Je t’en ai voulu, oui, mais j’ai eu le temps d’y réfléchir. On ne s’était pas mariés pour les bonnes raisons. Je crois que ma mère était plus heureuse que moi le jour de mon mariage. Ça n’aurait pas marché de toutes façons.”

+ +

La mère de Raphaël s’approche, et il sent son regard dans son dos. Il lâche un soupir qu’il n’avait pas eu conscience de retenir, depuis longtemps, bien plus longtemps que ça.

+ +

À sa droite, sa mère lui fait signe de se décaler pour lui laisser une place.

+ +

“Je n’ai pas envie que tu t’asseyes à côté de moi aujourd’hui,” dit Raphaël.

+ +

Il se retourne vers Astrid et se laisse retomber contre le dossier en expirant longuement.

+ + +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/eras-tour/index.html b/posts/eras-tour/index.html new file mode 100644 index 0000000..ac02415 --- /dev/null +++ b/posts/eras-tour/index.html @@ -0,0 +1,2323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Taylor Swift: le consumérisme au service du female gaze? | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Taylor Swift: le consumérisme au service du female gaze?

+ + + +
+ +
+

Début mai, j’ai eu la chance d’assister à l’un des 4 concerts donnés par Taylor Swift à Paris dans le cadre de son Eras Tour. Jupes à paillettes, santiags roses, longues robes blanches, il est rare de voir autant de fans faire un effort vestimentaire aussi coordonné pour un concert, un peu comme si c’était une Pride principalement consacrée aux femmes hétérosexuelles. Le concept même du Eras Tour, découpé en différents époques de la carrière de la chanteuse, des ères avec chacune leur style distinctif, est le terreau idéal pour nourrir la créativité des fans, leur identification et leur interprétation des codes partagés. Au milieu de ce champ de paillettes, nous sommes tous et toutes là pour les mêmes raisons : célébrer une artiste qui a partagé un période plus ou moins longue de notre vie, en compagnie des autres fans.

+ +

Ce partage est marqué par les bracelets d’amitié réalisés en groupe ou offerts à d’autres fans, avec des messages en rapport avec les eras ou les chansons qui résonnent le plus en nous, les maquillages et les vêtements extravagants, qui nous donnent le droit de nous déguiser, et de redevenir des ados, quel que soit notre âge. On reconnaît les autres fans même à l’extérieur du concert, et on pense pouvoir savoir quelque chose d’eux rien qu’à la tenue qu’iels ont choisie.

+ +

On performe une féminité qui, loin des codes et des injonctions à ne pas faire trop de bruit, à ne pas se faire remarquer, est libre de s’exprimer à l’abri du regard des hommes, dans un espace protégé, où pour une fois il est clair que cette performance n’est pas destinée aux hommes, mais aux autres fans. Pour une fois, on n’a pas à avoir peur qu’on nous accuse d’en faire trop, ou qu’un homme pense que notre tenue est un signe que l’on veut attirer son attention. Les hommes sont remis à leur place par la chanson « The man » dans laquelle Taylor Swift affirme qu’on n’aurait pas la même perception d’elle si elle avait été un homme.

+ +

Personne d’autre qu’une femme, pourtant, n’aurait pu créer ce phénomène : une femme en qui chacune peut se reconnaître, qui parle de ses amours, des ses ruptures, de ses erreurs, de sa réputation, comme si elle était comme nous. Une femme qui sait parfaitement user des réseaux sociaux pour passer des messages à ses fans les plus dévoués, mais qui malgré tout reste silencieuse quand il s’agit de problèmes de société et de conflits internationaux qui ne ratissent pas assez large pour lui permettre d’être accessible à toutes. Une milliardaire dont la vie n’a pourtant rien à voir avec celle de n’importe laquelle des ses fans, épinglée pour son usage abusif de jets privés, victime de théories du complot quant à son implication dans la politique américaine.

+ +

Il y a des couples queers qui dansent sur la chanson Lover, « Shade never made anybody less gay » pendant You need to calm down, des sorcières dans Willow, des danseurs masculins dans des chorégraphies typiquement féminines pendant Vigilante shit. Des fans théorisent que Taylor elle-même pourrait être secrètement queer, mais Taylor ne fait pas de vagues, rien qui pourrait vraiment lui couper un marché ou un public.

+ +

Tout le monde ne peut pas forcément venir au concert non plus. L’incompétence de Ticketmaster, dont le monopole est un réel problème dans l’industrie musicale, et les fans américaines qui profitent du fait que venir à Paris est parfois moins cher que d’acheter une place aux États-Unis, font que seuls les plus déterminés et seuls ceux qui ont assez d’argent à disposition peuvent obtenir des places. Et il y a toutes ces choses qu’on achète expressément pour, ou pendant le concert, parce que c’est un jour spécial, et qu’on s’autorise tout.

+ +

À côté de ça, il y a la joie de reconnaître d’autres fans à leur tote bag Taylor Swift, le sujet de discussion tout trouvé, le sentiment de liberté totale, d’avoir presque l’obligation de profiter à fond de chaque moment, de chaque détail du concert, d’être entouré des gens qui ne sont finalement pas si différents de nous. Le vrai respect des fans, 3 heures de show sans coupure, où chaque détail, chaque pose, chaque costume, chaque pixel est travaillé minutieusement.

+ +

Taylor Swift, c’est tout cela à la fois.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/finish-their-food/index.html b/posts/finish-their-food/index.html new file mode 100644 index 0000000..3e82088 --- /dev/null +++ b/posts/finish-their-food/index.html @@ -0,0 +1,2445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Why do you want kids to finish the food on their plates so bad? | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Why do you want kids to finish the food on their plates so bad?

+ + + +
+ +
+

Content warning: food, eating disorders, emotional abuse.

+ +

Tonight I was watching this video from Tiffanyferg about snacks and the different cultures around what foods we keep around the house. It reminded me of some things people have said to me as I was growing up and as an adult about why it means so much to some people if you stop eating before you have emptied your plate, especially when you are a child. I wanted to take a look at those reasons and think about how harmful they can be when you are growing up and building your relationship with food.

+ +

Some kids somewhere in the world are hungry

+ +

Let’s start with the stupidest reason, but also the one I remember hearing the most from strangers. It is really weird, I don’t understand how it could be so common, and even as a kid I called bullshit on this one. Usually it was said in a variation around “do you know there are kids dying of famines in Africa?”, which has some troubling racist undertones. What do I, a six-year-old not finishing my lunch at school in France, have to do with kids dying on the other side of the globe, I could not tell you.

+ +

It was often adults at school or family members other than my parents who would say that to me. It didn’t have a big impact because I knew it was stupid and me eating wouldn’t help anyone else on the planet, but it goes to show how much strangers want you to eat your whole serving, summoning big scary reasons.

+ +

You should not waste food

+ +

Another common one is that “you should not waste the food”. To that I would say: why would you throw out perfectly good food instead of storing it in the fridge and eating it later? This is a very bad excuse. Or if you are already trying to do that and find that you can’t finish all the leftovers before they go bad, review your grocery shopping. Do one meal a week that is just eating all the leftovers so they don’t go to waste.

+ +

A similar one is that “we are paying for it”, usually if you are at a restaurant. Before we go further, you should take a look at the Sunk cost fallacy. The first article I found when searching for a definition of the sunk cost fallacy is actually using this exact example:

+ +
+

In one experiment, participants were asked to imagine that they were at a potluck party and that, after eating a few bites of a rich cake, they felt full. Some were told the cake had been purchased from a local bakery on sale, while others were told the cake was expensive and had come from a shop an hour’s drive away.

+ +

In each scenario, participants were asked to imagine that they had bought the cake themselves, or that someone else had brought it to the potluck. They were then asked whether they would finish the cake despite feeling full.

+ +

According to the results, people who were told they were eating the expensive cake were far more likely to say they would keep eating. Interestingly, this had nothing to do with who had bought it—friends, strangers, or the participants themselves.

+
+ +

Even when you know what the sunk cost fallacy is, you can always ask for a box to take back home, and eat it later. Or order a shared meal for children who don’t eat everything. This excuse is either in bad faith, or just a logistical problem on your part.

+ +

You are too thin/You should eat more so that you have all the nutrients you need

+ +

Here we are getting into the pseudo-medical reasons that I was sometimes given. First of all, I should not need to remind anyone that commenting that a person’s body is not as it should be is NEVER a good idea and NEVER going to help that person in any way. When that is told to a child, it has a big impact on how they build their self esteem and body image. Do you really want to be part of the reason someone hates their body?

+ +

I understand where the anxiety that kids don’t eat enough comes from. As the American Academy of Pediatrics tells us, “Some parents worry because young children appear to eat very small amounts of food, especially when compared with adult portions”. +But children never starve themselves: “A child who is growing well is getting enough to eat.”

+ +

The key message is that you have to trust your child:

+
    +
  • How do you know your child is not starving? Ask your child if they are hungry. If they are, give them food. If not, don’t.
  • +
  • How do you know if they have eaten enough? Ask them if they still want to eat.
  • +
+ +

It’s that simple. If it still scares you too much, ask a doctor. If you are scared even if medical professionals tell you it is all right, then the problem is your anxiety, and you need to find solutions for it without harming your child.

+ +

You are pretending that you are not hungry

+ +

Oftentimes when I was a kid, I would tell my parents that my stomach hurts and I can’t eat anymore. 100% of the time, they would assume I was lying to them so that I could stop eating. What would I gain out of not eating enough, that would be worth lying for? I have no idea.

+ +

Now let’s do a little thought experiment: Have you ever eaten too much because you have your favorite snack on hand and then felt physically sick, like you were going to throw up because you ate too much. Can you picture it? Is it a bad sensation?

+ +

Now imagine that happens to you every day. And not because you are at a special family dinner with your favorite food or anything. It’s on normal days, with everyday food and it’s someone else making you stay at the table for hours on end until you are done with your plate, sometimes reprimanding you or threatening you. What do you think your child’s relationship with food is going to be after that?

+ +

When you are not trusting that your child about their sensations, you are telling them that adults can make you feel physical pain and control what happens to your body without your consent. Do you see how that is dangerous?

+ +

It tells you that you cannot trust what your body tells you. Unlearning to listen to your sensations is a very dangerous situation. As an adult, I do not listen to my body when it tells me I need to eat, sleep or even pee. I have disconnected many of my sensations from the needs that they are telling me about. Being disconnected from your emotions, having your body and your rational mind not aligned is a big source of stress.

+ +

Some closing thoughts

+ +

I know this article can sound preachy and moralizing, and that is because I am angry at how much this has been the norm for all my life, everywhere I looked. How this form of abuse was never acknowledged.

+ +

I’m not saying raising a child is easy, I’m not saying that building healthy eating habits or letting go of your anxieties around children is easy. I’m not saying you will traumatize your child if you ask them to try to take one more spoonful of the food that’s on their plate. I hope you understand the main message, and that you are able to trust what your child tries to tell you about their body. Because if you tell them you don’t, they won’t trust you when they are sick, they will not tell you if they notice something is off because they believe you will not trust them, like you didn’t trust their other feelings. They won’t remember to drink when they are thirsty, they won’t remember to slow down when they are tired. They will not love their bodies. They will not have to tools to correctly take care of them.

+ +

Please take care of your kids, and teach them how to take care of themselves, with love.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/handle-with-care/index.html b/posts/handle-with-care/index.html new file mode 100644 index 0000000..0f1f8a8 --- /dev/null +++ b/posts/handle-with-care/index.html @@ -0,0 +1,2507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Handle with care | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Handle with care

+ + + +
+ +
+

I know it was not written on my heart
+From the moment you met me
+You had to guess from the signs
+And the things I told you

+ +

I should have let you know from the beginning
+Instead of making you learn the hard way
+But it took me time to see it too
+And I was afraid that you would not want anything to do with me
+Once you’d seen the label

+ +

Handle with care

+ +

It’s not that I’m fragile
+It’s not that I’ve been through a lot
+I’m just afraid I’ll be dropped
+And you’ll forget me
+Broken in the gutter

+ +

People will see the contents of my heart
+Spilled on the road
+Soon they will wash away in the rain
+And it will all have been for nothing

+ +

That is why I’m asking you
+To handle me with care
+And if you need to let go of my hand
+Please do it gently
+When you need to leave

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/i-forgot-all-of-their-names/index.html b/posts/i-forgot-all-of-their-names/index.html new file mode 100644 index 0000000..d271825 --- /dev/null +++ b/posts/i-forgot-all-of-their-names/index.html @@ -0,0 +1,2343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + I forgot all of their names | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

I forgot all of their names

+ + + +
+ +
+

I had come home for just a week
+I didn’t put my bags down
+I was afraid that if I stopped
+I would lose my momentum and
+I would fall

+ +

I looked at the picture in a drawer
+I hadn’t opened in a while
+I looked at all the faces in the frame
+I hadn’t seen in such a long time
+I looked at them in disbelief
+I tried harder but I realised
+I forgot all of their names

+ +

I had my mind still wandering
+I just couldn’t find the place
+I had left a year before
+I kept looking for it
+I couldn’t return because
+I was not the same

+ +

This is a poem about coming home after a long time but not finding the feeling of being home. Not recognizing certain things, having forgotten the names of places and people, and figuring out what that means about who you are.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/ils-ne-veulent-pas-etre-tes-amis/index.html b/posts/ils-ne-veulent-pas-etre-tes-amis/index.html new file mode 100644 index 0000000..511cafa --- /dev/null +++ b/posts/ils-ne-veulent-pas-etre-tes-amis/index.html @@ -0,0 +1,2214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ils ne veulent pas être tes amis | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Ils ne veulent pas être tes amis

+ +

Comment on a brisé la nerd qui sommeillait en moi, et ce que j'aurais eu besoin qu'on me dise à 18 ans pour la protéger.

+ + + +
+ +
+

Ce soir, j’ai regardé la vidéo Why nerds joined the alt-right de Cheyenne Lin, qui parle notamment de la misogynie dans les milieux geek ou nerd (j’utilise ces termes comme ils sont expliqués dans la vidéo, de manière assez interchangeable). Ça m’a rappelé une chose à laquelle j’avais déjà pensé en voyant la vidéo de Léa Choue, lorsqu’elle disait “Beaucoup de femmes rêvent d’être regardées comme les hommes regardent leurs potes masculins”.

+ +

Cette phrase m’avait rappelé le début de mes études, dans un milieu peuplé en écrasante majorité par des hommes cis/hétéros/blancs qui s’identifiaient comme nerd ou geek. J’avais toujours grandi en étant la première de la classe, et également parmi les personnes avec les intérêts et les activités les plus “nerd” depuis le primaire et jusqu’au lycée. Pour Noël j’étais contente de recevoir des livres de maths, et je passais le plus gros de mon temps libre à lire, notamment de la science-fiction. Jusqu’à la prépa, je m’étais toujours imaginée travailler dans les sciences et je n’avais jamais eu l’impression que c’était un chemin qui me serait fermé.

+ +

Naturellement, quand je suis arrivée après le lycée dans cet endroit rempli de gens “comme moi”, j’ai eu envie de m’intégrer, de partager mes intérêts avec ces nouvelles personnes, et d’apprendre d’eux. Et pourtant, là où des garçons qui n’étaient pas plus “intéressants” ni moins socially awkward que moi s’intégraient au groupe sans aucun problème, je subissais des moqueries et je me trouvais toujours mise à l’écart, sans jamais comprendre pourquoi. Je redoublais d’efforts pour apprendre leurs références, m’intéresser à leurs passions, être gentille et à l’écoute. Pourtant, ce n’était jamais assez pour qu’ils m’intègrent réellement au groupe, ni même simplement qu’ils me respectent. Ces relations que je prenais pour de l’amitié étaient en fait des puits sans fond où je déversais une bonne partie de mon énergie et de mon intérêt. sans rien recevoir en échange à part des moqueries et des remarques désobligeantes.

+ +

Avec le recul, je vois une fracture nette cette année-là, qui marque la première fois où je ne me suis plus senti.e à ma place à me dire “nerd” et à m’intégrer dans les groupes de nerds, de peur qu’on me considère à nouveau comme un imposteur et qu’on me tourne le dos. Malgré le fait que j’ai des intérêts qui devraient me permettre de me considérer comme nerd, et que je ne crois pas qu’on devrait mettre de barrière sur ce terme, c’est devenu une private joke avec mes ami.e.s les plus proches que je dis que je ne suis pas nerd même quand je suis au milieu d’une activité ou que je m’intéresse à une chose qui rentre totalement dans cette catégorie.

+ +

À l’époque, quand j’essayais de m’intégrer avec mes camarades peu accueillants, je me suis demandé.e pourquoi. Pourquoi est-ce que je n’arrive pas à m’intégrer, alors que c’est si facile pour les autres ? Au début, je mettais tout cela sur le dos de mon apparence, qui était ma plus grosse insécurité à l’époque. Cette insécurité cimentait toute ma personnalité, et j’étais la première à faire des blagues dévalorisantes sur mon propre physique, ce qui contrairement à ce que je pensais, ne me protégeait pas, mais donnait exactement les bonnes armes à mes camarades pour appuyer là où ça fait mal. Je pensais que s’ils ne voulaient pas être mes amis, c’est que mon apparence et ma personnalité ne les attirait pas suffisamment. Je pensais que j’étais trop maladroite, que je n’étais pas assez drôle, pas assez cultivée et intelligente pour eux. Je me disais que c’était moi le problème, sans jamais voir sa vraie cause, et c’est aussi ce qu’ils me faisaient comprendre.

+ +

Ce que j’ai réalisé aujourd’hui, et que j’aurais eu besoin qu’on me dise à l’époque, c’est que ces hommes-là ne voulaient pas être amis avec une femme. Je ne le voyais pas parce que, naïvement, je ne pensais pas que mon genre était ce qui me séparait d’eux. Je me rendais bien compte qu’on n’attendait pas de moi la même chose pour pouvoir m’intégrer, et j’avais un début de réponse avec mon apparence. Mais la réalité, c’est que certains hommes, à certains moments de leur vie, sont incapable de respecter une femme comme ils respectent leurs amis masculins. Ces hommes-là étaient tout simplement incapables de me voir comme une égale, de me considérer comme drôle, intéressante, digne d’être écoutée. C’est si facile, pour un homme, de balayer d’un revers de la main ce que dit une femme, quand il l’aurait soutenu si c’était sorti de la bouche d’un homme. C’est si triste et si frustrant, et pourtant c’est difficile à remarquer quand on n’y fait pas attention, parce que tout est fait pour qu’on regarde ailleurs.

+ +

Finalement, quand bien même j’aurais été attirante sexuellement ou romantiquement pour eux, ils n’auraient pas voulu être mes amis: ils auraient voulu coucher avec moi, pour pouvoir en parler à leurs véritables amis masculins, qui sont leur relation la plus importante. J’aurais eu beau tout essayer, au bout du compte, je n’avais aucune chance de recevoir l’amitié que je voulais, d’égal à égale, parce qu’ils n’avaient aucune envie de me la donner. Peut-être parce qu’ils trouvaient ça drôle de me torturer, parce que c’est agréable d’avoir un peu de pouvoir sur quelqu’un. Peut-être parce qu’ils me trouvaient trop désepérée, à revenir à la charge alors que tous les signaux auraient dû me dire de laisser tomber et de trouver d’autres amis. Peut-être qu’ils ne s’en rendaient même pas compte, eux pour qui rien ne mettait en doute leur appartenance à ce milieu.

+ +

C’est d’autant plus malheureux pour moi que je n’ai jamais compris pourquoi mon genre impactait ces relations, parce que moi-même je ne le voyais pas comme quelque chose qui devrait changer ma manière d’interagir et d’être perçu.e par les autres. Aujourd’hui, je sais que je suis non-binaire et que cela a joué dans ma relation avec mon corps et dans mon incompréhension de ces frontières invisibles du genre qui avaient été mises en place par ces hommes. Je ne comprenais pas qu’ils ne voulaient surtout pas qu’une femme soit “comme eux” et que je me tirais une balle dans le pied en essayant de leur ressembler. Les femmes qu’ils laissent entrer dans leur vie, ce n’est pas parce qu’elles sont l’un d’entre eux. Ils attendent d’elles qu’elles remplissent un rôle très différent de leurs amis. En étant presque comme eux, j’étais plus menaçante qu’autre chose, parce que je me mettais sur le même plan qu’eux. Ils devaient me mettre à l’écart, me différencier, pour se conforter eux-mêmes dans leur manière de voir les femmes comme intrinsèquement différentes d’eux et se convaincre qu’ils avaient raison de ne pas les respecter.

+ +

Je ne sais pas ce qu’ils sont devenus, ni s’ils ont ouvert les yeux sur leurs relations avec les femmes. Je l’espère d’une manière générale parce que les hommes qui n’ont pas d’amiEs femmes sont des proies faciles pour la manosphère, mais sur le plan personnel, ça m’est égal. Je leur ai déjà consacré assez d’énergie, et je suis bien heureux.se de pouvoir dire que ces hommes me laissent indifférent.e, qu’ils ne m’intéressent plus. Sans les lunettes rosées du patriarcat et de l’hétéronormativité, ils me paraissent beaucoup moins intéressants que n’importe qui d’autre.

+ +

Ce qui m’importe, c’est ce que j’ai perdu à cause d’eux, comme tant d’autres personnes qui n’ont pas le bon genre, la bonne couleur de peau, le bon corps, pour être nerd. Je ne sais pas si je récupérerai un jour cette confiance aveugle et innocente que j’avais dans mon appartenances aux milieux nerds, geeks, aux sciences et à la science-fiction. Je continue de suivre mes passions là où elles m’emmènent, et j’espère retrouver cette petite nerd qu’ils ont fait se cacher si loin à l’intérieur de moi.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/index.html b/posts/index.html new file mode 100644 index 0000000..8202826 --- /dev/null +++ b/posts/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/posts/journaling-donts/index.html b/posts/journaling-donts/index.html new file mode 100644 index 0000000..25257fa --- /dev/null +++ b/posts/journaling-donts/index.html @@ -0,0 +1,2423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Journaling don'ts - Journaling Guide: part 4 | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Journaling don'ts - Journaling Guide: part 4

+ + + +
+ +
+

In the previous article, we’ve gone through all the things you can do to help your journaling practice. In this article, we’ll do the opposite, looking at the things you probably shouldn’t do or expect from journaling. Keep in mind that this is my opinions, and these are the things that don’t work for me, but they might for you.

+ +

Falling into perfectionism

+

Whenever we pick up a new hobby or pratice, it’s common to want to go all in and master this new activity immediately, stretching ourselves too thin and feeling discouraged when the results aren’t what we expected. It’s important to not put too much pressure on ourselves. Remember, the goal is not publish your journal (or if it is, you will have time to edit it in the future). It’s ok to mess up, it’s ok to ruin a page of your journal. Everything you write doesn’t have to be an incredible mental breakthrough. You are not “wasting” a journal if you write mundane things. That why it helps to not use a notebook that is too expensive or valuable to us, because we don’t want to make our journal an object that is too precious to actually be used.

+ +

Writing for the wrong reasons

+

Remember why you are doing this: is it to process your emotions, to have a reminder of what your life was like at a certain point? Don’t try to write every single detail of your day: having a minute by minute log of what you did that day is probably not the most rewarding thing to write or reread. Try to focus on things that actually mattered to you, even a small thing, but one that actually has some meaning to you.

+ +

Writing every day

+

It is helpful to make journaling a habit, because that is how you complete a journal and make progress: not by writing 20 pages in one sitting, but one day at a time, page by page. Pressuring yourself to write every day, can make journaling feel like a chore. You can easily fall into the trap of seeing that you missed a day and thinking that you have to give up because you can’t keep up with it. There are plenty of days in your life, and it’s always ok to come back to writing after a long time. Ihave often gone more than 6 months ithout writing, and it doesn’t make me a failure or mean that I can’t keep up with journaling: what’s important is that I come back to it, once my life has settled to a calmer rythm.

+ +

Trying to make your journal a work of art

+

There can be a pressure for your handwriting to be good, for everything that you write to be easily readable, and your prose to be a work of art. You don’t have to write perfect sentences with perfect grammar and punctuation. What matters is the content of what you write, not how it looks or how well-written it is. If you make it a hassle to write and take the joy out of it, you probably won’t keep writing. Keep in mind that when you’ll reread your journal, you will not care about the grammar you used or the way you wrote certain letters: you will be happy to relive memories or find things you had forgotten. Writing badly is way better than not writing at all.

+ +

Writing for external validation

+

This one ties in with the previous point: if you look online, you will find endless feeds of beautiful, ornate pages with collages, paintings, drawings, colors… You may feel a pressure to make your journal look just as good. But remember, you are not doing this for external validation.Journaling is your one place to be free of outside expectations and constraints.

+ +

I would suggest not sharing your journal on social media or with other people (or at least a long time after you’ve written it, when you feel distant from the version of you that wrote it). That is because if you write with other people in mind, it will be harder to be honest in your journal. If you try too hard to make it pleasing to the eye and interesting to read, you won’t give yourself the freedom to actually experiment and not overthink what you are writing.

+ +

Using journaling as an excuse to buy new things

+

One last important thing is to try not to fall into consumerist traps: for every hobby you pick up, you will see a thousand products that promise they will help you do it better. Yet a lot of us know the looming feeling of too many empty notebooks waiting for us on our shelves. When I have too many notebooks in advance, I feel like I will never complete them and want to give up. Or I feel a pressure to write more so that I don’t waste them. Beautiful notebooks will always be around, and I promise you’ll have no trouble finding one when you need it. +While getting a beautiful journal and colourful pens can help you and be motivating, ultimately it’s not what matters. It’s the act of putting pen to paper that really counts.

+ +

The common point in most of these don’ts is pressure: for journaling to remain enjoyable and motivating, you will need to let go of some expectations and standards that we tend to set for ourselves. I promise the feeling of the completed notebook in your hands, and the feeling of rereading it many years down the line will be worth letting go of your inner perfectionist for ten minutes every few days.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/killing-butterflies/index.html b/posts/killing-butterflies/index.html new file mode 100644 index 0000000..b5053eb --- /dev/null +++ b/posts/killing-butterflies/index.html @@ -0,0 +1,2401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Killing butterflies | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Killing butterflies

+ + + +
+ +
+

This is one of the first poems I wrote when I picked up writing again in November last year. I was at the very beginning of the process of coming to terms with my sexuality. I predominantly felt shame and confusion. +This poem touches on some experiences from my past that I would not give the same meaning to today, but I wanted to leave its authentic original meaning.
+It is one of my favorite poems I’ve ever written, as the act of writing it, and telling myself the truth I had been holding back for so long was a cathartic experience.

+ +

I tried so hard to unsee it
+It started long ago
+When I looked too long for my own good
+I tried to avert my eyes
+To look away
+But after that, I could never be straight again

+ +

You held me tightly
+In a way that I felt wasn’t allowed
+Do you still think about it sometimes?
+Does your brain take you back to this moment, late at night,
+and then do you wonder about me, and whether I felt it too?
+Because I did, and I do, and I still remember
+Because after that
+I could never be straight again

+ +

I thought I could convince myself
+I thought if I tried hard enough to look away
+It would disappear

+ +

I thought I would never be able to love
+I thought I was broken
+It just never came
+The feeling they talk about in love songs
+The butterflies
+I didn’t know I had shoved them all in a jar, and put it in a closet and locked it and thrown away the key
+I didn’t know that because
+Of course I would always be straight

+ +

And then I felt them
+The butterflies
+And it was for a boy
+And so it was all right
+And maybe I could be straight again

+ +

But still I kept looking too long
+Still I kept looking too intently
+So ashamed
+I hid inside myself
+Because I knew deep down
+That I would never really be straight

+ +

When the butterflies were on the verge of dying off someone came
+Took my hand and
+Showed me that there is nothing wrong
+With never being straight at all

+ +

And then I felt them once more
+The butterflies
+And it wasn’t for a boy
+And it didn’t feel right, but also it did
+And then I wasn’t straight anymore

+ +

I tried to close back the jar
+I tried to hold them down
+The butterflies
+But still they kept flying
+And I couldn’t catch them all
+Because there is no stopping the butterflies
+Only waiting for them to pass
+And so I will never be straight again

+ +

I am not killing butterflies anytime soon
+Because holding that jar closed
+Takes all the energy that I have

+ +

Because I want to live to my fullest
+And I need both of my hands to do that

+ +

I want to feel their wings brushing my cheeks as I blush
+I want to see them dance in the sun when I hold my lover’s hand
+I want to feel them hugging my heart when it is about to crack wide open
+I don’t want to dim the colors of my heart ever again

+ +

Of course I know that there will still be days
+When I will be tempted to look away
+When I will want to hide
+But even then I know
+That I will never be straight again

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/know-my-name/index.html b/posts/know-my-name/index.html new file mode 100644 index 0000000..07a8d92 --- /dev/null +++ b/posts/know-my-name/index.html @@ -0,0 +1,2370 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Know my name: Similarities between coming out as transgender and as a victim of assault | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Know my name: Similarities between coming out as transgender and as a victim of assault

+ + + +
+ +
+

Content warning: This article discusses themes of transphobia and sexual assault.

+ +

Today I finished reading Know my name, by Chanel Miller. One thing that struck me in the Afterword of the book is that the way she talks about coming forward as a rape victim has a lot to do with the experience of coming out as transgender.

+ +

One sentence in particular ignited the parallel in my head with what I know of the trans experience.

+
+

I wondered if there was a way to reveal my first name, but not my last.

+
+ +

As she states in this video, “when you are assaulted, an identity is given to you. It threatens to swallow up everything you plan to do, and be. I became Emily Doe. Assault teaches you to shrink. Makes you afraid to exist. Shame, really, can kill you.”

+ +

She did not choose the name everyone referred to her as during the trial. She had no say as to what name the media would use to report on the case. An identity was imposed on her, without her ever being able to consent to it, much like when a baby is given a name while just freshly out of the womb. But this identity didn’t only consist of a name. Victim is a role that limits who you are, and what you can say.

+ +

When the statement she read to her attacker went viral, some people suggested she wasn’t the one to write it. Because she was a victim, her words were not supposed to have power.

+ +
+

What they were really saying is, victims can’t write. Victims aren’t smart, capable or independent. They need external help to articulate their thoughts, needs and demands. They are too emotional to compose anything coherent. It cannot be the same drunk girl who was found unconscious, the one who the media said uncontrollably sobbed throughout testimony. On a deep level they wanted to take away my writing, which I would not give up as easily.

+
+ +

After her assault, she was given a new name and a new, limiting role in society. She was told by influential voices around her that she didn’t belong in the spotlight, that she had to hide, that she had to be ashamed of herself.

+ +

That is what transphobia does to transgender people every day. While still in the closet, we are referred to by names we didn’t choose, and, in order to survive, we have to shrink and hide. We can’t abide by the narrative of what our life is supposed to be like, and we are unable to imagine a future for ourselves within the bounds of what is expected of us. Gender roles are imposed that prevent us from ever living as our true selves. Society reminds us that we are supposed to feel shame and guilt for who we are. It denies us our power, because of how threatening we are to the status quo that maintains men and women in oppressive gender roles, and destroys any attempt to define a life outside of this binary.

+ +
+

Hold up your head when the tears come, when you are mocked, insulted, questioned, threatened, when they tell you you are nothing, when your body is reduced to openings.

+
+ +

Victims are always looked at from a place of scrutiny. They are not believed simply from their words, just like words often aren’t enough for trans people to be recognized as the gender they identify with. Society looks at them both from a place of distrust, and humiliates them on any occasion it gets. Transgender women have been the object of jokes since the beginning of cinema, as exemplified in Netflix’s Disclosure. But above all, the experience of trans people can be described as one of erasure. Only a handful trans of trans people are represented on screen and in the media.

+ +

Trans people, just like rape victims, are reduced to their bodies, they are defined by them. Strangers may ask them intrusive, inappropriate questions, just like rape victims’ bodies, outfits and personal history are scrutinized during a trial.

+ +

Their past is used to define them, and they are often unable to ever completely detach from their former identity, as a victim or as their pre-transition selves.

+ +
+

In the victim realm, we speak of anonymity like a golden shield. […] But while we discussed the protection it afforded, no one discussed the cost. Never to speak aloud who you are, what you’re thinking, what’s important to you. I was lonely. I longed to know what it was like not to have to spend all my energy concealing the mode heated parts of me. I kept coming back to a line from one of Lao Tzu’s poems: He who stands on tiptoe doesn’t stand firm. I could not spend my life tiptoeing.

+
+ +

She uses the word golden shield, but I would describe it as a golden prison. For a while, hiding protects you from any bad things that might happen to you in the physical world because you are visibly trans. But it doesn’t protect you from what is arguably the most hurtful part, which is the rejection from society and from yourself, through internalized transphobia. Hiding does come at a cost, it costs us our energy, it costs us our voices, it costs us a life that is authentic to who we are.

+ +

That golden prison is a step we need to go through, until we find it in ourselves to say aloud who we are. But hiding inside that cage doesn’t mean that we lack any courage.

+ +
+

Whenever I hear a survivor say they wish they’d had the courage to come forward, I instinctively shake my head. It was never about your courage. Fear of retaliation is real. Security is not free. […] I don’t think survivors want to live in hiding. We do because silence means safety. Openness means retaliation. Which means it’s not the telling of the stories that we fear, it’s what people will do when we tell our stories. I remember thinking, If anyone finds out, they’ll think I’m dirty. We suffer from society’s shallow understanding.

+
+ +

But when the circumstances allow us to, we have to step out to set an example, and let other people know that they are not alone, just like we once longed to know, even if it means exposing ourselves to violence and prejudice. Chanel Miller’s mother first tells her to remain anonymous because she wants to protect her. But after a while, she finally gives Chanel her blessing.

+ +
+

She said, If you want to break yourself, to be bigger, to help other women, do that. Pain always gives you more power to go forward. Happiness and comfort don’t. It all depends on who you want to be.

+
+ +

But coming out doesn’t mean we will be exposed only to violence and negative reactions. To the contrary, Chanel Miller’s experience in coming forward has a lot of positive aspects.

+ +
+

For so long, I worried that to be known meant to be undone. The more they see you, the more they can use against you. For years I worried this was true. Upon finishing this book, I knew it was not. […] I often question where men like the defense attorney get their confidence, while I’m the one who struggles with self-loathing. […] I decided that for as long as they’re out there, I will be out there too. I will appear on every television screen across the nation and I will not question my being there. I will be seen, open about everything I am and ever was, because I know that from the very beginning, the defense attorney had it wrong. To be known is to be loved.

+
+ +

When her name and picture were released, her friend texted her “Happy birthday”, “because that’s what it felt like, being born into the world. No more fragmentation, all my pieces aligning. I had put my voice back inside my body. I was inundated with messages of grief, shock, pride, but all I felt was peace.” She describes the merging of her own identity and her victim status as the two identities of a trans person merge together when they come out, the hidden, closeted, true identity, and the mask that we are expected to wear for our own safety. We are finally able to live under one identity, after a period of leading a double life, which can last anywhere from days to years. +In coming out, we are born again, because we get a new first name, a thing that is normally only given to you once, on the day you are born. We get a new identity, not only a new gender, but also all the expectations that come along with the word transgender.

+ +

The responses to a coming out can be mixed, but they can be described exactly the way Chanel Miller describes the reactions of people learning she was assaulted: some people may face grief, when loved ones consider their newly born selves as having killed and replaced their old selves (which they have not, as they are the same person they have been all along). Other reactions might include shock, and sometimes disbelief, because people believe they have known you all along when you were only really showing a version of yourself tailored to help you survive. Finally, there is pride, the opposite of shame, the feeling that allows you to step out of your hiding place, and other people might feel that on your behalf, because they know that it is the right path for you, and that it took courage for you to get there.

+ +

Ultimately, we can see that assault victims and transgender people are both regarded as a monolithic group, taught to hide and be ashamed, reduced only to the flesh of their bodies, deprived from any complexity or depth, unable to choose their own identity. Those two groups are porous, and a disproportionate number of transgender people, especially women, are victims of sexual assault. +Our voices are silenced, but we don’t have to hide forever. Speaking up not only helps us be more true to ourselves, but it might also be what sparks change and acceptance in another victim, in another trans person.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/la-brume/index.html b/posts/la-brume/index.html new file mode 100644 index 0000000..54be236 --- /dev/null +++ b/posts/la-brume/index.html @@ -0,0 +1,2270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + La brume | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

La brume

+ +

A poem about leaving your loved ones behind

+ + + +
+ +
+

C’est un poème que j’ai écrit pour la première fois en janvier cette année, le jour où je prenais l’avion pour retourner chez moi, sur un autre continent que les deux personnes qui partagent aujourd’hui ma vie.
+C’était un moment suspendu, presque hors du temps, comme souvent dans les aéroports. Malgré les énormes baies vitrées de l’aéroport, je ne voyais pas le tarmac car tout était couvert de brume. Il y a eu de la brume jusqu’à ce qu’on décolle, et j’ai été frustré.e de ne pas avoir une dernière image nette de mon pays avant de partir.

+ +

Aujourd’hui la brume ne s’est pas levée
+Comme si elle ne voulait pas que je parte
+Comme si elle voulait m’empêcher d’avoir les adieux dont j’ai besoin
+Pour me punir de tout laisser derrière moi
+Je la comprends

+ +

Pourtant je n’ai pas voulu partir

+ +

Elle me donne un adieu morose
+Avec pour seul paysage la lumière grise et diffuse
+Pas de ciel et pas de soleil

+ +

Elle ne me laisse rien voir avant de m’en aller
+Pas même le tarmac ou les ailes des avions
+Un dernier morceau d’herbe ou de ciel bleu
+Un morceau d’ici, un dernier souvenir que je puisse emporter avec moi
+Mais non, rien.
+Peut être pour me forcer à revenir
+Peut être pour m’empêcher de te quitter

+ +

La brume veut me cacher la conclusion
+Les gouttelettes en suspension me laissent avec un sentiment d’inachevé
+Celles dans mes yeux ne m’aident pas non plus
+Est-ce seulement mes larmes qui m’empêchent de voir ?

+ +

Peut-être que je n’aurais pas dû partir

+ +

Mais je laisse un morceau de mon coeur avec toi, et je tâche de me souvenir
+Qu’il fait toujours beau au dessus des nuages
+Il faut simplement réussir à s’envoler assez haut
+Et à sécher ses larmes

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/le-tricot/index.html b/posts/le-tricot/index.html new file mode 100644 index 0000000..40d83f3 --- /dev/null +++ b/posts/le-tricot/index.html @@ -0,0 +1,2283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Le tricot | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le tricot

+ + + +
+ +
+

La première fois que je t’ai vue
+Tu étais un mystère
+Silencieuse
+Cachée
+Une énigme
+Enfermée dans un pull trop grand pour elle
+Dont elle ne pouvait se détacher

+ +

J’ai réussi à saisir un fil
+J’ai essayé de le détricoter
+Petit à petit
+Maille par maille

+ +

Non pas que je voulais te priver de ton cocon
+Simplement parce que je voulais te comprendre
+Te chérir

+ +

Je voulais te voir toi
+Sans la honte et les secrets

+ +

J’ai pris un fil et j’ai tiré dessus
+Trop fort d’abord
+Sans me rendre compte
+Que c’est en voulant démêler trop vite qu’on fait le plus de noeuds

+ +

C’est à force de patience que j’ai pu les défaire
+Détricoter tous les morceaux
+Tu voulais les tenir tous ensemble
+Pour rester hors de ma vue

+ +

Hors de la vue du monde
+Hors de la tienne surtout

+ +

Mais je ne me laisse pas abattre
+Quand j’aime

+ +

J’ai tiré sur le fil et petit à petit j’ai appris à te connaître
+C’était une longue entreprise
+Et elle n’est pas finie
+Mais chaque jour
+Avec douceur
+Chaque jour
+Avec amour
+J’ai détricoté une maille à la fois
+Et avec tout le temps du monde
+J’ai fini par te trouver

+ +

Tu auras peut-être froid sans ces mailles pour te serrer
+Mais tu brilleras plus fort
+Et je serai toujours là pour te réchauffer
+Et t’enlacer encore
+Et peut-être qu’ensemble on pourra
+Te tricoter un pull à ta taille

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/quelqun-pour-maimer/index.html b/posts/quelqun-pour-maimer/index.html new file mode 100644 index 0000000..b015291 --- /dev/null +++ b/posts/quelqun-pour-maimer/index.html @@ -0,0 +1,2254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Quelqu'un pour m'aimer | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Quelqu'un pour m'aimer

+ + + +
+ +
+

Est-ce qu’il y aura toujours quelqu’un pour m’aimer, si je change?
+Si dans la rue les gens ne font que se retourner
+Si je les dérange?
+Resteras-tu à mes cotés?
+Me tiendras-tu la main?

+ +

Si je ne pose jamais mon sac à dos
+Mais que je continue à courir sans repos
+Après qui je veux être
+Me suivras-tu?

+ +

Si je m’en vais au bout du monde
+Pour me retrouver
+Si je me perds en eaux profondes
+Si je suis happé.e
+Si mon bateau coule et que tu me crois perdu.e
+M’attendras-tu?

+ +

Ou bien est-ce que, quand je retrouverai enfin la surface
+Que je courrai vers toi pour retrouver ma place
+Tu auras déjà construit ta vie sans moi?

+ +

Je voudrais savoir surtout
+Pendant ce temps où je serai loin de tes bras
+Que tu vivras comme s’il n’y avait pas de nous
+Est-ce que tu m’oublieras?

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ + +
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/representations-non-binaires/index.html b/posts/representations-non-binaires/index.html new file mode 100644 index 0000000..7a57044 --- /dev/null +++ b/posts/representations-non-binaires/index.html @@ -0,0 +1,2350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Où sont les vie.ille.ux non-binaires? | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Où sont les vie.ille.ux non-binaires?

+ + + +
+ +
+

Récemment, je me suis rappelé.e d’une histoire que l’on raconte souvent dans ma famille. Il faut savoir que ma grand-mère peut être très maladroite dans ses interactions avec les autres. Je voyais à l’époque cette histoire comme une histoire drôle, une énième gaffe que l’on pouvait utiliser pour se moquer gentiment d’elle.
+L’histoire peut être résumée très simplement : depuis toujours, elle allait faire les courses à son épicerie favorite. Un jour, le vendeur qu’elle avait l’habitude de voir, et à qui elle avait dit “Bonjour Monsieur” tous les jours jusque-là, n’était plus là. Alors elle a demandé: “Il n’est plus là, le vendeur de d’habitude?”. Et le patron de l’épicerie lui a répondu que non, “[Prénom de femme] est partie à la retraite.”
+À l’époque, tout comme ma famille, je trouvais cette histoire très drôle. Ma grand-mère, incapable de deviner correctement le genre d’une personne pendant plusieurs années ! Je me demandais parfois pourquoi lae vendeureuse ne l’avait jamais corrigée, mais ma réflexion n’allait pas plus loin.

+ +

Je me suis penché.e à nouveau sur cette histoire, après m’être questionné.e longuement sur mon propre genre, et avoir lu Tomboy survival guide, de Ivan Coyote.
+Je ne la vois plus comme une histoire drôle, comme une maladresse de la part de ma grand-mère. Ce n’est pas drôle que ma grand-mère ait mal deviné le genre de cette personne. Ce n’est pas drôle que cette personne ait une présentation de genre qui ne correspond pas à son prénom. Ce n’est pas parce que son patron l’appelle par un prénom féminin que cette personne est une femme.

+ +

Je ne saurai jamais quel était le genre de cette personne. Était-ce une butch très masculine, ou bien un homme trans ? S’iel ne l’a jamais corrigée pendant toutes ces années, est-ce que cela veut dire que c’est un homme ? Ou simplement que cela ne lui importait pas ? Est-ce qu’on ne l’appelait par un prénom féminin uniquement parce que c’était ce qui était écrit sur sa carte d’identité ?
+Ou bien suis-je en train de rechercher désespérement des miettes de représentation parmi des choses qui n’ont rien à voir avec la transidentité ou les représentations queer ?

+ +

Mais j’ai besoin de mes héros. J’ai besoin de trouver mes exemples, des gens comme moi, pas seulement dans la grande histoire, mais aussi dans la petite. Dans la vie des autres, de ceux qui ont construit qui je suis. Je ne peux pas être lae seul.e, je ne peux pas être lae premier.e. Il a bien dû y en avoir d’autres avant moi, d’autres comme moi.
+Si je veux qu’ils me voient, moi, cela m’aiderait de trouver de telles représentations dans notre passé, de prouver que des gens comme moi existaient déjà, et que cela existera encore longtemps. Que ce n’est pas seulement à la télé, parmi les activistes, sur les réseaux sociaux. Que c’est aussi la personne à qui tu achètes tes courses tous les lundis matins.

+ +

Le livre d’Ivan Coyote a rempli une grande partie de ce besoin de représentation pour moi. Je n’avais jamais lu de représentation de cet aspect de mon identité auparavant. J’écrirai sans doute un autre article sur ce livre à l’avenir, mais en un mot ce livre était une vraie bouffée d’air frais pour moi. +Je ne m’identifie pas à tous les aspects de sa vie, et notre identité ainsi que notre présentation de genre sont différentes. +Mais savoir qu’une personne de plus de 40 ans a un jour ressenti les mêmes choses que moi, et les ressent toujours, m’a fait me sentir beaucoup moins seul.e, et m’a montré un avenir que je n’osais pas imaginer. +Je me projette rarement dans un avenir lointain, pour diverses raisons, mais ma sexualité et mon identité de genre ont toujours beaucoup pesé là-dedans. Comment se projeter quand le modèle est d’être dans une relation hétérosexuelle, de vieillir dans un corps qui n’est pas exactement le nôtre, entourés de gens qui ne nous comprennent pas vraiment ? Tout cela en pensant que les questions qui nous taraudent n’ont sûrement pas de réponses. Qu’elles sont honteuses, qu’il s’agit de quelque chose qui est brisé à l’intérieur de nous, quelque chose qu’on a raté, qu’on a perdu.
+Ivan Coyote me montre que ces réponses existent, que des gens comme moi existent, qu’iels ont toujours existé, et que j’ai un avenir. Avoir des personnes LGBTQ+ dans ses représentations, mais aussi dans son entourage, est essentiel. +Quand je ne vois la représentation sur les réseaux sociaux, les seules personnes que je vois sont des personnes de mon âge, voire plus jeunes. Sans doute que leur apparence finalement normée, même si peut-être pas dans des normes binaires, les favorise. C’est aussi, simplement, que les jeunes sont plus souvent sur les réseaux sociaux. Où sont les vieux queer? Comment savoir ce que l’on va devenir, si on ne le voit pas?
+Comment savoir que ce n’est pas quelque chose de nouveau, que ce n’est pas une phase, pas un caprice, s’il n’existe pas de personnes non binaires de plus de 30 ans dans nos représentations?

+ +

Les médias en live-action dans lesquels j’ai vu des personnes non binaires (récemment Sex Education et Heartbreak High1) sont destinés aux adolescents. Les personnes non binaires représenté.es sont des lycéen.e.s. Iels sont déjà assez sûr.e.s d’eux et de leur identité pour reprendre les adultes cisgenres lorsqu’ils utilisent les mauvais pronoms. Iels savent défendre leur place avant même d’avoir quitté le lycée.
+Moi-même, à 24 ans, je ne suis out qu’à une poignée de personnes elles-mêmes trans pour la plupart. Je n’ose même pas dire mes pronoms à des personnes cisgenres de peur de les déranger. À l’âge de ces personnages, je ne connaissais que vaguement l’existence des femmes trans, et pas du tout les hommes trans ou la non-binarité. Je ne savais pas que d’autres personnes pouvaient avoir les mêmes questionnements et insécurités que moi.

+ +

C’est pour cela que je ne me reconnais pas dans ces représentations. Ces personnages sont aspirationnel.le.s, inspirant.e.s, oui. Leur force et le fait qu’iels soient sûr.e.s d’elleux me montre que je pourrais moi aussi, un jour, ne plus m’excuser d’exister. Mais je ne me reconnais pas dans ces personnages qui n’ont pas de failles, qui ne doutent jamais de leur identité, qui ne se mégenrent jamais elleux-mêmes, qui ne se demandent jamais s’iels on fait une erreur, s’iels ont bien le droit de prendre la place qu’iels prennent.
+Je sais qu’il s’agit également d’une différence de générations, et qu’en presque une dizaine d’années, beaucoup de choses ont changé. Là où mes ami.e.s queer n’étaient out qu’à leurs ami.e.s les plus proches quand nous étions au lycée, j’entends que leurs petits adelphes sont out auprès de tout leur lycée, et même de leurs professeurs.

+ +

C’est une autre époque, et des modèles comme Ivan Coyote me semblent plus abordables. Il ne s’agit pas de gens qui sont plus jeunes que moi et savent déjà mieux que moi quelle est leur identité de genre, là où je doute constamment. +Les jeunes me poussent à penser qu’il est déjà trop tard pour moi. +Ivan Coyote me montre qu’il n’est jamais trop tard. + On peut faire une mamectomie à plus de 40 ans après avoir passé des annéees avec un binder. Notre société et son culte de la jeunesse m’ont toujours fait croire qu’il fallait tout savoir maintenant, tout faire maintenant. Ivan Coyote me dit que j’ai le temps, et c’est de ça que j’ai besoin. Nous ne cessons pas d’être non-binaires quand nous sortons du lycée et que nous entrons dans le monde du travail. Nous ne cessons pas d’être non-binaires quand nous ne correspondons plus aux critères de casting d’une série pour adolescents. Nous existons partout dans la société, même quand ce n’est pas pour faire une jolie répresentation innoffensive. Nous participons aussi à la marche du monde. Nous existions déjà avant ces séries, même si le reste de la société n’avait pas les mots pour nous décrire, même si nous n’avions pas l’espace de créer nos propres représentations.
+Mais si on ne nous représente que sous la forme d’enfants, ou d’êtres non-humains dans des mondes imaginaires qui n’ont rien à voir avec le nôtre, comment pouvons-nous exprimer notre voix ? Quand nous montrera-t-on des personnes non-binaires adultes, dont la voix pèse réellement dans la société, et qui sont en charge de leur propre vie, comme les autres ? Où trouver un autre modèle, comment vieillir en n’étant pas binaire ?

+ +

Bien sûr, je suis content.e que ces représentations d’adolescents existent, car je serais sans doute une personne plus sûre. de moi aujourd’hui si je m’étais contruit.e avec eux comme modèle. J’aime à penser que les personnes non-binaires qui sont né.e.s quelques années après moi ressemblent vraiment à ces personnages, et qu’iels trouveront leur place plus facilement que moi. En attendant, je continuerai de chercher des personnes non-binaires ailleurs que sur les sentiers battus, qui ne ressemblent pas à une version prémâchée pour une série facile à visionner ou un algorithme friand de personnes maigres, androgynes et blanches, mais des personne réelles, qui nous ressemblent.

+ +
+
    +
  1. +

    J’exclus volontairement les représentations que j’ai vues dans des dessins animés, The Owl House et She-Ra and the Princesses of Power pour différentes raisons: le monde dans lequel se déroule ces histoires n’est pas réaliste, et les personnages n’évoluent pas dans une société et avec un parcours ou une vie quotidienne à laquelle je puisse m’identifier. Leur identité de genre n’est pas explorée ni expliquée, et Double Trouble comme Raine ne sont pas humains. ↩︎

    +
  2. +
+
+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/shame/index.html b/posts/shame/index.html new file mode 100644 index 0000000..bc2847a --- /dev/null +++ b/posts/shame/index.html @@ -0,0 +1,2419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Why is no one talking about the shame? | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Why is no one talking about the shame?

+ +

As Contrapoints said, shame is intertwined with my identity as a queer person. In this article I explore my own relationship with shame and pride in relation to my sexual orientation.

+ + + +
+ +
+

This article discusses themes of internalised homophobia, self-loathing and rejection.

+ +

Shame

+ +
+

Why is no one talking about the shame?

+ +

Contrapoints, 2020

+
+ +

I have watched and rewatched Contrapoint’s video about shame many times, in different contexts and life situations, with and without other people around. Every time I have found something different in it, a new layer, angle, a different focus. One time it was a parallel with the “friendship” she talks about in the video. One time it was as the partner of a trans woman and what that means for her.

+ +

But that first time, in December of 2020, was the most Earth-shattering time for me.

+ +

The one at which I felt the most shame myself.</br> +Watching that video that evening led to a very dark and lonely night. I think of it as one of those single, life-defining moments that you only get a few of in your life. Realising my attraction to women led me down a very dark thought spiral that took me months to completely get out of.</br>

+ +

Before that video. I figured that as long as I kept it to myself, as long as no one knew, I would be safe. As long as I repressed any bad thoughts immediately when they came up, I would be safe. As long as I wasn’t thinking about it, had never tried anything, I couldn’t be sure, so I was safe.</br> +But that video convinced me. And that’s what made me sink.

+ +

The most overwhelming feeling for me that night was disgust about myself, to the point where I was feeling physically ill. +I figured my social life was over, my family life was over, my relationship was over. Everything I had worked for and built up until this moment felt like it was going to fall apart in an instant.

+ +

Before that point, I had found my own self-worth and validation in the traditional social markers of success. I had just finished my studies, landed a fulfilling job, and, more importantly, I was in a sfuccessful long-term relationship. I felt like I had it all figured out. Of course I sometimes felt empty, like if that was success and I wouldn’t ever get anything more out of life, what was really the point? It didn’t bring me the fulfillment I thought it would. </br> +But still, having to destroy it all and start over? Was I really ready to sacrifice everything I had strived for up until this moment?

+ +

People would be disappointed, it was going to change the way they looked at me, people would reject me, they would think I’m wrong and judge me, or they would be afraid of me, or they would think I was just lying for attention. +I was sad, and I was ashamed.

+ +

I was alone, I felt like there was nobody I could turn to. I thought my queer friends, who’d had that part figured out for a long time, would make fun of me. They’d be surprised I didn’t figure it out sooner.

+ +

I was ashamed of feeling like I couldn’t live up to them, because I had idealized them. I had made them up to be so much stronger than myself. I thought they never doubted themselves, and were out in every single area of their life and were so confident and proud. I thought shame was a concept that was alien to them, because they’d been comfortable with who they were for so long. Because I always saw them being comfortable around me. +I thought about reaching out, asking for advice, for acceptance, but I just couldn’t find it in me to say the words out loud, or to write them down. If they were always so proud and comfortable, they probably wouldn’t understand me. If they’d been through that phase, I thought, it would have been long ago, a thing of the past. They wouldn’t remember what it was like anymore. +I imagined my queer friends as unattainable, because it was better to be alone than to be rejected by them.

+ +

I was ashamed that I had hidden it from myself for so long, that I was so stupid for not realising it sooner.

+ +

I was ashamed that, even after all of this, my first reflex was still to hide.

+ +

I was ashamed that, in retrospect, everything I had said and done before this point felt like a lie.

+ +

I was ashamed because I couldn’t see any other option than to keep lying, building up on the lies again and again until there would be no way out.</br> +There is a pain in knowing you aren’t be able to be yourself completely with someone else. This feeling that you will never be able to completely connect with them, because you don’t feel safe enough to be authentic with them. It creates a distance, a ledge between you that is insurmountable. I thought I would feel like that for the rest of my life. If I could never really connect with anyone, it meant that no matter how many connections I made, I would always be truly alone.

+ +

But the thing I was the most ashamed of was my attraction to women itself. I felt like I was no better than the men that are sexualising women all the time, like I was a wolf in the middle of a hen house.

+ +

I was ashamed because I thought other women would be afraid of me, like they are of men. Not really afraid, but suspicious. Vigilant. +Like if I went to a space where women feel safe, it wouldn’t feel safe to them anymore.

+ +

That is not true.

+ +

That is not true.

+ +

Why am I not talking about the shame?

+ +

I was ashamed of so much at the beginning of my coming to terms with my sexuality, that there were too many things for me to really see the shame surrounding shame itself. +And even though I am deeply aware of my shame now, as I am still pretty closeted and that in itself is caused by my shame, I rarely see depictions of shame on social media or in shows and movies that I watch. Teenagers in Sex Education have more confidence in themselves and their identity than I do as an adult.

+ +

As Contrapoints puts it:

+
+

It’s difficult and risky for me to admit these feelings, because visible queer people are supposed to perform pride. Why is no one talking about the shame? Because we’re ashamed of the shame. But we shouldn’t be. The shame is a natural result of shaming.

+ +

I grew up in a media era where trans women were usually represented as vomit-inducing monstrosities who deserve the violence they bring upon themselves by existing. And I started my transition in the first year of the Trump administration, where there’s been constant vilification of trans people in the press, invading women’s bathrooms, forcing our insanity on children, and destroying Western civilization with our authoritarian pronouns. It’s hard to express just the daily humiliation of being a trans woman under these conditions.

+ +

Then there’s the little jabs people throw at you, like what my laser technician recently told me: “You must be very courageous to transition, because that is not socially acceptable.”

+
+ +

She talks about the pressure she feels as a public figure to show a good, aspiration example. At the end of the day, we all want to show our best, strongest image to the world. This is especially true when other people are looking up to these creators as role models, looking up to them for validation and proof that they can find a way to be proud like them.

+ +

Mae Martin’s show Feel good does depict a woman who is, at first, ashamed of being in a relationship with another woman. We could think, I used to think that, as soon as she’s come out to her homophobic friends, she would be done with the shame. As if shame is a one time step before coming out, that evaporates as soon as you are out to the world and have accepted yourself for who you are. +It is based on this false dichotomy between being out and being closeted. There is such a thing as being both out and closeted at the same time. Be it a dinner party where you’re out to some people and not others, or just going to a job where you’re not out and coming back to your safe space at home to be yourself.

+ +

Just because someone does videos on the internet about being queer, doesn’t mean that they are out to everyone they ever talked to. Coming out is a never-ending process in a society that expects you to be in the norm, it is a tiring process that, according to what I’ve heard, doesn’t get that much easier with time.

+ +

We don’t talk about the shame because we are forced to have thick skin in a world that is unforgiving to say the least.

+ +

We don’t talk about shame because no one else is talking about it. There are other subjects we might feel are more important, or it’s just not usually brought up in conversation. It makes us think we are alone in it. That we are the only ones feeling shame, that we are weaker than the others, thus repeating the cycle.

+ +

We don’t talk about shame because it’s such an inherent part of being queer and it’s been in our life for so long that we have learned to ignore it. As queer people, we are made to be ashamed of who we are even before we can really comprehend our queerness. Other kids don’t wait for your coming out to call you gay in primary school. We don’t have to be conscious of what makes us different for people to cast us aside. When you have been traumatized by bullying from a young age, simply talking about it can be too painful. We don’t talk about it because we want to protect ourselves, and others, from our own suffering.

+ +

We hide our suffering because when our right to exist is threatened daily, showing any sign of weakness can feel as giving the other side the exact weapons they need to attack us. We have to show as strong face as a survival mechanism, because without that strength, if you can’t keep your head up, it can feel like drowning. It makes me think of a trend of short videos I saw around Pride month, where older, mostly straight people, would give out free hugs to LGBT youths or saying that if their family wouldn’t accept them, they would become their parents. The emotional response of these young people feeling accepted by a parental figure, as well as the response I had to these videos as a closeted queer person. made me realize all of the unspoken loneliness and rejection we might feel. We have to show a strong face when we need to move away from our families for our own safety, but that leaves us in need of a community, of a sense of belonging. Sometimes we don’t want to talk about the shame because we want a moment of respite when we’ve finally found a space we are comfortable in.

+ +

In a world where a few decades ago, being LGBT was considered a mental illness, there is still a lot of stigma around poor mental health in general. On top of that, lots of people on the far-right using LGBT people’s mental health issues as evidence that their gender identities or sexual orientations make them broken.

+ +

Even though this shame is caused by systemic issues, we still see it as an individual moral failure within ourselves. We feel as if we as individuals are fully responsible for how we feel about ourselves and our own queerness, when we’ve been bombarded since before we could talk with homophobic, heterocentric, transphobic messages. We have to learn that what we consider to be flaws in our character are more often than not symptoms of a society that makes no effort to give us a space to be safe and accepted. Looking into concepts such as minority stress can help us get out of this individual failure mindset, and give us the tools to actually combat the root cause of the shame by bringing the change we need in our society.

+ +

Pride

+ +

I didn’t feel pride at all for a long time after coming out to myself. I didn’t feel pride until I began trying to accept myself, and authentically connected with some of the people that matter to me.

+ +

It’s only through honesty, with myself and with others, that I was able to achieve that.

+ +

Only by being honest with them, I figured that my idealized friends were struggling with pretty much the same things I was. My friend who I’d assumed was casually out in every single aspect of her life was actually not. If she seemed so comfortable every time I saw her, it was because she felt safe in our friend group, not because she was like that with everyone.

+ +

It is so easy to feel shame, because that’s the only path that is showed to us, drilled into our brains, before we can even consciously understand it. It takes a lot of work to build enough pride to balance it out. It’s not something you can do alone. I remember watching longingly the proud people marching for pride, feeling like I was made differently from them, because that feeling was so foreign to me, I wouldn’t ever be able to truly feel it, to be like them. In my mind I was a different type of queer, the weak type.

+ +

We need pride because shame is the most powerful tool for society to keep us in line, to prevent us from exposing every social code for what it is, just a masquerade people so desperately want to believe in. We need pride to take up the space that we deserve. We need pride so that we can resist the people who don’t want us to exist. We need pride so that we don’t disappear. We need pride so that young queers like me don’t feel like there is no happy ending waiting for them, that there is no future.

+ +

Pride is the opposite of shame and it’s our only weapon against it, our only way to live, and keep on living. I can imagine a future now, a happy one, and that would not be possible without pride.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/should-i-be-on-social-media/index.html b/posts/should-i-be-on-social-media/index.html new file mode 100644 index 0000000..75c98d2 --- /dev/null +++ b/posts/should-i-be-on-social-media/index.html @@ -0,0 +1,2458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + As an artist, should I be on social media? | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

As an artist, should I be on social media?

+ +

Social media seems inescapable today, especially if you want to build an audience as an artist. But, knowing all the problems caused by social media platforms, is it ethical for me to use them? And if not, then how else can I build an audience as a writer?

+ + + +
+ +
+

There used to be institutions gatekeeping who could create art and who couldn’t. Now, it seems like everyone can do it, thanks to the social media platforms that concentrate most of our attention. To the point that it seems like you can’t build a career as an artist if you don’t have any presence on social media. As Mina Le explains in her recent video about the luxury of privacy, the myth of the solitary artist as opposed to the attention seeker is outdated. She cites the article Everyone is a sellout now, about musician Ricky Montgomery who complained on TikTok about having to make short content on the platform to promote his work, or else no one would be exposed to his music and discover it.

+ +

Mina Le states the ideal that “the work should speak for itself”, and that is an ideal that I try to live by. I try to avoid being seen as an attention-seeker. But then I wonder: Am I being arrogant? Is it self-sabotage? But there is more to it than just my reluctance to expose myself, or not knowing what to post.

+ +

What we create becomes shaped by the platforms we use

+ +

Algorithms

+ +

Social media platforms are centralized, and owned by companies that don’t have the public’s interest in mind. They are skewed towards creating as much ad revenue as possible, not “showing the best work” to as many people as possible.

+ +

When we provide them with our free work, we don’t own our content anymore, with no guarantee that it will have a positive impact on our visibility. The content we create becomes shaped by the platform we want to post it on, which makes us captive to that platform:

+ +
+

“Each algorithmic feed, each platform, generates its own signature culture that fits into it. So we’re familiar with Instagram Face, the kind of influencer plastic surgery aesthetic. We’re familiar with TikTok influencer voice, which is the kind of monotone, syncopated, packing as many words into a sentence as possible. So I think there are forms of content that work for each different platform.”

+ +

Kyle Chayka on The Verge’s Decoder podcast1,

+
+ +

In the end, a TikTok is made for TikTok, and you can’t always reuse the content you have created for a specific platform on another platform. You probably wouldn’t have created your content in the same way if you had planned to post it on YouTube. You are now captive to that platform, and your creation process has been altered in the interest of that corporation.

+ +

Censorship and self-censorship

+ +

A particular pet peeve that I have with platforms such as TikTok and Instagram is their censorship. In an attempt to avoid being shadow-banned or outright banned, you will often see words such as unalived instead of “killed” or “dead”, asterisks or numbers replacing a letter in an offensive word, etc… It makes sense from the point of view of content moderation, but just banning words is a lazy way of limiting offensive content (and may not be effective against dog whistles or other strategies the far right uses to escape moderation). Words mean something, and censoring ourselves, removing the real words and ideas we want to talk about, rendering them inoffensive, also depletes them of their meaning.

+ +
+

“If the government fails to prevent monopolization of our speech forums – like social media – and also declines to offer its own public speech forums that are bound to respect the First Amendment, we can end up with government choices that produce an environment in which some ideas are suppressed wherever they might find an audience – all without violating the Constitution.”

+ +

Pluralistic: the majority of censorship is self-censorship

+
+ +

As presented in this article, the majority of censorship is self-censorship. In order to cater to algorithms, creators remove some ideas or even choose not to post about some subjects because it could impact their outreach on the platform.

+ +

When everything is content, and the process of creation is deeply changed by the platforms, is it still art? Do we want what we create to be dictated by the interests of companies?

+ +

Platforms deteriorate by design

+ +

The problem with current social media platforms is that, despite what they would have us believe, they are not public spaces. Even though they contributed to removing the barrier for entry in a lot of domains, allowing anyone with only a computer or a smartphone to reach an audience, they are not neutral spaces.

+ +

They platform people regardless of their ideologies, as long as they bring more eyeballs to their websites. Platforms encourage extreme content, which drives more outrage, more attention, and more ad revenue. They simply don’t care if the content they are hosting and promoting does harm. Platformer chose to leave substack earlier this year for this exact reason.

+ +

Another example of this is Twitter, which Elon Musk has taken over with the goal of promoting free speech, which in his case means far-right extremism, as reported by the Guardian. Users left Twitter for other platforms such as Bluesky or Threads, but (except for the Fediverse), the problem remains the same, just in a different flavour and on a different timeline.

+ +

As Catherynne M. Valente tells us, all platforms eventually want us to stop talking to each other and start buying things. This problem has been there for decades, and migrating from one platform to the next one does not protect you from the enshittification that eventually happens on all platforms. Taking the example of TikTok, Cory Doctorow shows that new platforms try to lure in users and creators in different phases, with algorithms that push creators’ content to more users than they would naturally reach, convincing them to invest in the platform, until they are trapped and TikTok can serve users as many ads as possible.

+ +

The same thing is happening with YouTube trying to eradicate ad-blockers. Inescapably, platforms start pushing more and more advertisement on their platforms, stop showing your content to users who have subscribed to your page, and become unusable. But you can’t leave, because that’s where the people you follow are, or that’s where you’ve built an audience.

+ +

That is what happens not only on social media, but also in the music industry with Spotify, or in the retail industry with Amazon, as deomnstrated in the book Chokepoint capitalism. We end up with monopolies from big companies who, instead of just being benevolent intermediaries between people who have something to sell and people who want to buy it, capture all of the market and then apply their conditions on it for their own benefit.

+ +

So, how can I build a platform without social media?

+ +

Some communities seem to shift towards group chats instead of social media, but the main alternative to traditional social media is the Fediverse, a decentralized platform free of ads and algorithms, where anyone can create their own instance without having to depend on a company’s whims. The technical barrier to entry may be a bit higher than usual social media platforms, but if you are able to use emails, you should be able to use the Fediverse. With no algorithms to push viral content to new users, it’s harder to build an audience, but the growth happens more authentically.

+ +

Creating alternative platforms owned by creators may be a solution too, such as Nebula, a streaming platform created by and owned by creators.

+ +

We have to take matters into our own hands in order to create the platforms we want to use, instead of being used by them.

+ +
+
    +
  1. +

    I invite you to listen to this episode of Offline with Jon Favreau which also features Kyle Chayka, as well as a discussion about the Introvert Economy. It might appear in a future article, who knows! ↩︎

    +
  2. +
+
+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/start-journaling/index.html b/posts/start-journaling/index.html new file mode 100644 index 0000000..96b9689 --- /dev/null +++ b/posts/start-journaling/index.html @@ -0,0 +1,2533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Everything you need to know to start journaling - Journaling Guide: part 3 | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Everything you need to know to start journaling - Journaling Guide: part 3

+ +

In this article, I present some guidelines that can help you get started on your own journaling journey. When should you journal? Should you do it digitally or in a physical notebook? Let's have a look together.

+ + + +
+ +
+

When to journal

+

Journaling doesn’t have to be a huge time-commitment. You’ll find that you can write a page or two in just 10 to 15 minutes. I think you shouldn’t aim for more than that in the beginning, to make sure that you’re not making it too hard on yourself.

+ +

My favorite time to write is right before bed: it helps me relax and sleep better, signaling my brain to turn itself off for the night. It allows me to reflect on the day that has just happened and frees up my mind from all the things that my brain could want me to think about or worry about as I try to fall asleep.

+ +

Although it happens more rarely, I sometimes pick up my journal when a thought or emotion comes up that I want to document or analyze. Another popular technique is morning pages, which consist of writing three pages of any thoughts that come to mind, first thing in the morning. I have never really tried it because I always feel like I don’t have anything to say in the mornings, as nothing has happened yet and my brain is empty. I am not relaxed enough to write when I just want to get going with my day. It can still be worthwhile to try it out and see if it works for you.

+ +

Where to journal

+

Journaling should be a calm and peaceful activity, so it’s great if you can find a cozy space to do it in. It’s important that you feel safe enough to write, that’s why I rarely journal in public spaces. I usually write from my bed or from my desk. You can also use a specific corner of your house that is comfortable, maybe light some candles or sit in your favorite chair, to make it a special moment.

+ +

If you trust the people you live with, or live alone, keeping your journal in a place where you can see it can help remind you to journal. For example, I always put my journal on my nightstand, so that I see it before I go to sleep and am reminded that I can journal, otherwise I might completely forget about it for weeks.

+ +

How to journal

+ +

When it comes to the way you should journal, there are two main approaches: using an electronic device vs writing on paper. Let’s see what those two bring you and find out what the most appropriate setup is for you. Let’s keep in mind that doing one doesn’t prevent you from doing the other as they are complementary.

+ +

Digital journaling

+ +

Journaling on an app or on your computer can be a good way to get started, as you already have the tools right in front of you. Whenever I feel the need to write some thoughts down while I’m out and about, I use my notes app on my phone. However I never journal on my computer as it would feel too much like work, and wouldn’t really feel authentic to me.

+ +

But journaling digitally does have its advantages. First off, you won’t lose your entries the way you could lose a notebook. As long as you’re careful with backups or use cloud storage, your journal is always with you, all the time, and doesn’t take up any space. This method is also more economical as you don’t need to pay extra for any fancy pens or stationery. You can get started right now with what you have and no extra purchases.

+ +

It can be practical if you like re-reading your entries, especially since you can easily search for a date or a keyword, which is harder on a paper notebook. You can also make sure your thoughts stay safe and private by using secure apps, and no one will just find your journal lying around.

+ +

Some caveats with digital journaling are that you can be tempted to edit or delete things as you go or even when you re-read it a few months later. Where paper give your thoughts permanence, and even your mistakes are still visible, writing digitally can give more room to your inner perfectionist and pressure you to write better or censor yourself more.

+ +

It also feels less personal, as it’s not in your unique handwriting (which can be helpful if you can’t reread what you write, but still…) but just in a generic, uniform font. You can’t see the difference between an entry you wrote messily in the car in 3 minutes and one where you were careful to use your best handwriting.

+ +

It also feels less calming to me, as journaling is one of my (few) no-screen activities. And let’s be honest, if I pick up my phone wanting to journal, chances are I will just open Instagram and start scrolling. A physical journal would not make you go into such a spiral, the worst that can happen is that you re-read old entries, which is always fun.

+ +

Journaling on paper

+ +

Writing in a paper notebook is my favorite way to journal. The feeling of the pen on the paper, holding the book in your hands, seeing how far in the notebook you are, flipping through the pages, choosing a beautiful notebook and pens are great pleasures you only get by going with paper. However it is tempting to fall into the trap of buying more notebooks than you will ever be able to fill up, so stay mindful and try not to buy more than 2 journals in advance. Remember that there will always be enough beautiful notebooks in the world, so it’s okay if you don’t get every single one of them on your shelves. You can also just use a composition notebook you have lying around, or an old notebook where some pages are left, or even some random sheets of paper. Let’s try not to fall into the trap of buying too many tools to journal, as the important part is to actually write, and for that you only need one pen and one piece of paper.

+ +

I like writing on paper because it is slower, so it gives you more time to think and be honest. You don’t need to rush and are more intentional with what you write down. You can see all your previous notebooks on a shelf and see how far in your notebook you are every day: progress feels more tangible.

+ +

It is also way easier to get creative if you’re journaling on paper: you can add collages, write sideways, clip in some tickets or cards you want to keep, draw, etc… You’re not constrained to write in straight lines, always in the same font and color. Your journal lives with you, when you rip it, fold it, spill something over it, it actually lives a life of its own, making it all the more precious.

+ +

How to choose your notebook

+ +

When it comes to choosing the notebook itself, there are a few things to keep in mind.

+ +

First off, you should make sure that you are getting a notebook with good quality paper: it can be frustrating if your ink goes thought the paper.

+ +

The cover can be soft or hard, both have their advantages. You’ll usually want to make sure that the notebook actually opens flat enough, and doesn’t have any parts sticking out that actually prevent it from sitting nicely on a flat surface. A hard cover helps with writing in spaces where you don’t have a table, but I actually prefer softer covers as they don’t feel as sturdy and constrained. The binding is also important, having spiral binding can make your journal harder to transport or cause sheets to fall or tear out.

+ +

The size of your notebook is probably the most important aspect of it: having a notebook that is too big can make you feel like you’re not making any progress, as you have to write a lot more to fill a page. I can also be harder to travel with. On the other hand, smaller notebooks can be hard to write in, if you always have to be in a cramped position to be able to write in the small pages. It all comes down to what you’re expecting and in which settings you journal, and you have to find your sweet spot through trial and error.

+ +

You also have to think about whether you want a notebook that’s lined or unlined. A lined notebook will help make it tidy and look more even, but it can come in the way if you want to draw or do other creative things in your journal.

+ +

In the end, you should choose a journal that you find cute, but make sure not to buy a notebook that is too fancy or expensive. That would put too much pressure on your writing as you’ll want to match the quality or price of your notebook and not “waste” it. Journaling should remain fun and guilt-free.

+ +

Other ways you can journal

+ +

You are also free to explore other, more uncommon mediums for your writing. For example, you could use:

+
    +
  • a photography journal: take pictures of your space, things you see, or significant events of your day
  • +
  • a video/audio journal: you can also record yourself or the sounds around you, which can be even more personal and make for a beautiful, even more faithful way of documenting your life.
  • +
+ +

What to journal about

+ +

When it comes to actually writing, it can be useful to add some structure to your journal. One thing that you can’t skip is adding the date at the top of your entry. I also like to add the time and, if I’m not in the same place as usual, the location from which I’m writing. You can also add anything that helps you kick start your writing engine, such as the music you are listening to, the temperature or atmosphere of the space around you, the weather, etc…

+ +

You are free to write whatever you want and you can experiment with different writing styles and themes. Some ideas can be writing things you’re grateful for, your favorite or worst moments of the day, how you are feeling, something you’ve learned recently, something you are worried about, etc… If you’re out of ideas, there are lots of writing prompts and writing exercises out there, some of which I’ll link in a future post.

+ +

In the meantime, if I could recommend only one journaling exercise, it would be this video by struthless.

+ +

Are you ready to get started?

+

Now, you should have everything you need to know to be able to start journaling. Remember that, as with many things in life, there is no one size fits all for journaling. You can find some shortcuts and advice here, but the best way to find out what works for you is to actually pick up a pen or keyboard and write, and stay open to experimentation.

+ +

In the next article I will share the main pitfalls you can find in journaling, so stay tuned for that! Until then, good luck with your writing journey.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/the-vampire/index.html b/posts/the-vampire/index.html new file mode 100644 index 0000000..809a29d --- /dev/null +++ b/posts/the-vampire/index.html @@ -0,0 +1,2505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The vampire | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

The vampire

+ + + +
+ +
+

Happy Halloween!

+ +

This is a poem I first composed at the end of November last year, at a time where I felt dissatisfied with my relationships and was hoping for something more. I thought it would be impossible for me to get what I wanted, and that I was a bad person for not being content with what I already had.
+I am at a much better place now, feeling fulfilled in my relationships. I rarely feel alone anymore, and I don’t find myself yearning for more connection.
+I figured the theme is perfect for spooky season, so I decided to rewrite it, experimenting with rhymes, which I rarely do in English poems.

+ +

I am a vampire
+Feeding off of all the love that I can find
+Consuming my lover’s warmth like a fire
+Then leaving them behind

+ +

I need the love to fuel me
+But once it’s gone, it leaves me even colder
+The joy and comfort stay behind as a memory
+Like when I turn off the hot water

+ +

And I am left naked and alone, shuderring in the cold
+Searching for more, feeling around me for someone, anyone
+Finding only darkness, heartbreak, and promises I couldn’t hold
+I used to think I would never get enough, but you might be the one

+ +

That’s what I thought last time too
+But I promise I hope that it’s you

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/the-zombie/index.html b/posts/the-zombie/index.html new file mode 100644 index 0000000..5500029 --- /dev/null +++ b/posts/the-zombie/index.html @@ -0,0 +1,2341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The zombie | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

The zombie

+ +

A poem about not feeling truly alive

+ + + +
+ +
+

I have been living my life like a zombie
+Hiding inside myself
+Hiding from yourself is the hardest part
+I’ve become so good at it
+I can’t even see it anymore
+I sometimes forget I used to

+ +

I wish people could see me still
+Read into the parts I hid
+But people can’t read minds, especially those that have been meticulously erased

+ +

I wish I could still see it from time to time, but I lost track
+I run around the building but I can’t find the door, I hid it so well
+The windows are closed and the shutters are on
+If I try breaking a wall to enter I will only find rubble
+I have to enter through a mouse’s hole and unravel it slowly
+Removing a brick and then another until I make a door for myself

+ +

It is a dark place and I am still crawling
+But one day I will find the switch and turn the light on
+And when the sun will rise I will open the windows and let it all out
+For everyone to see

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/what-i-learned-from-journaling/index.html b/posts/what-i-learned-from-journaling/index.html new file mode 100644 index 0000000..d7080de --- /dev/null +++ b/posts/what-i-learned-from-journaling/index.html @@ -0,0 +1,2353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + What I learned from journaling for more than a decade - Journaling guide: part 1 | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

What I learned from journaling for more than a decade - Journaling guide: part 1

+ + + +
+ +
+

In these articles, I will share all my tips and tricks for how to journal, what it brought me and what it can bring you. There is not one perfect way to journal that works for everyone. Journaling is a deeply personal experience, so feel free to adapt, customize and discard any of the tips I give you here.

+ +

What you will find in this series:

+
    +
  • my personal experience with journaling: how I started journaling, what it brought me over the years.
  • +
  • In why should you try journaling? I listed the benefits that journal could give you, as knowing why you’re doing something is probably the best way to keep you motivated
  • +
  • a quick journaling guide: I tried to list all of the journaling tips I have found in my own practice and online, gathered in a not-too-messy way
  • +
  • my journaling “don’ts”: Here are some misconceptions and expectations that could hold you back in getting started, building consistency or seeing the benefits of journaling
  • +
  • resources: Here are some videos and articles which have influenced me and my journaling practice over the years, or could give you other visions, tips and ideas that might work for you
  • +
+ +

Now that we’ve laid the plans, let’s dive into my own journaling experience!

+ +

I have been journaling for as long as I can remember. +My first journal was a travel journal, when I was around 5 or 6. At first, I didn’t write in first person, instead writing down what my favorite toy was doing, and drawing them (my plush was kind of a boy but sometimes a girl, I wasn’t quite sure) at the park and at the swimming pool.
+My mother made me keep a journal over our vacations in the US. She sometimes tells me I was very upset every time because I was too tired to write, but she still made me do it.
+Someone gifted me a pink disney princesses journal with a little lock and key when I was in primary school. I wrote down what I had done at school, and my reactions to school drama. I think I over-dramatized it for the sake of having something to write.

+ +

Then I had a small Donal Duck journal, then one we made at school by binding some sheets of paper together with a wool thread. During that time, I took a break from writing because I couldn’t find it in me to write that my grandfather had died, and writing about anything else felt futile. The same thing happened when my grandmother passed away a few years later.

+ +

Some time after that, in middle school, I upgraded to beautiful paperblanks journals. I was inspired by Emily the strange novels to write down my adventures, but was frustrated that my life was very boring so I had nothing to write.
+The end of middle school was a hard time for me, and journaling gave me a place to vent and share my interests.
+I took a break from writing right after high school, being overwhelmed by my studies, but I journaled a lot in the transitional summer before I entered my engineering school. I journaled as a way to self-soothe, be creative and process my emotions. I wrote a lot about celibacy and self-love in my journal around that time.
+Then, during the lockdowns I picked up journaling full speed again.
+When I moved to the other side of the ocean, I wanted to capture everything I was living and feeling and wrote almost every day for a few months, which is more than I usually write.
+Currently, I write whenever I feel like it, not pressuring myself too much. I know that I always feel better and sleep better when I write right before bed, because it makes it easier to let go of the thoughts that race in my head when I have written them down.

+ +

I was lucky in that my family never invaded my privacy or asked me anything about my journals, and were supportive of that activity. However, even knowing that there was a very low risk of anyone reading my notes, I found it hard to be completely honest in my journal about the things I was most ashamed of or that made me feel uncomfortable. I have always been overly self-conscious about future me cringing over what I have written, in an almost paralyzing way, limiting what I allow myself to write. Confronting uncomfortable topics on paper also gives them more substance, makes them more real. Just like when I couldn’t write that people had passed away, because writing it down would set it in stone, make it real and irreversible, whereas keeping it as just a thought in my head made it possible to pretend nothing had changed. If I don’t write down a certain event or feeling, there is no proof that it ever happened, that I ever felt it. But hiding things unfortunately doesn’t make them disappear, and the only way to process them, to grieve or make any progress is to confront them, when the time is right.

+ +

I have gotten better at being more honest in my journal recently, although I am not completely there yet. I believe it’s ok to take your time in confronting certain painful experiences and feelings, and you shouldn’t pressure yourself too much in journaling about them. Some things can live only in our heads, and that’s okay too.

+ +

My writing style changed a lot over the years, from documenting the events of my day towards documenting my emotions and reflections about the world, and writing poetry. Journaling gives me the opportunity to be more honest, open and take a step back to see my patterns of thinking, my blind spots and my beliefs about myself. +When I don’t write for a long time, my thoughts feel scattered, messy, disorganized. I worry I will forget things, and I feel like I have too many tabs open in my brain at the same time. It is something I have always, and will always come back to, whenever I want to bring more balance, peacefulness and calm in my life and in my head.

+ +

See you soon in the next article, where I’ll share the reasons you should try journaling.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/why-should-you-journal/index.html b/posts/why-should-you-journal/index.html new file mode 100644 index 0000000..933b4b6 --- /dev/null +++ b/posts/why-should-you-journal/index.html @@ -0,0 +1,2436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Why should you try journaling? - Journaling Guide: part 2 | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Why should you try journaling? - Journaling Guide: part 2

+ + + +
+ +
+

In the previous post we’ve seen my personal experience with journaling. That should have shown you a pretty good overview of what I get out of journaling, and why I keep coming back to it even after a long pause, year after year. But everyone has their own reasons to journal, and they can be very different from person to person. Let’s have an overview of what those reasons can be.

+ +

A page of one’s own

+

Everything we do in life tends to be with the goal of achieving something. When we create or build something, the goal is to use it or to show it to other people. Journaling is the complete opposite of that. It should be a space for you to explore, mess up, try new things, be weird, all within the safety and comfort of a notebook. It is a place where no one will judge me, where I can be completely honest but also pretend I’m someone else, play and be creative. Basically, journaling can be exactly what you want it to be.

+ +

It is the best thing I can do for myself in terms of calming down my thoughts, fears and doubts, feeling more calm and focused. I never regret having taken the time to write, I always get something positive out of it, even if it’s just the sense of accomplishment from having done something positive for myself.

+ +

I don’t like meditating because I feel like I’m wasting my time. While I’m trying to meditate, I just think “Why am I sitting here doing nothing, when there are a thousand better things I could be doing?” Journaling doesn’t make me feel like I’m losing my time, and also brings me most of the benefits that meditation is supposed to.

+ +

It leaves my mind tidier than I found it, because there is no need for thoughts to race in my brain when they’ve already been written down.

+ +

A blank canvas

+

Whether you’re into scrapbooking or art journaling, or even writing poetry or letters, journaling can definitely help explore your own creativity. It is a space where you can spark ideas by reflecting on the day, just by giving you new perspective on certain events or making links between things you wouldn’t have otherwise. And contrary to when I get an idea while scrolling Instagram or Youtube, I can jot my idea down immediately and not forget it as soon as the next video catches my eye.

+ +

Journaling is a great tool for self-reflection and self exploration, without it needing to be tidy or presentable for anyone else. It is the ultimate creative space, as it should come with no pressure to be prolific or to aim for perfection. When we are not producing for anyone else is when we’re the most free to explore and try anything we set our mind to.

+ +

A window into the past

+

Journaling is a great tool for building self awareness, being reflective about your experiences and learning from them. It helps you put things in perspective, by being able to take a step back when you reread an entry after some time has passed. It’s a good way to find the blind spots in your thinking and see the big picture rather than living day to day without learning from what is happening in your life.

+ +

Journaling can show you that things you were worried about a few months back, that were occupying your whole mind, are now insignificant. Or it can show you that your worries are not such a huge deal after you’ve written them down and thought about them in a more rational way. Writing about the same thing over and over can also push you to take action, through recognizing that if you do things the same way, the same results keep happening.

+ +

Having a journal is probably the best tool to remind yourself of what happened in your life, and the mindset your past self was in. There is nothing quite like reading an intimate, personal account in your journal after a few years, and realizing how much you’ve changed and grown since that point.

+ +

A silent friend

+

There are some things you might not feel comfortable sharing with someone else, or you might not have the right person in your life to share it with. Sometimes it is harder to say things out loud or to a person that could judge you, than it is to write them down. You can always erase or tear apart anything you’ve written if that makes you feel safer.

+ +

Even when you are alone and have no one to talk to or connect with, your journal can be a space to have deep conversations with yourself. Your journal is a silent friend, that will never invalidate you, judge you or interrupt you.

+ +

It is probably the closest thing you can do to therapy on your own. Knowing why you feel or react in a certain way, being honest with yourself and overall knowing yourself are things you can work on on your own, with just a sheet of paper and a pen, and that’s a very magical thing to me.

+ +

A training ground for the future

+

In a world where we spend a whole lot of time writing, be it at work or when texting friends, journaling can help you write better. Practicing day after day, exploring new writing styles and tools when you feel like it, is what can help you find your own voice, and see how it evolves over time.

+ +

A journaling practice can also help you reframe your thinking, by sometimes writing down what you’d like to think, rather that what you’re actually thinking. +You can journal about a difficult decision you have to make, exploring the different outcomes on paper.

+ +

Reflecting on your life, day after day, month after month, can help you find meaning in your life and emotions, and pinpoint what actually matters to you.

+ +

Journaling can help you live a more intentional, creative and peaceful life. So why not give it a try?

+ +

If you want to know everything you need to get started, jump to the next article in this series.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/posts/writing-like-colleen-hoover/index.html b/posts/writing-like-colleen-hoover/index.html new file mode 100644 index 0000000..3651200 --- /dev/null +++ b/posts/writing-like-colleen-hoover/index.html @@ -0,0 +1,2521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Writing like Colleen Hoover, what makes a great opening line, and Nanowrimo's stance on AI | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Post +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Writing like Colleen Hoover, what makes a great opening line, and Nanowrimo's stance on AI

+ + + +
+ +
+

I’ve wanted to share some favorites here for the longest time, but I either don’t take note of my favorites, or wait for so long to write about them that they’re not relevant to me anymore. I also don’t do it because I don’t see much value in just talking about stuff I’ve liked, but I have to try to stop overthinking it, so here we go I guess!

+ +

Even though I haven’t written a lot of fiction here, it is one of my passions and I’ve spent countless hours watching YouTube videos about writing. Usually, I discover a channel in my YouTube recommendations and stay for the personality of the creator. Here are some videos I really enjoyed recently!

+ +

In Defense of Colleen Hoover (Sort Of?) by SAVY WRITES BOOKS

+ +

Savy is a writer, youtuber and small business owner. I particularly like her videos about MLMs (I’m referring to multi-level marketing unfortunately, not the other one!) and LGBT issues. After making several videos analyzing and critiquing Colleen Hoover’s books (which I have to admit I haven’t watched yet), she just released a writing vlog literally writing an entire romance novel in the style of Colleen Hoover, in just two months! If you don’t know who Colleen Hoover is, she’s an incredibly successful romance writer, but many people complain that her books don’t advertise enough the fact that they depict very heavy subjects including domestic abuse.

+ +

After reading many of her books, Savy decided to make an experiment and write an entire romance book in the style of Colleen Hoover (without touching on any heavy subjects), including the very on-the-nose character names, and ridiculously high-stakes plot elements.

+ +

What I particularly enjoyed about this video is how in-depth she shows us her writing process. Everything from outlining, to setting up the book for pre-order on Amazon and setting up the ads for that, as well as formatting and making the cover art. Showing that much behind-the-scenes is very instructive (even when there is an unfortunate plot twist as is the case in this video!).

+ +

Some of the resources she mentioned:

+ +
    +
  • Story Planner, a website with interesting prompts to help you outline your novel
  • +
  • Canva for the cover art
  • +
  • Atticus for formatting the book itself
  • +
  • And I really liked the questions she asks when she splits the outline into chapters: +
      +
    • What action does the hero take toward achieving the goal?
    • +
    • How is the plot forwarded?
    • +
    • What does the hero know/feel that is different from the start of the chapter?
    • +
    • What does the reader learn?
    • +
    +
  • +
+ +

how to write iconic opening lines | an investigation! by Kate Cavanaugh Writes

+ +

Kate has been one of my favorite youtubers for a long time. Her vlogs about writing, especially the ones where she tries different challenges and other writers’ routines are so entertaining. In this one, she compiles many recent and successful books’ opening lines and tries to find what makes them iconic and gripping.

+ +

First off, I have to say that I feel her about forgetting about a project for a year and then coming back to it a year and a half afterwards! The work she accomplished in compiling all that information as well as her insight made me want to put more thought into my opening lines in the future.

+ +

Here are some things she considers make a great opening line, that also resonated with me:

+
    +
  • It makes the reader want to continue reading, begging some questions
  • +
  • It instills a sense of danger
  • +
  • It should have a strong voice
  • +
+ +

What makes a great opening line will also depend on the genre you’re writing in (a romance book will not start in the same way as a thriller), and of course taste plays a big part too.

+ +

I feel like I should add that coming up with a first line can be very daunting, so if you find that that’s preventing you from starting to write the story that lives in your head, don’t let it stop you. You can always find that perfect first line later.

+ +

“criticizing AI is racism,” says AI-backed writers group 😐 by D’Angelo

+ +

This one is not strictly speaking a video about writing, but it is a video about Nanowrimo: an American non-profit centered around the concept of writing a 50 000 words novel over the month of November. I hadn’t heard about the whole Nanowrimo AI fiasco before seeing this video pop up in my subscriptions, and D’Angelo provides some very interesting context around Nanowrimo’s new sponsors, and its already existing issues with other sponsors and with the Nanowrimo forums that they had to close down.

+ +

Long story short, Nanowrimo released a statement, visible in archives, now updated. The statement defended the use of AI as an aid to complete this challenge, using, to say the least, dubious arguments. All of this just one year after saying it was pretty much cheating to use software to boost your word count using a LLM, and after being sponsored by a generative AI company. I’m very sad to see the direction the organization is taking, as Nanowrimo was what allowed me to finish my first ever novel draft.

+ +

Their use of the concepts of ableism, classism and racism was misplaced and harmful to those that those terms stand to defend. AI companies are stealing the work of others to build artificial parrots that have a huge impact on our planet, and the people who have to train them to make sure they don’t show any harmful content, going very much against the values Nanowrimo are supposedly defending. The LLM models themselves, trained on our biased data, perpetuate ableism, classism and racism. If you want to learn more about AI’s issues, I recommend listening to some podcasts by Better Offline: How the AI bubble bursts and Tech won’t save us: Generative AI is a climate disaster.

+ +

That wraps up these recent favorites, I hope you liked it! I was hesitant to make this kind of article as I feel it maybe doesn’t bring as much value as more original content, but it’s still a good exercise and can still hopefully make you want to explore one of these topics a big more.

+ +
+ +
+ + + + + + + + + + +
+
+ + + + This post is licensed under + + CC BY 4.0 + + by the author. + +
+ + + + + +
+ +
+ +
+ + + +
+ + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/redirects.json b/redirects.json new file mode 100644 index 0000000..4be124c --- /dev/null +++ b/redirects.json @@ -0,0 +1 @@ +{"/norobots/":"https://bookshelf.thequinn.fr/404.html","/assets/":"https://bookshelf.thequinn.fr/404.html","/posts/":"https://bookshelf.thequinn.fr/404.html"} \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..e4c380a --- /dev/null +++ b/robots.txt @@ -0,0 +1,5 @@ +User-agent: * + +Disallow: /norobots/ + +Sitemap: https://bookshelf.thequinn.fr/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..155a58d --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,208 @@ + + + +https://bookshelf.thequinn.fr/posts/the-zombie/ +2022-09-04T16:48:00+02:00 + + +https://bookshelf.thequinn.fr/posts/a-guest/ +2022-09-06T16:48:00+02:00 + + +https://bookshelf.thequinn.fr/posts/la-brume/ +2022-09-20T16:49:00+02:00 + + +https://bookshelf.thequinn.fr/posts/le-tricot/ +2022-09-22T16:38:00+02:00 + + +https://bookshelf.thequinn.fr/posts/know-my-name/ +2022-10-04T15:52:00+02:00 + + +https://bookshelf.thequinn.fr/posts/killing-butterflies/ +2022-10-20T17:57:00+02:00 + + +https://bookshelf.thequinn.fr/posts/handle-with-care/ +2022-10-21T16:58:00+02:00 + + +https://bookshelf.thequinn.fr/posts/the-vampire/ +2022-10-30T17:00:00+01:00 + + +https://bookshelf.thequinn.fr/posts/representations-non-binaires/ +2022-11-21T13:22:00+01:00 + + +https://bookshelf.thequinn.fr/posts/a-difficult-child/ +2022-11-30T09:45:00+01:00 + + +https://bookshelf.thequinn.fr/posts/a-warm-memory/ +2022-12-06T16:40:00+01:00 + + +https://bookshelf.thequinn.fr/posts/what-i-learned-from-journaling/ +2023-01-08T05:27:00+01:00 + + +https://bookshelf.thequinn.fr/posts/why-should-you-journal/ +2023-01-21T15:42:00+01:00 + + +https://bookshelf.thequinn.fr/posts/after-the-party/ +2023-01-21T16:47:00+01:00 + + +https://bookshelf.thequinn.fr/posts/start-journaling/ +2023-01-28T14:51:00+01:00 + + +https://bookshelf.thequinn.fr/posts/shame/ +2023-02-10T14:13:00+01:00 + + +https://bookshelf.thequinn.fr/posts/journaling-donts/ +2023-02-17T14:07:00+01:00 + + +https://bookshelf.thequinn.fr/posts/i-forgot-all-of-their-names/ +2023-02-18T15:19:00+01:00 + + +https://bookshelf.thequinn.fr/posts/coupe-menstruelle/ +2023-03-23T16:05:00+01:00 + + +https://bookshelf.thequinn.fr/posts/quelqun-pour-maimer/ +2023-04-10T13:28:00+02:00 + + +https://bookshelf.thequinn.fr/posts/ils-ne-veulent-pas-etre-tes-amis/ +2023-06-04T17:53:00+02:00 + + +https://bookshelf.thequinn.fr/posts/finish-their-food/ +2023-06-19T17:00:00+02:00 + + +https://bookshelf.thequinn.fr/posts/des-mots-sur-un-muret/ +2024-02-11T19:44:00+01:00 + + +https://bookshelf.thequinn.fr/posts/enterrements/ +2024-03-11T19:38:00+01:00 + + +https://bookshelf.thequinn.fr/posts/should-i-be-on-social-media/ +2024-05-01T19:39:00+02:00 + + +https://bookshelf.thequinn.fr/posts/eras-tour/ +2024-06-08T19:55:00+02:00 + + +https://bookshelf.thequinn.fr/posts/writing-like-colleen-hoover/ +2024-06-08T19:55:00+02:00 + + +https://bookshelf.thequinn.fr/categories/ +2024-09-08T15:58:55+02:00 + + +https://bookshelf.thequinn.fr/tags/ +2024-09-08T15:58:55+02:00 + + +https://bookshelf.thequinn.fr/archives/ +2024-09-08T15:58:55+02:00 + + +https://bookshelf.thequinn.fr/about/ +2024-09-08T15:58:55+02:00 + + +https://bookshelf.thequinn.fr/ + + +https://bookshelf.thequinn.fr/tags/emotions/ + + +https://bookshelf.thequinn.fr/tags/relations/ + + +https://bookshelf.thequinn.fr/tags/genre/ + + +https://bookshelf.thequinn.fr/tags/gender/ + + +https://bookshelf.thequinn.fr/tags/violence/ + + +https://bookshelf.thequinn.fr/tags/coming-out/ + + +https://bookshelf.thequinn.fr/tags/self-acceptance/ + + +https://bookshelf.thequinn.fr/tags/representations/ + + +https://bookshelf.thequinn.fr/tags/journaling/ + + +https://bookshelf.thequinn.fr/tags/food/ + + +https://bookshelf.thequinn.fr/tags/mental-health/ + + +https://bookshelf.thequinn.fr/tags/home/ + + +https://bookshelf.thequinn.fr/tags/tech/ + + +https://bookshelf.thequinn.fr/tags/writing/ + + +https://bookshelf.thequinn.fr/tags/musique/ + + +https://bookshelf.thequinn.fr/categories/english/ + + +https://bookshelf.thequinn.fr/categories/poetry/ + + +https://bookshelf.thequinn.fr/categories/fran%C3%A7ais/ + + +https://bookshelf.thequinn.fr/categories/po%C3%A8mes/ + + +https://bookshelf.thequinn.fr/categories/reflections/ + + +https://bookshelf.thequinn.fr/categories/r%C3%A9flexions/ + + +https://bookshelf.thequinn.fr/categories/gallery/ + + +https://bookshelf.thequinn.fr/categories/nouvelles/ + + +https://bookshelf.thequinn.fr/categories/favorites/ + + +https://bookshelf.thequinn.fr/page2/ + + +https://bookshelf.thequinn.fr/page3/ + + diff --git a/sw.min.js b/sw.min.js new file mode 100644 index 0000000..05ba75c --- /dev/null +++ b/sw.min.js @@ -0,0 +1,4 @@ +/*! + * jekyll-theme-chirpy v7.1.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ + */ +!function(){"use strict";importScripts("/assets/js/data/swconf.js");const e=swconf.purge,t=swconf.interceptor;self.addEventListener("install",(t=>{e||t.waitUntil(caches.open(swconf.cacheName).then((e=>e.addAll(swconf.resources))))})),self.addEventListener("activate",(t=>{t.waitUntil(caches.keys().then((t=>Promise.all(t.map((t=>e||t!==swconf.cacheName?caches.delete(t):void 0))))))})),self.addEventListener("message",(e=>{"SKIP_WAITING"===e.data&&self.skipWaiting()})),self.addEventListener("fetch",(s=>{s.request.headers.has("range")||s.respondWith(caches.match(s.request).then((n=>n||fetch(s.request).then((n=>{const r=s.request.url;if(e||"GET"!==s.request.method||!function(e){const s=new URL(e),n=s.pathname;if(!s.protocol.startsWith("http"))return!1;for(const e of t.urlPrefixes)if(s.href.startsWith(e))return!1;for(const e of t.paths)if(n.startsWith(e))return!1;return!0}(r))return n;let a=n.clone();return caches.open(swconf.cacheName).then((e=>{e.put(s.request,a)})),n})))))}))}(); diff --git a/tags/coming-out/index.html b/tags/coming-out/index.html new file mode 100644 index 0000000..c2c27c1 --- /dev/null +++ b/tags/coming-out/index.html @@ -0,0 +1,1774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + coming-out | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/emotions/index.html b/tags/emotions/index.html new file mode 100644 index 0000000..6b5d487 --- /dev/null +++ b/tags/emotions/index.html @@ -0,0 +1,1942 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + emotions | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + emotions + 11 +

+ +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/food/index.html b/tags/food/index.html new file mode 100644 index 0000000..e4f4e41 --- /dev/null +++ b/tags/food/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + food | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/gender/index.html b/tags/gender/index.html new file mode 100644 index 0000000..dd1430a --- /dev/null +++ b/tags/gender/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gender | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/genre/index.html b/tags/genre/index.html new file mode 100644 index 0000000..c506a3a --- /dev/null +++ b/tags/genre/index.html @@ -0,0 +1,1798 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + genre | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/home/index.html b/tags/home/index.html new file mode 100644 index 0000000..ed837ef --- /dev/null +++ b/tags/home/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + +
+ + + + + +
+

+ + home + 1 +

+ +
+ + +
+ + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..8416b1b --- /dev/null +++ b/tags/index.html @@ -0,0 +1,1736 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tags | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tags +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/journaling/index.html b/tags/journaling/index.html new file mode 100644 index 0000000..3394b0b --- /dev/null +++ b/tags/journaling/index.html @@ -0,0 +1,1774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + journaling | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/mental-health/index.html b/tags/mental-health/index.html new file mode 100644 index 0000000..c40a5fe --- /dev/null +++ b/tags/mental-health/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mental-health | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/musique/index.html b/tags/musique/index.html new file mode 100644 index 0000000..8e58cd8 --- /dev/null +++ b/tags/musique/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + musique | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/relations/index.html b/tags/relations/index.html new file mode 100644 index 0000000..c09e219 --- /dev/null +++ b/tags/relations/index.html @@ -0,0 +1,1822 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + relations | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/representations/index.html b/tags/representations/index.html new file mode 100644 index 0000000..6b81915 --- /dev/null +++ b/tags/representations/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + representations | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/self-acceptance/index.html b/tags/self-acceptance/index.html new file mode 100644 index 0000000..bd28ce3 --- /dev/null +++ b/tags/self-acceptance/index.html @@ -0,0 +1,1750 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + self-acceptance | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/tech/index.html b/tags/tech/index.html new file mode 100644 index 0000000..739af2b --- /dev/null +++ b/tags/tech/index.html @@ -0,0 +1,1726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tech | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/violence/index.html b/tags/violence/index.html new file mode 100644 index 0000000..2e92025 --- /dev/null +++ b/tags/violence/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + violence | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/writing/index.html b/tags/writing/index.html new file mode 100644 index 0000000..59a2cf6 --- /dev/null +++ b/tags/writing/index.html @@ -0,0 +1,1726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + writing | Quinn's Bookshelf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + +
+ Tag +
+ + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + + +
+ +
+ +
+ + + + +
+

© + + + + cookie. + + + + Some rights reserved. + +

+ +

Using the Chirpy theme for Jekyll. +

+
+ +
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Trending Tags

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +