Building a
keyboard
from
scratch Jesse Vincent
jesse@fsck.com
http://keyboard.io
@obra / @keyboardio
Wednesday, July 24, 13
Why?
Wednesday, July 24, 13
My boss
stole my
keyboard
Wednesday, July 24, 13
WARNING
WARNING
There are no more cat
pictures in this talk
Wednesday, July 24, 13
I couldn’t find a
keyboard I wanted
Wednesday, July 24, 13
I tried
Wednesday, July 24, 13
So, you want to
make a keyboard?
Wednesday, July 24, 13
Tools you’ll need
Wednesday, July 24, 13
Soldering
Iron
http://www.amazon.com/dp/B000BRC2XU
$5+ ($86)
Wednesday, July 24, 13
Wire
cutter
$0.99
Wednesday, July 24, 13
Tools you’ll want
Wednesday, July 24, 13
Wire
cutter
http://www.adafruit.com/products/147
$7
Wednesday, July 24, 13
Solder Sucker
http://www.adafruit.com/products/148
$5
Wednesday, July 24, 13
Fine-tipped
tweezers
http://www.adafruit.com/products/422
$4
Wednesday, July 24, 13
Wire-wrapping
tool
http://www.amazon.com/dp/B006C43VJU
$13
Wednesday, July 24, 13
Multimeter
http://www.amazon.com/B000EVYGZA/
$20
Wednesday, July 24, 13
Hot Glue
Gun
http://www.amazon.com/dp/B0009XTPAO
$20
Wednesday, July 24, 13
Parts you’ll need
Wednesday, July 24, 13
Keyswitches
Wednesday, July 24, 13
Cherry MX
Keyswitches
http://www.cherrycorp.com/english/switches/key/mx.htm
$0.80/ea
Wednesday, July 24, 13
Key Caps
http://www.wasdkeyboards.com/87-key-cherry-mx-keycap-set.html
$37
Wednesday, July 24, 13
Don’t make
your own
Wednesday, July 24, 13
Wednesday, July 24, 13
26-30AWG
Enamel-insulated
magnet wire
http://www.amazon.com/dp/B0082CUQEI
Wednesday, July 24, 13
Rosin-core
Solder
http://www.amazon.com/dp/B008DEYEAW
$6
Wednesday, July 24, 13
Teensy 2.0
Microcontroller
http://www.pjrc.com/store/teensy.html
$16
Wednesday, July 24, 13
Arduino
Pro Micro
is also ok
https://www.sparkfun.com/products/11098
$20
Wednesday, July 24, 13
WARNING
WARNING
There is no more
Arduino in this talk
Wednesday, July 24, 13
MiniUSB
cable
$0
Wednesday, July 24, 13
Parts you’ll want
Wednesday, July 24, 13
$9
http://www.amazon.com/dp/B006C4ABR0
26-30AWG
Kynar-insulated
wire-wrapping
wire
Wednesday, July 24, 13
Jumper wires
http://www.adafruit.com/products/266
$7
Wednesday, July 24, 13
IN4148
Diodes
$12...for 500
http://www.digikey.com/product-detail/en/1N4148-T/1N4148DICT-ND/160623
Wednesday, July 24, 13
Parts you’ll make
Wednesday, July 24, 13
The case
Wednesday, July 24, 13
Design your own!
Wednesday, July 24, 13
14mm square holes
Wednesday, July 24, 13
3+ mm apart
Wednesday, July 24, 13
Top plate:
1.5 mm thick
Wednesday, July 24, 13
I designed
my first
keyboards in
OmniGraffle
Wednesday, July 24, 13
14mm
14mm
3+mm
3+mm
Wednesday, July 24, 13
Prototype
with paper
Wednesday, July 24, 13
Use lasers
to cut out
the pieces
Wednesday, July 24, 13
Use CAD to
model the
weirder
stuff
Wednesday, July 24, 13
openscad
module key(x,y,rotation) {
translate([(x*key_spacing),(y*key_spacing),-0.01]) {
rotate(rotation) key_inner();
}
}
module key_inner() {
union() {
translate([0,0,-3.5]) key_support();
cube(size=[keyswitch_x,keyswitch_y,keyswitch_plate_thickness], center=true);
}
}
module key_support() {
difference() {
cube(size=[key_spacing-2,key_spacing-2,6], center=true);
interior_bevels();
}
}
Wednesday, July 24, 13
openscadmodule keyColumn(x,y) {
translate([(x*key_spacing),(y*key_spacing),0]) {
key(0,0);
key(1,0);
key(2,0);
key(3,0);
}
}
module hand() {
rotate([0,0,-9]) keyColumn(0.5,-0.05);
rotate([0,0,-13]) keyColumn(0.1,1.4);
rotate([0,0,-15]) keyColumn(-0.2,2.7);
rotate([0,0,-20]) {
keyColumn(-0.2,4);
keyColumn(0,5);
key(2.2,6);
key(3.2,6);
}
translate([165,24,0]) thumbKeys();
}
Wednesday, July 24, 13
Wednesday, July 24, 13
What didn’t I mention?
Wednesday, July 24, 13
Printed
Circuit Board
Wednesday, July 24, 13
You do know
how to design
and etch
PCBs right?
Wednesday, July 24, 13
Can you teach me?
Wednesday, July 24, 13
Putting it together
Wednesday, July 24, 13
Try the keys & keycaps
Wednesday, July 24, 13
Start Soldering
Wednesday, July 24, 13
Flat pin:
Connect Diode
Square pin:
Connect wire
Wednesday, July 24, 13
Wire-wrap the keys in each row
Wednesday, July 24, 13
http://en.wikipedia.org/wiki/File:Wire_Wrapping.jpg
Wednesday, July 24, 13
Solder the
diodes in
columns
Wednesday, July 24, 13
Why Diodes?
Wednesday, July 24, 13
Key Ghosting
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
then trim
the terminal
wires
Wednesday, July 24, 13
Connect
them in
parallel
Wednesday, July 24, 13
Connect
the black
ends to
the keys
Wednesday, July 24, 13
Don’t
solder the
diodes to
each other
Wednesday, July 24, 13
You want the
wire-wrapping
wire
Wednesday, July 24, 13
Solder a wire to
each column
Wednesday, July 24, 13
Solder a wire to
each row
Wednesday, July 24, 13
Connect those wires to
the microcontroller
Wednesday, July 24, 13
Firmware
Wednesday, July 24, 13
Install avr-gcc
pjrc.com/teensy/gcc.html
Wednesday, July 24, 13
Install
Teensy
Loader
pjrc.com/teensy/loader.html
Wednesday, July 24, 13
Configure some
keyboard firmware
Wednesday, July 24, 13
github.com/humblehacker/keyboard
Wednesday, July 24, 13
% vi config.kspec
Wednesday, July 24, 13
Wednesday, July 24, 13
% make
Wednesday, July 24, 13
Wednesday, July 24, 13
Install your firmware
Wednesday, July 24, 13
Test your keyboard
Wednesday, July 24, 13
(This is why
you want a
multimeter)
Wednesday, July 24, 13
My experiences
Wednesday, July 24, 13
Mark 1 Keyboard
Wednesday, July 24, 13
shell from
ergodox.org
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Mark 2 Keyboard
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13
Wednesday, July 24, 13

Building a keyboard from scratch

",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eL]=t,o[eD]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,ud(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&iV(t)}}return iZ(t),iQ(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iV(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(s(166));if(e=G.current,rO(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rw))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eL]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||us(e.nodeValue,n)))||rP(t,!0)}else(e=uh(e).createTextNode(r))[eL]=t,t.stateNode=e}return iZ(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rO(t),null!==n){if(null===e){if(!r)throw Error(s(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(s(557));e[eL]=t}else rL(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iZ(t),e=!1}else n=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return aH(t),t;return aH(t),null}if(0!=(128&t.flags))throw Error(s(558))}return iZ(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=rO(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(s(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(s(317));a[eL]=t}else rL(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iZ(t),a=!1}else a=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return aH(t),t;return aH(t),null}}if(aH(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iK(t,t.updateQueue),iZ(t),null;case 4:return Y(),null===e&&s9(t.stateNode.containerInfo),iZ(t),null;case 10:return rj(t.type),iZ(t),null;case 19:if(F(aG),null===(r=t.memoizedState))return iZ(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)iJ(r,!1);else{if(0!==lq||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=aq(e))){for(t.flags|=128,iJ(r,!1),t.updateQueue=e=o.updateQueue,iK(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rn(n,e),n=n.sibling;return j(aG,1&aG.current|2),rN&&rb(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&eo()>l2&&(t.flags|=128,a=!0,iJ(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=aq(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,iK(t,e),iJ(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!rN)return iZ(t),null}else 2*eo()-r.renderingStartTime>l2&&0x20000000!==n&&(t.flags|=128,a=!0,iJ(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=eo(),e.sibling=null,n=aG.current,j(aG,a?1&n|2:1&n),rN&&rb(t,r.treeForkCount),e;return iZ(t),null;case 22:case 23:return aH(t),aM(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(iZ(t),6&t.subtreeFlags&&(t.flags|=8192)):iZ(t),null!==(n=t.updateQueue)&&iK(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&F(r9),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rj(rZ),iZ(t),null;case 25:case 30:return null}throw Error(s(156,t.tag))}(t.alternate,t,lG);if(null!==n){lU=n;return}if(null!==(t=t.sibling)){lU=t;return}lU=t=e}while(null!==t)0===lq&&(lq=5)}function sT(e,t){do{var n=function(e,t){switch(rE(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rj(rZ),Y(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Q(t),null;case 31:if(null!==t.memoizedState){if(aH(t),null===t.alternate)throw Error(s(340));rL()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(aH(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(s(340));rL()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return F(aG),null;case 4:return Y(),null;case 10:return rj(t.type),null;case 22:case 23:return aH(t),aM(),null!==e&&F(r9),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rj(rZ),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lU=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lU=e;return}lU=e=n}while(null!==e)lq=6,lU=null}function sw(e,t,n,r,a,o,i,l,u){e.cancelPendingCommit=null;do sC();while(0!==l8)if(0!=(6&lD))throw Error(s(327));if(null!==t){if(t===e.current)throw Error(s(177));if(!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0g&&(i=g,g=h,h=i);var y=nx(l,h),v=nx(l,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=d.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;ln?32:n,L.T=null,n=se,se=null;var o=l5,i=l9;if(l8=0,l6=l5=null,l9=0,0!=(6&lD))throw Error(s(331));var l=lD;if(lD|=4,lI(o.current),lw(o,o.current,i,n),lD=l,sq(0,!1),ep&&"function"==typeof ep.onPostCommitFiberRoot)try{ep.onPostCommitFiberRoot(ef,o)}catch(e){}return!0}finally{D.p=a,L.T=r,sR(e,t)}}function sI(e,t,n){t=ru(n,t),t=ig(e.stateNode,t,2),null!==(e=aw(e,t,2))&&(ek(e,2),sG(e))}function sA(e,t,n){if(3===e.tag)sI(e,e,n);else for(;null!==t;){if(3===t.tag){sI(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===l4||!l4.has(r))){e=ru(n,e),null!==(r=aw(t,n=iy(2),2))&&(iv(n,r,t,e),ek(r,2),sG(r));break}}t=t.return}}function sO(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lL;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(lH=!0,a.add(n),e=sL.bind(null,e,t,n),t.then(e,e))}function sL(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lM===e&&(lz&n)===n&&(4===lq||3===lq&&(0x3c00000&lz)===lz&&300>eo()-l0?0==(2&lD)&&sf(e,0):lV|=n,lX===lz&&(lX=0)),sG(e)}function sD(e,t){0===t&&(t=eT()),null!==(e=n4(e,t))&&(ek(e,t),sG(e))}function sM(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sD(e,n)}function sU(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}null!==r&&r.delete(t),sD(e,n)}var sz=null,sB=null,sF=!1,sj=!1,s$=!1,sH=0;function sG(e){e!==sB&&null===e.next&&(null===sB?sz=sB=e:sB=sB.next=e),sj=!0,sF||(sF=!0,uT(function(){0!=(6&lD)?et(el,sW):sY()}))}function sq(e,t){if(!s$&&sj){s$=!0;do for(var n=!1,r=sz;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-em(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,sX(r,o))}else o=lz,0==(3&(o=eS(r,r===lM?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eE(r,o)||(n=!0,sX(r,o));r=r.next}while(n)s$=!1}}function sW(){sY()}function sY(){sj=sF=!1;var e,t=0;0===sH||((e=window.event)&&"popstate"===e.type?e===ub||(ub=e,0):(ub=null,1))||(t=sH);for(var n=eo(),r=null,a=sz;null!==a;){var o=a.next,i=sV(a,n);0===i?(a.next=null,null===r?sz=o:r.next=o,null===o&&(sB=r)):(r=a,(0!==t||0!=(3&i))&&(sj=!0)),a=o}0!==l8&&5!==l8||sq(t,!1),0!==sH&&(sH=0)}function sV(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0 title"):null)}function u3(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var u4=0;function u8(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages)){if(this.stylesheets)u6(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var u5=null;function u6(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,u5=new Map,t.forEach(u9,e),u5=null,u8.call(e))}function u9(e,t){if(!(4&t.state.loading)){var n=u5.get(e);if(n)var r=n.get(null);else{n=new Map,u5.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;otypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cU=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cU.isDisabled&&cU.supportsFiber)try{ef=cU.inject({bundleType:0,version:"19.2.5",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.5"}),ep=cU}catch(e){}}n.createRoot=function(e,t){if(!u(e))throw Error(s(299));var n=!1,r="",a=ic,o=id,i=ip;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=ct(e,1,!1,null,null,n,r,null,a,o,i,cO),e[eM]=t.current,s9(e),new cL(t)},n.hydrateRoot=function(e,t,n){if(!u(e))throw Error(s(299));var r,a=!1,o="",i=ic,l=id,c=ip,d=null;return null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(o=n.identifierPrefix),void 0!==n.onUncaughtError&&(i=n.onUncaughtError),void 0!==n.onCaughtError&&(l=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.formState&&(d=n.formState)),(t=ct(e,1,!0,t,null!=n?n:null,a,o,d,i,l,c,cO)).context=(r=null,n6),n=t.current,(o=aT(a=eC(a=sa()))).callback=null,aw(n,o,a),n=a,t.current.lanes=n,ek(t,n),sG(t),e[eM]=t.current,s9(e),new cD(t)},n.version="19.2.5"},3362,(e,t,n)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(855852)},645419,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"Portal",{enumerable:!0,get:function(){return o}});let r=e.r(687652),a=e.r(615882),o=({children:e,type:t})=>{let[n,o]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=document.createElement(t);return document.body.appendChild(e),o(e),()=>{document.body.removeChild(e)}},[t]),n?(0,a.createPortal)(e,n):null};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},782587,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return l},isEqualNode:function(){return i}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(310849);function i(e,t){if(e instanceof HTMLElement&&t instanceof HTMLElement){let n=t.getAttribute("nonce");if(n&&!e.getAttribute("nonce")){let r=t.cloneNode(!0);return r.setAttribute("nonce",""),r.nonce=n,n===e.nonce&&e.isEqualNode(r)}}return e.isEqualNode(t)}function l(){return{mountedInstances:new Set,updateHead:e=>{let t={};e.forEach(e=>{if("link"===e.type&&e.props["data-optimized-fonts"])if(document.querySelector(`style[data-href="${e.props["data-href"]}"]`))return;else e.props.href=e.props["data-href"],e.props["data-href"]=void 0;let n=t[e.type]||[];n.push(e),t[e.type]=n});let n=t.title?t.title[0]:null,r="";if(n){let{children:e}=n.props;r="string"==typeof e?e:Array.isArray(e)?e.join(""):""}r!==document.title&&(document.title=r),["meta","base","link","style","script"].forEach(e=>{!function(e,t){let n=document.querySelector("head");if(!n)return;let r=new Set(n.querySelectorAll(`${e}[data-next-head]`));if("meta"===e){let e=n.querySelector("meta[charset]");null!==e&&r.add(e)}let a=[];for(let e=0;e{"use strict";t.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},683969,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return l},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return s},UNDERSCORE_NOT_FOUND_ROUTE:function(){return o},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return i}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o="/_not-found",i=`${o}/page`,l="/_global-error",s=`${l}/page`},324080,(e,t,n)=>{"use strict";var r,a=e.i(710931);Object.defineProperty(n,"__esModule",{value:!0});var o={APP_CLIENT_INTERNALS:function(){return en},APP_PATHS_MANIFEST:function(){return _},APP_PATH_ROUTES_MANIFEST:function(){return S},AdapterOutputType:function(){return d},BARREL_OPTIMIZATION_PREFIX:function(){return Y},BLOCKED_PAGES:function(){return $},BUILD_ID_FILE:function(){return j},BUILD_MANIFEST:function(){return E},CLIENT_PUBLIC_FILES_PATH:function(){return H},CLIENT_REFERENCE_MANIFEST:function(){return V},CLIENT_STATIC_FILES_PATH:function(){return G},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return ee},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return et},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return eo},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return ei},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return er},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return ea},COMPILER_INDEXES:function(){return c},COMPILER_NAMES:function(){return u},CONFIG_FILES:function(){return F},DEFAULT_RUNTIME_WEBPACK:function(){return el},DEFAULT_SANS_SERIF_FONT:function(){return ef},DEFAULT_SERIF_FONT:function(){return ed},DEV_CLIENT_MIDDLEWARE_MANIFEST:function(){return U},DEV_CLIENT_PAGES_MANIFEST:function(){return O},DYNAMIC_CSS_MANIFEST:function(){return Z},EDGE_RUNTIME_WEBPACK:function(){return es},EDGE_UNSUPPORTED_NODE_APIS:function(){return ey},EXPORT_DETAIL:function(){return x},EXPORT_MARKER:function(){return N},FUNCTIONS_CONFIG_MANIFEST:function(){return T},IMAGES_MANIFEST:function(){return I},INTERCEPTION_ROUTE_REWRITE_MANIFEST:function(){return J},MIDDLEWARE_BUILD_MANIFEST:function(){return X},MIDDLEWARE_MANIFEST:function(){return L},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return K},MODERN_BROWSERSLIST_TARGET:function(){return l.default},NEXT_BUILTIN_DOCUMENT:function(){return W},NEXT_FONT_MANIFEST:function(){return k},PAGES_MANIFEST:function(){return b},PHASE_ANALYZE:function(){return p},PHASE_DEVELOPMENT_SERVER:function(){return g},PHASE_EXPORT:function(){return f},PHASE_INFO:function(){return v},PHASE_PRODUCTION_BUILD:function(){return m},PHASE_PRODUCTION_SERVER:function(){return h},PHASE_TEST:function(){return y},PREFETCH_HINTS:function(){return C},PRERENDER_MANIFEST:function(){return R},REACT_LOADABLE_MANIFEST:function(){return z},ROUTES_MANIFEST:function(){return P},RSC_MODULE_TYPES:function(){return eg},SERVER_DIRECTORY:function(){return B},SERVER_FILES_MANIFEST:function(){return A},SERVER_PROPS_ID:function(){return ec},SERVER_REFERENCE_MANIFEST:function(){return Q},STATIC_PROPS_ID:function(){return eu},STATIC_STATUS_PAGES:function(){return ep},STRING_LITERAL_DROP_BUNDLE:function(){return q},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return w},SYSTEM_ENTRYPOINTS:function(){return ev},TRACE_OUTPUT_VERSION:function(){return em},TURBOPACK_CLIENT_BUILD_MANIFEST:function(){return M},TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST:function(){return D},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return eh},UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY},UNDERSCORE_NOT_FOUND_ROUTE:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}};for(var i in o)Object.defineProperty(n,i,{enumerable:!0,get:o[i]});let l=e.r(2879)._(e.r(425862)),s=e.r(683969),u={client:"client",server:"server",edgeServer:"edge-server"},c={[u.client]:0,[u.server]:1,[u.edgeServer]:2};var d=((r={}).PAGES="PAGES",r.PAGES_API="PAGES_API",r.APP_PAGE="APP_PAGE",r.APP_ROUTE="APP_ROUTE",r.PRERENDER="PRERENDER",r.STATIC_FILE="STATIC_FILE",r.MIDDLEWARE="MIDDLEWARE",r);let f="phase-export",p="phase-analyze",m="phase-production-build",h="phase-production-server",g="phase-development-server",y="phase-test",v="phase-info",b="pages-manifest.json",_="app-paths-manifest.json",S="app-path-routes-manifest.json",E="build-manifest.json",T="functions-config-manifest.json",w="subresource-integrity-manifest",k="next-font-manifest",N="export-marker.json",x="export-detail.json",R="prerender-manifest.json",C="prefetch-hints.json",P="routes-manifest.json",I="images-manifest.json",A="required-server-files",O="_devPagesManifest.json",L="middleware-manifest.json",D="_clientMiddlewareManifest.js",M="client-build-manifest.json",U="_devMiddlewareManifest.json",z="react-loadable-manifest.json",B="server",F=["next.config.js","next.config.mjs","next.config.ts",...a.default?.features?.typescript?["next.config.mts"]:[]],j="BUILD_ID",$=["/_document","/_app","/_error"],H="public",G="static",q="__NEXT_DROP_CLIENT_FILE__",W="__NEXT_BUILTIN_DOCUMENT__",Y="__barrel_optimize__",V="client-reference-manifest",Q="server-reference-manifest",X="middleware-build-manifest",K="middleware-react-loadable-manifest",J="interception-route-rewrite-manifest",Z="dynamic-css-manifest",ee="main",et=`${ee}-app`,en="app-pages-internals",er="react-refresh",ea="webpack",eo="polyfills",ei=Symbol(eo),el="webpack-runtime",es="edge-runtime-webpack",eu="__N_SSG",ec="__N_SSP",ed={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},ef={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},ep=["/500"],em=1,eh=6e3,eg={client:"client",server:"server"},ey=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],ev=new Set([ee,er,et]);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},212547,(e,t,n)=>{"use strict";var r=e.i(710931);Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return m}});let a=e.r(2879),o=e.r(417572),i=e.r(337991),l=a._(e.r(332806)),s=e.r(441526),u=e.r(321238),c=e.r(183530),d=e.r(320989),f=e.r(381361);e.r(324080);let p=e.r(330681);class m{constructor(e,t){this.routeLoader=(0,f.createRouteLoader)(t),this.buildId=e,this.assetPrefix=t,this.promisedSsgManifest=new Promise(e=>{window.__SSG_MANIFEST?e(window.__SSG_MANIFEST):window.__SSG_MANIFEST_CB=()=>{e(window.__SSG_MANIFEST)}})}getPageList(){return(0,f.getClientBuildManifest)().then(e=>e.sortedPages)}getMiddleware(){if(r.default.env.__NEXT_MIDDLEWARE_MATCHERS){let e=r.default.env.__NEXT_MIDDLEWARE_MATCHERS;return window.__MIDDLEWARE_MATCHERS=e||void 0,window.__MIDDLEWARE_MATCHERS}if(window.__MIDDLEWARE_MATCHERS)return window.__MIDDLEWARE_MATCHERS;{let e=new Promise(e=>{let t=self.__MIDDLEWARE_MATCHERS_CB;self.__MIDDLEWARE_MATCHERS_CB=()=>{e(self.__MIDDLEWARE_MATCHERS),t&&t()}});return(0,p.resolvePromiseWithTimeout)(e,(0,f.markAssetError)(Object.defineProperty(Error("Failed to load client middleware manifest"),"__NEXT_ERROR_CODE",{value:"E980",enumerable:!1,configurable:!0})),void 0)}}getDataHref(e){var t;let n,{asPath:r,href:a,locale:f}=e,{pathname:p,query:m,search:h}=(0,c.parseRelativeUrl)(a),{pathname:g}=(0,c.parseRelativeUrl)(r),y=(0,d.removeTrailingSlash)(p);if("/"!==y[0])throw Object.defineProperty(Error(`Route name should start with a "/", got "${y}"`),"__NEXT_ERROR_CODE",{value:"E303",enumerable:!1,configurable:!0});return t=e.skipInterpolation?g:(0,u.isDynamicRoute)(y)?(0,i.interpolateAs)(p,g,m).result:y,n=(0,l.default)((0,d.removeTrailingSlash)((0,s.addLocale)(t,f)),".json"),(0,o.addBasePath)(`/_next/data/${this.buildId}${n}${h}`,!0)}_isSsg(e){return this.promisedSsgManifest.then(t=>t.has(e))}loadPage(e){return this.routeLoader.loadRoute(e).then(e=>{if("component"in e)return{page:e.component,mod:e.exports,styleSheets:e.styles.map(e=>({href:e.href,text:e.content}))};throw e.error})}prefetch(e){return this.routeLoader.prefetch(e)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},402321,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={RouteAnnouncer:function(){return c},default:function(){return d}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(2879),i=e.r(318008),l=o._(e.r(687652)),s=e.r(812444),u={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",top:0,width:"1px",whiteSpace:"nowrap",wordWrap:"normal"},c=()=>{let{asPath:e}=(0,s.useRouter)(),[t,n]=l.default.useState(""),r=l.default.useRef(e);return l.default.useEffect(()=>{if(r.current!==e)if(r.current=e,document.title)n(document.title);else{let t=document.querySelector("h1");n((t?.innerText??t?.textContent)||e)}},[e]),(0,i.jsx)("p",{"aria-live":"assertive",id:"__next-route-announcer__",role:"alert",style:u,children:t})},d=c;("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},543127,(e,t,n)=>{"use strict";function r(e){return new URL(e,"http://n").searchParams}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"asPathToSearchParams",{enumerable:!0,get:function(){return r}})},609896,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={PathnameContextProviderAdapter:function(){return h},adaptForAppRouterInstance:function(){return f},adaptForPathParams:function(){return m},adaptForSearchParams:function(){return p}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(887602),i=e.r(318008),l=o._(e.r(687652)),s=e.r(153400),u=e.r(315500),c=e.r(543127),d=e.r(948805);function f(e){return{back(){e.back()},forward(){e.forward()},refresh(){e.reload()},hmrRefresh(){},push(t,{scroll:n}={}){e.push(t,void 0,{scroll:n})},replace(t,{scroll:n}={}){e.replace(t,void 0,{scroll:n})},prefetch(t){e.prefetch(t)}}}function p(e){return e.isReady&&e.query?(0,c.asPathToSearchParams)(e.asPath):new URLSearchParams}function m(e){if(!e.isReady||!e.query)return null;let t={};for(let n of Object.keys((0,d.getRouteRegex)(e.pathname).groups))t[n]=e.query[n];return t}function h({children:e,router:t,...n}){let r=(0,l.useRef)(n.isAutoExport),a=(0,l.useMemo)(()=>{let e,n=r.current;if(n&&(r.current=!1),(0,u.isDynamicRoute)(t.pathname)&&(t.isFallback||n&&!t.isReady))return null;try{e=new URL(t.asPath,"http://f")}catch(e){return"/"}return e.pathname},[t.asPath,t.isFallback,t.isReady,t.pathname]);return(0,i.jsx)(s.PathnameContext.Provider,{value:a,children:e})}},458627,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{globalThis.console.error(e)};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},394173,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={isRecoverableError:function(){return c},onRecoverableError:function(){return d}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(2879),i=e.r(456737),l=o._(e.r(646286)),s=e.r(458627),u=new WeakSet;function c(e){return u.has(e)}let d=e=>{let t=(0,l.default)(e)&&"cause"in e?e.cause:e;(0,i.isBailoutToCSRError)(t)||(0,s.reportGlobalError)(t)};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},765161,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return o}});let r=e.r(2879)._(e.r(321774));class a{constructor(e,t,n){this.name=e,this.attributes=t.attributes??{},this.startTime=t.startTime??Date.now(),this.onSpanEnd=n,this.state={state:"inprogress"}}end(e){if("ended"===this.state.state)throw Object.defineProperty(Error("Span has already ended"),"__NEXT_ERROR_CODE",{value:"E17",enumerable:!1,configurable:!0});this.state={state:"ended",endTime:e??Date.now()},this.onSpanEnd(this)}}let o=new class{startSpan(e,t){return new a(e,t,this.handleSpanEnd)}onSpanEnd(e){return this._emitter.on("spanend",e),()=>{this._emitter.off("spanend",e)}}constructor(){this._emitter=(0,r.default)(),this.handleSpanEnd=e=>{this._emitter.emit("spanend",e)}}};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},778414,(e,t,n)=>{"use strict";let r,a,o,i,l,s,u,c,d,f,p,m;Object.defineProperty(n,"__esModule",{value:!0});var h={emitter:function(){return $},hydrate:function(){return ef},initialize:function(){return q},router:function(){return r},version:function(){return j}};for(var g in h)Object.defineProperty(n,g,{enumerable:!0,get:h[g]});let y=e.r(2879),v=e.r(318008);e.r(465906);let b=y._(e.r(687652)),_=y._(e.r(3362)),S=e.r(85373),E=y._(e.r(321774)),T=e.r(655337),w=e.r(502311),k=e.r(321238),N=e.r(220877),x=e.r(8929),R=e.r(645419),C=y._(e.r(782587)),P=y._(e.r(212547)),I=e.r(402321),A=e.r(812444),O=e.r(646286),L=e.r(646403),D=e.r(155659),M=e.r(346108),U=e.r(914463),z=e.r(609896),B=e.r(153400),F=e.r(394173);e.r(765161),e.r(592707);let j="16.2.3",$=(0,E.default)(),H=!1;class G extends b.default.Component{componentDidCatch(e,t){this.props.fn(e,t)}componentDidMount(){this.scrollToHash(),r.isSsr&&(a.isFallback||a.nextExport&&((0,k.isDynamicRoute)(r.pathname)||location.search||H)||a.props&&a.props.__N_SSG&&(location.search||H))&&r.replace(r.pathname+"?"+String((0,N.assign)((0,N.urlQueryToSearchParams)(r.query),new URLSearchParams(location.search))),o,{_h:1,shallow:!a.isFallback&&!H}).catch(e=>{if(!e.cancelled)throw e})}componentDidUpdate(){this.scrollToHash()}scrollToHash(){let{hash:e}=location;if(!(e=e&&e.substring(1)))return;let t=document.getElementById(e);t&&setTimeout(()=>t.scrollIntoView(),0)}render(){return this.props.children}}async function q(t={}){a=JSON.parse(document.getElementById("__NEXT_DATA__").textContent),window.__NEXT_DATA__=a,m=a.defaultLocale;let n=a.assetPrefix||"";self.__next_set_public_path__(`${n}/_next/`),o=(0,x.getURL)(),(0,M.hasBasePath)(o)&&(o=(0,D.removeBasePath)(o));{let{normalizeLocalePath:t}=e.r(47776),{detectDomainLocale:n}=e.r(890020),{parseRelativeUrl:r}=e.r(183530),{formatUrl:i}=e.r(439837);if(a.locales){let e=r(o),l=t(e.pathname,a.locales);l.detectedLocale?(e.pathname=l.pathname,o=i(e)):m=a.locale;let s=n([{domain:"www.slideshare.net",defaultLocale:"en"},{domain:"de.slideshare.net",defaultLocale:"de"},{domain:"es.slideshare.net",defaultLocale:"es"},{domain:"pt.slideshare.net",defaultLocale:"pt"},{domain:"fr.slideshare.net",defaultLocale:"fr"}],window.location.hostname);s&&(m=s.defaultLocale)}}if(a.scriptLoader){let{initScriptLoader:t}=e.r(23331);t(a.scriptLoader)}i=new P.default(a.buildId,n);let u=([e,t])=>i.routeLoader.onEntrypoint(e,t);return window.__NEXT_P&&window.__NEXT_P.map(e=>setTimeout(()=>u(e),0)),window.__NEXT_P=[],window.__NEXT_P.push=u,(s=(0,C.default)()).getIsSsr=()=>r.isSsr,l=document.getElementById("__next"),{assetPrefix:n}}function W(e,t){return(0,v.jsx)(e,{...t})}function Y({children:e}){let t=b.default.useMemo(()=>(0,z.adaptForAppRouterInstance)(r),[]);return(0,v.jsx)(G,{fn:e=>Q({App:d,err:e}).catch(e=>console.error("Error rendering page: ",e)),children:(0,v.jsx)(U.AppRouterContext.Provider,{value:t,children:(0,v.jsx)(B.SearchParamsContext.Provider,{value:(0,z.adaptForSearchParams)(r),children:(0,v.jsx)(z.PathnameContextProviderAdapter,{router:r,isAutoExport:self.__NEXT_DATA__.autoExport??!1,children:(0,v.jsx)(B.PathParamsContext.Provider,{value:(0,z.adaptForPathParams)(r),children:(0,v.jsx)(T.RouterContext.Provider,{value:(0,A.makePublicRouterInstance)(r),children:(0,v.jsx)(S.HeadManagerContext.Provider,{value:s,children:(0,v.jsx)(L.ImageConfigContext.Provider,{value:{deviceSizes:[],imageSizes:[],qualities:[75],path:"/_next/image/",loader:"custom",dangerouslyAllowSVG:!1,unoptimized:!1},children:e})})})})})})})})}let V=e=>t=>{let n={...t,Component:p,err:a.err,router:r};return(0,v.jsx)(Y,{children:W(e,n)})};function Q(t){let{App:n,err:l}=t;return console.error(l),console.error("A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred"),i.loadPage("/_error").then(({page:r,styleSheets:a})=>u?.Component===r?e.A(163192).then(r=>e.A(186384).then(e=>(t.App=n=e.default,r))).then(e=>({ErrorComponent:e.default,styleSheets:[]})):{ErrorComponent:r,styleSheets:a}).then(({ErrorComponent:e,styleSheets:i})=>{let s=V(n),u={Component:e,AppTree:s,router:r,ctx:{err:l,pathname:a.page,query:a.query,asPath:o,AppTree:s}};return Promise.resolve(t.props?.err?t.props:(0,x.loadGetInitialProps)(n,u)).then(n=>ec({...t,err:l,Component:e,styleSheets:i,props:n}))})}function X({callback:e}){return b.default.useLayoutEffect(()=>e(),[e]),null}let K="beforeRender",J="afterRender",Z="afterHydrate",ee="routeChange",et="Next.js-hydration",en="Next.js-route-change-to-render",er="Next.js-render",ea=null,eo=!0;function ei(){[K,Z,J,ee].forEach(e=>performance.clearMarks(e))}function el(){x.ST&&(performance.mark(Z),performance.getEntriesByName(K,"mark").length&&(performance.measure("Next.js-before-hydration","navigationStart",K),performance.measure(et,K,Z)),f&&performance.getEntriesByName(et).forEach(f),ei())}function es(){if(!x.ST)return;performance.mark(J);let e=performance.getEntriesByName(ee,"mark");e.length&&(performance.getEntriesByName(K,"mark").length&&(performance.measure(en,e[0].name,K),performance.measure(er,K,J),f&&(performance.getEntriesByName(er).forEach(f),performance.getEntriesByName(en).forEach(f))),ei(),[en,er].forEach(e=>performance.clearMeasures(e)))}function eu({callbacks:e,children:t}){return b.default.useLayoutEffect(()=>e.forEach(e=>e()),[e]),t}function ec(e){var t,n;let a,o,{App:i,Component:s,props:d,err:f}=e,p="initial"in e?void 0:e.styleSheets;s=s||u.Component;let m={...d=d||u.props,Component:s,err:f,router:r};u=m;let h=new Promise((e,t)=>{c&&c(),o=()=>{c=null,e()},c=()=>{c=null;let e=Object.defineProperty(Error("Cancel rendering route"),"__NEXT_ERROR_CODE",{value:"E503",enumerable:!1,configurable:!0});e.cancelled=!0,t(e)}});function g(){o()}!function(){let e;if(!p)return;let t=new Set((e=document.querySelectorAll("style[data-n-href]"),[].slice.call(e)).map(e=>e.getAttribute("data-n-href"))),n=document.querySelector("noscript[data-n-css]"),r=n?.getAttribute("data-n-css");p.forEach(({href:e,text:n})=>{if(!t.has(e)){let t=document.createElement("style");t.setAttribute("data-n-href",e),t.setAttribute("media","x"),r&&t.setAttribute("nonce",r),document.head.appendChild(t),t.appendChild(document.createTextNode(n))}})}();let y=(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(X,{callback:function(){if(e.scroll){let{x:t,y:n}=e.scroll;(0,w.disableSmoothScrollDuringRouteTransition)(()=>{window.scrollTo(t,n)})}}}),(0,v.jsxs)(Y,{children:[W(i,m),(0,v.jsx)(R.Portal,{type:"next-route-announcer",children:(0,v.jsx)(I.RouteAnnouncer,{})})]})]});return t=l,n=e=>(0,v.jsx)(eu,{callbacks:[e,g],children:y}),x.ST&&performance.mark(K),a=n(eo?el:es),ea?(0,b.default.startTransition)(()=>{ea.render(a)}):(ea=_.default.hydrateRoot(t,a,{onRecoverableError:F.onRecoverableError}),eo=!1),h}async function ed(e){if(e.err&&(void 0===e.Component||!e.isHydratePass))return void await Q(e);try{await ec(e)}catch(n){let t=(0,O.getProperError)(n);if(t.cancelled)throw t;await Q({...e,err:t})}}async function ef(e){let t=a.err;try{let e=await i.routeLoader.whenEntrypoint("/_app");if("error"in e)throw e.error;let{component:t,exports:n}=e;d=t,n&&n.reportWebVitals&&(f=({id:e,name:t,startTime:r,value:a,duration:o,entryType:i,entries:l,attribution:s})=>{let u,c=`${Date.now()}-${Math.floor(Math.random()*(9e12-1))+1e12}`;l&&l.length&&(u=l[0].startTime);let d={id:e||c,name:t,startTime:r||u,value:null==a?o:a,label:"mark"===i||"measure"===i?"custom":"web-vital"};s&&(d.attribution=s),n.reportWebVitals(d)});let r=await i.routeLoader.whenEntrypoint(a.page);if("error"in r)throw r.error;p=r.component}catch(e){t=(0,O.getProperError)(e)}window.__NEXT_PRELOADREADY&&await window.__NEXT_PRELOADREADY(a.dynamicIds),r=(0,A.createRouter)(a.page,a.query,o,{initialProps:a.props,pageLoader:i,App:d,Component:p,wrapApp:V,err:t,isFallback:!!a.isFallback,subscription:(e,t,n)=>ed(Object.assign({},e,{App:t,scroll:n})),locale:a.locale,locales:a.locales,defaultLocale:m,domainLocales:a.domainLocales,isPreview:a.isPreview}),H=await r._initialMatchesMiddlewarePromise;let n={App:d,initial:!0,Component:p,props:a.props,err:t,isHydratePass:!0};e?.beforeRender&&await e.beforeRender(),ed(n)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},448911,(e,t,n)=>{"use strict";function r(){return new Promise(e=>{var t;t=function(){for(var t=document.querySelectorAll("[data-next-hide-fouc]"),n=t.length;n--;)t[n].parentNode.removeChild(t[n]);e()},window.requestAnimationFrame&&window.self===window.top?window.requestAnimationFrame(t):window.setTimeout(t)})}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"displayContent",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},920090,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),e.r(584733),e.r(770159);let r=e.r(778414),a=e.r(448911);window.next={version:r.version,turbopack:!0,get router(){return r.router},emitter:r.emitter},self.__next_set_public_path__=()=>{},self.__webpack_hash__="",(0,r.initialize)({}).then(()=>(self.__turbopack_load_page_chunks__=(t,n)=>{Promise.all(n.map(t=>e.l(t))).catch(e=>console.error("failed to load chunks for page "+t,e))},(0,r.hydrate)({beforeRender:a.displayContent}))).catch(e=>{console.error("Error was not caught",e)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); //# debugId=50598d22-f811-c932-ce20-1290bdd1641c //# sourceMappingURL=0cn~9pvtnb-n~.js.map