<!DOCTYPE html>
<html lang='en'>
<head>
<link rel="shortcut icon" type="image/x-icon" href="https://prod-assets.useast1.kadenze.com/assets/favicon-1c9ebd879e971fcbade455a9e67ff3711f03b5e58ab4d7a870fdb9c7527c600f.ico" /><link rel="stylesheet" media="all" href="https://prod-assets.useast1.kadenze.com/assets/application-0e574fb56974c36be97e8de8be24d3bb11bb5eee6a9f3541ba947cc00e12cfe6.css" /><link rel="stylesheet" media="all" href="https://prod-assets.useast1.kadenze.com/packs/css/application-ff40ba05.css" data-turbolinks-track="reload" /><title>User Profile | Kadenze</title><meta content="viewport-fit=cover, width=device-width, initial-scale=1.0" name="viewport" /><meta content="xhannon king (@xhannon-king) | Kadenze" name="description" /><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"3f9acb5a90","applicationID":"126859468","transactionName":"dVsNFkVbCFwBR0oTR1NGTBJFWwJZCFA=","queueTime":0,"applicationTime":330,"agent":""}</script>
<script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"3f9acb5a90",applicationID:"126859468"};;/*! For license information please see nr-loader-rum-1.259.0.min.js.LICENSE.txt */
(()=>{var e,t,r={234:(e,t,r)=>{"use strict";r.d(t,{P_:()=>v,Mt:()=>b,C5:()=>s,OP:()=>k,lF:()=>P,Yu:()=>_,Dg:()=>m,CX:()=>c,GE:()=>w,sU:()=>N});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o);const r=(0,n.ek)(e);r&&(r.info=a[e])}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f="[data-nr-mask]",g=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector="".concat(t,",").concat(f):""===t||null===t?e.mask_selector=f:(0,l.Z)("An invalid session_replay.mask_selector was provided. '*' will be used.",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},p={},h="All configuration objects require an agent identifier!";function v(e){if(!e)throw new Error(h);if(!p[e])throw new Error("Configuration for ".concat(e," was never set"));return p[e]}function m(e,t){if(!e)throw new Error(h);p[e]=(0,i.D)(t,g());const r=(0,n.ek)(e);r&&(r.init=p[e])}function b(e,t){if(!e)throw new Error(h);var r=v(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const y={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A={};function w(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");A[e]=(0,i.D)(t,y);const r=(0,n.ek)(e);r&&(r.loader_config=A[e])}const _=(0,n.mF)().o;var E=r(385),x=r(6818);const D={buildEnv:x.Re,distMethod:x.gF,version:x.q4,originTime:E.sK},S={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,origin:""+E._A.location,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,harvestCount:0,timeKeeper:void 0},R={};function k(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!R[e])throw new Error("Runtime for ".concat(e," was never set"));return R[e]}function N(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");R[e]={...(0,i.D)(t,S),...D};const r=(0,n.ek)(e);r&&(r.runtime=R[e])}function P(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{"use strict";r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.259.0",i="PROD",o="CDN"},385:(e,t,r)=>{"use strict";r.d(t,{Nk:()=>d,Tt:()=>s,_A:()=>o,iS:()=>a,il:()=>n,sK:()=>l,ux:()=>c,v6:()=>i,w1:()=>u});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),s=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),c=s&&"undefined"==typeof SharedWorker,u=((()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Boolean(n&&window.document.documentMode)),d=!!o.navigator?.sendBeacon,l=Math.floor(Date.now()-performance.now())},1117:(e,t,r)=>{"use strict";r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occurred while setting SharedContext",e)}}}},8e3:(e,t,r)=>{"use strict";r.d(t,{LP:()=>l,RP:()=>c,o5:()=>u});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){d(e),s[e].get(t)&&s[e].delete(t),s[e].size&&f(e)}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature",r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((e=>{let[t,r]=e;return r.staged}))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((t=>{let[r]=t;s[e].delete(r),g(e,r)})))}function g(e,t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)p(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}r.isolatedBacklog||delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}function p(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{"use strict";r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.fP)();d.ee||(d.ee=u)},5546:(e,t,r)=>{"use strict";r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{"use strict";r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{"use strict";r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{"use strict";r.d(t,{Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},7056:(e,t,r)=>{"use strict";r.d(t,{Bq:()=>n,Hb:()=>a,IK:()=>u,K4:()=>i,oD:()=>o,uT:()=>c,wO:()=>s});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},7894:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{z:()=>n})},50:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2825:(e,t,r)=>{"use strict";r.d(t,{N:()=>c,T:()=>s});var n=r(8325),i=r(385);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{i._A.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},2210:(e,t,r)=>{"use strict";r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},7872:(e,t,r)=>{"use strict";function n(e){var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n?.leading||!1;let o;return function(){for(var n=arguments.length,a=new Array(n),s=0;s<n;s++)a[s]=arguments[s];i&&void 0===o&&(e.apply(t,a),o=setTimeout((()=>{o=clearTimeout(o)}),r)),i||(clearTimeout(o),o=setTimeout((()=>{e.apply(t,a)}),r))}}function i(e){var t=this;let r=!1;return function(){if(!r){r=!0;for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];e.apply(t,i)}}}r.d(t,{D:()=>n,Z:()=>i})},1284:(e,t,r)=>{"use strict";r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{"use strict";r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{"use strict";r.d(t,{KB:()=>a,b2:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{"use strict";r.d(t,{EZ:()=>d,ce:()=>o,ek:()=>u,fP:()=>a,gG:()=>l,h5:()=>c,mF:()=>s});var n=r(385),i=r(7894);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n._A.NREUM||(n._A.NREUM={}),void 0===n._A.newrelic&&(n._A.newrelic=n._A.NREUM),n._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:n._A.setTimeout,SI:n._A.setImmediate,CT:n._A.clearTimeout,XHR:n._A.XMLHttpRequest,REQ:n._A.Request,EV:n._A.Event,PR:n._A.Promise,MO:n._A.MutationObserver,FETCH:n._A.fetch}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.z)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{"use strict";r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3081:(e,t,r)=>{"use strict";r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},7633:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{"use strict";r.d(t,{Ef:()=>i});var n=r(7056);r(3325).D.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.IK.ERROR,n.IK.FULL,n.IK.OFF},5938:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},2758:(e,t,r)=>{"use strict";r.d(t,{j:()=>E});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(8e3),c=r(3960),u=r(385),d=r(50),l=r(3081),f=r(8632),g=r(7144);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.Ef.RECORD,g.Ef.PAUSE],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(7894),m=r(7056);function b(){const e=(0,f.gG)();p.forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}const y={};var A=r(2825);const w=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let _=!1;function E(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=arguments.length>2?arguments[2]:void 0,E=arguments.length>3?arguments[3]:void 0,{init:x,info:D,loader_config:S,runtime:R={loaderType:p},exposed:k=!0}=t;const N=(0,f.gG)();D||(x=N.init,D=N.info,S=N.loader_config),(0,i.Dg)(e.agentIdentifier,x||{}),(0,i.GE)(e.agentIdentifier,S||{}),D.jsAttributes??={},u.v6&&(D.jsAttributes.isWorker=!0),(0,i.CX)(e.agentIdentifier,D);const P=(0,i.P_)(e.agentIdentifier),j=[D.beacon,D.errorBeacon];_||(P.proxy.assets&&(w(P.proxy.assets),j.push(P.proxy.assets)),P.proxy.beacon&&j.push(P.proxy.beacon),b(),(0,f.EZ)("activatedFeatures",A.T),e.runSoftNavOverSpa&&=!0===P.soft_navigations.enabled&&P.feature_flags.includes("soft_nav")),R.denyList=[...P.ajax.deny_list||[],...P.ajax.block_internal?j:[]],R.ptid=e.agentIdentifier,(0,i.sU)(e.agentIdentifier,R),void 0===e.api&&(e.api=function(e,t){let f=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t||(0,s.RP)(e,"api");const p={};var b=a.ee.get(e),A=b.get("tracer");y[e]=m.IK.OFF,b.on(g.Ef.REPLAY_RUNNING,(t=>{y[e]=t}));var w="api-",_=w+"ixn-";function E(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),S(w,n,!0,o||null===r?"session":void 0)(t,r)}function x(){}h.forEach((e=>{p[e]=S(w,e,!0,"api")})),p.addPageAction=S(w,"addPageAction",!0,n.D.pageAction),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,S(w,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return E(e,t,"setCustomAttribute",r);(0,d.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,d.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},p.setUserId=function(e){if("string"==typeof e||null===e)return E("enduser.id",e,"setUserId",!0);(0,d.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return E("application.version",e,"setApplicationVersion",!1);(0,d.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},p.start=()=>{try{(0,o.p)(l.xS,["API/start/called"],void 0,n.D.metrics,b),b.emit("manual-start-all")}catch(e){(0,d.Z)("An unexpected issue occurred",e)}},p[g.Ef.RECORD]=function(){(0,o.p)(l.xS,["API/recordReplay/called"],void 0,n.D.metrics,b),(0,o.p)(g.Ef.RECORD,[],void 0,n.D.sessionReplay,b)},p[g.Ef.PAUSE]=function(){(0,o.p)(l.xS,["API/pauseReplay/called"],void 0,n.D.metrics,b),(0,o.p)(g.Ef.PAUSE,[],void 0,n.D.sessionReplay,b)},p.interaction=function(e){return(new x).get("object"==typeof e?e:{})};const D=x.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(l.xS,["API/createTracer/called"],void 0,n.D.metrics,b),f||(0,o.p)(_+"tracer",[(0,v.z)(),e,r],i,n.D.spa,b),function(){if(A.emit((a?"":"no-")+"fn-start",[(0,v.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,v.z)()],r)}}}};function S(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,b),i&&(0,o.p)(e+t,[(0,v.z)(),...arguments],r?null:this,i,b),r?void 0:this}}function R(){r.e(75).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,s.LP)(e,"api")})).catch((e=>{(0,d.Z)("Downloading runtime APIs failed...",e),b.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{D[e]=S(_,e,void 0,f?n.D.softNav:n.D.spa)})),p.setCurrentRouteName=f?S(_,"routeName",void 0,n.D.softNav):S(w,"routeName",!0,n.D.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,b),(0,o.p)("err",[t,(0,v.z)(),!1,r,!!y[e]],void 0,n.D.jserrors,b)},u.il?(0,c.b2)((()=>R()),!0):R(),p}(e.agentIdentifier,E,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),_=!0}},8993:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},3325:(e,t,r)=>{"use strict";r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.softNav]:9,[n.sessionReplay]:10}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.259.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.259.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={75:"sha512-5GjfGUBNtKaMaiPnle7qB4rCL61B2+hWtN2DiJfRQbAiNvU7ZKxPPsUkbhEmxVpeg7jcZYgtM42Uv6aB3sjKAQ=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={50:0,832:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.259.0.PROD"]=self["webpackChunk:NRBA-1.259.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8993);var e=i(50),t=i(7144),r=i(4402),n=i(8325);class o{agentIdentifier;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,r.ky)(16);this.agentIdentifier=e,this.ee=n.ee.get(e)}#e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];if("function"==typeof this.api?.[t])return this.api[t](...n);(0,e.Z)("Call to agent api ".concat(t," failed. The API is not currently initialized."))}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}finished(e){return this.#e("finished",e)}addRelease(e,t){return this.#e("addRelease",e,t)}start(e){return this.#e("start",e)}recordReplay(){return this.#e(t.Ef.RECORD)}pauseReplay(){return this.#e(t.Ef.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}}var a=i(3325),s=i(234);const c=Object.values(a.D);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(2758);var l=i(8e3),f=i(5938),g=i(3960),p=i(385);const h=e=>p.il&&!0===(0,s.Mt)(e,"privacy.cookies_enabled");function v(e){return!!s.Yu.MO&&h(e)&&!0===(0,s.Mt)(e,"session_trace.enabled")}var m=i(7872);class b extends f.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,s.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto?(0,l.RP)(e,r):this.ee.on("manual-start-all",(0,m.Z)((()=>{(0,l.RP)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()})))}importAggregator(){let t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;this.onAggregateImported=new Promise((e=>{t=e}));const n=async()=>{let n;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(75).then(i.bind(i,7920));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t),this.featureName===a.D.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,n))return(0,l.LP)(this.agentIdentifier,this.featureName),void t(!1);const{lazyFeatureLoader:e}=await i.e(75).then(i.bind(i,8582)),{Aggregate:o}=await e(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,r),t(!0)}catch(r){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),r),this.abortHandler?.(),(0,l.LP)(this.agentIdentifier,this.featureName,!0),t(!1),this.ee&&this.ee.abort()}};p.il?(0,g.b2)((()=>n()),!0):n()}#t(e,t){return e!==a.D.sessionReplay||(r=this.agentIdentifier,n=t,!(!v(r)||!n?.isNew&&!n?.state.sessionReplayMode));var r,n}}var y=i(7633);class A extends b{static featureName=y.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,y.t,r),this.importAggregator()}}var w=i(1117),_=i(1284);class E extends w.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,_.D)(e,(function(e,r){t[e]=x(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,_.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=x(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=D(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=x(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=Object.values(this.aggregatedData[r]||{}),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function x(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=D(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function D(e){return{t:e,min:e,max:e,sos:e*e,c:1}}var S=i(8632),R=i(4351);var k=i(5546),N=i(7956),P=i(3239),j=i(9251),T=i(7894);class I extends b{static featureName=j.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,j.t,r),p.il&&((0,N.N)((()=>(0,k.p)("docHidden",[(0,T.z)()],void 0,j.t,this.ee)),!0),(0,P.bP)("pagehide",(()=>(0,k.p)("winPagehide",[(0,T.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var O=i(3081);class M extends b{static featureName=O.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,O.t9,r),this.importAggregator()}}new class extends o{constructor(t,r){super(r),p._A?(this.sharedAggregator=new E({agentIdentifier:this.agentIdentifier}),this.features={},(0,S.h5)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.D.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.Z)("Failed to initialize the agent. Could not determine the runtime environment.")}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.p[e.featureName]-a.p[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.D.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.D.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.D.softNav)return;const n=function(e){switch(e){case a.D.ajax:return[a.D.jserrors];case a.D.sessionTrace:return[a.D.ajax,a.D.pageViewEvent];case a.D.sessionReplay:return[a.D.sessionTrace];case a.D.pageViewTiming:return[a.D.pageViewEvent];default:return[]}}(r.featureName);n.every((e=>e in this.features))||(0,e.Z)("".concat(r.featureName," is enabled but one or more dependent features has not been initialized (").concat((0,R.P)(n),"). This may cause unintended consequences or missing data...")),this.features[r.featureName]=new r(this.agentIdentifier,this.sharedAggregator)}))}catch(t){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,S.fP)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,I,M],loaderType:"lite"})})()})();</script><!--Include facebook open graph tags per view if necessary--><meta content='xhannon king (@xhannon-king) | Kadenze' property='og:title'>
<meta content='xhannon king (@xhannon-king) | Kadenze' name='twitter:title'>
<meta content='https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/unnamed.jpg?Expires=1716676277&Signature=VTX1diqOIhJB9UDZlL-6~w4Ri~U8NriZameoU2AsmM-YjsKIJYd8PX2XoRDqHdkiz44rY6o57AsQAHThHmipROz2cKnYhy3Itsh2WBuSdRiKzlRb8MKuZIYA789blF808953VCm3Go3aBzdmmcqLwd9RdunVKidtUZPOwXDhmiHdvKdl08Cc04e0eHfm~2lxI5ExEUdZKfo7~CleUAApxYHgFnk-~r4buFBpECtqfFrX4-RPFV7Tr6sK2Buc8HB2YEl1hYCjfvat0Kh1lYTJew03S5oAKspCAD~cZ2R~qT-x5K5COTR-UGpDDl6kR9Ha38WzezOQN6xxAVPv6-Ai6w__&Key-Pair-Id=APKAI3WTOBWXO6VZASUA' property='og:image'>
<meta content='/users/xhannon-king' property='og:url'>
<meta content='See xhannon king's Profile and Portfolio on Kadenze' property='og:description'>
<meta content='website' property='og:type'>
<meta content='summary_large_image' name='twitter:card'>
<meta content='@KadenzeOfficial' name='twitter:site'>
<meta content='See xhannon king's Profile and Portfolio on Kadenze' name='twitter:description'>
<meta content='https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/unnamed.jpg?Expires=1716676277&Signature=VTX1diqOIhJB9UDZlL-6~w4Ri~U8NriZameoU2AsmM-YjsKIJYd8PX2XoRDqHdkiz44rY6o57AsQAHThHmipROz2cKnYhy3Itsh2WBuSdRiKzlRb8MKuZIYA789blF808953VCm3Go3aBzdmmcqLwd9RdunVKidtUZPOwXDhmiHdvKdl08Cc04e0eHfm~2lxI5ExEUdZKfo7~CleUAApxYHgFnk-~r4buFBpECtqfFrX4-RPFV7Tr6sK2Buc8HB2YEl1hYCjfvat0Kh1lYTJew03S5oAKspCAD~cZ2R~qT-x5K5COTR-UGpDDl6kR9Ha38WzezOQN6xxAVPv6-Ai6w__&Key-Pair-Id=APKAI3WTOBWXO6VZASUA' name='twitter:image'>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="Kng3yLnD08CeIUnZ8BfbWZ7uLXl3Qhq4RYj_xktlk0cThcHcBvmdj-9D2jGucD_FQcltRLkskAgGs1CUpuGzrQ" /><!--setup javascript environment variables--><script>
RAILS_ENV = "production"
DEFAULT_DATE_FORMAT = "M/D/YYYY hh:mm";
WEBSOCKET_HOST = "message-queue.useast1.kadenze.com";
IS_MOBILE_APP = false
</script>
<!--setup the microsoft clarity to our code to track Facebook ads --><script type='text/javascript'>
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "fun33o4xk1");
</script>
<style type='text/css'> #iubenda-cs-banner { bottom: 0px !important; left: 0px !important; position: fixed !important; width: 100% !important; z-index: 99999998 !important; background-color: black; } .iubenda-cs-content { display: block; margin: 0 auto; padding: 20px; width: auto; font-family: Helvetica,Arial,FreeSans,sans-serif; font-size: 14px; background: #000; color: #fff;} .iubenda-cs-rationale { max-width: 900px; position: relative; margin: 0 auto; } .iubenda-banner-content > p { font-family: Helvetica,Arial,FreeSans,sans-serif; line-height: 1.5; } .iubenda-cs-close-btn { margin:0; color: #fff; text-decoration: none; font-size: 14px; position: absolute; top: 0; right: 0; border: none; } .iubenda-cs-cookie-policy-lnk { text-decoration: underline; color: #fff; font-size: 14px; font-weight: 900; } </style> <script type='text/javascript'> var _iub = _iub || []; _iub.csConfiguration = {'banner':{'slideDown':false,'prependOnBody':false,'applyStyles':false},'consentOnScroll':false,'lang':'en','siteId':1116259,'cookiePolicyUrl':'/cookie_policy','cookiePolicyInOtherWindow':true,'enableRemoteConsent':true,'localConsentDomain':'kadenze.com','cookiePolicyId':56288926 }; </script><script type='text/javascript' src='//cdn.iubenda.com/cookie_solution/safemode/iubenda_cs.js' charset='UTF-8' async></script><script src="//ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfont.js"></script><script>window.Kadenze = window.Kadenze || {}
Kadenze.isKadenze = true
Kadenze.isKannu = false
Kadenze.TENANT = "public"
Kadenze.VERSION = "5.73.0"
Kadenze.ENVIRONMENT = "production"
Kadenze.COLORS = ["#00ba95", "#73bfff", "#9593ff", "#a55bad", "#9fbcbf", "#3949AB", "#E53935", "#00897B", "#5E35B1", "#FDD835", "#FF80AB", "#039BE5", "#8E24AA", "#43A047", "#FFB300", "#D81B60", "#C0CA33", "#FB8C00", "#B388FF", "#1E88E5", "#7CB342", "#00ACC1", "#F4511E", "#EA80FC", "#FF8A80"]
Kadenze.GRADIENTS = ["warm_flame", "night_fade", "spring_warmth", "juicy_peach", "young_passion", "lady_lips", "sunny_morning", "rainy_ashville", "frozen_dreams", "winter_neva", "dusty_grass", "tempting_azure", "heavy_rain", "amy_crisp", "mean_fruit", "deep_blue", "ripe_malinka", "cloudy_knoxville", "malibu_beach", "new_life", "true_sunset", "morpheus_den", "rare_wind", "near_moon", "wild_apple", "saint_petersburg", "arielles_smile", "plum_plate", "everlasting_sky", "happy_fisher", "sharpeye_eagle", "ladoga_bottom", "lemon_gate", "itmeo_branding", "zeus_miracle", "old_hat", "star_wine", "happy_acid", "awesome_pine", "new_york", "shy_rainbow", "mixed_hopes", "fly_high", "strong_bliss", "fresh_milk", "snow_again", "february_ink", "kind_steel", "soft_grass", "grown_early", "sharp_blues", "shady_water", "dirty_beauty", "great_whale", "teen_notebook", "polite_rumors", "sweet_period", "wide_matrix", "soft_cherish", "red_salvation", "burning_spring", "night_party", "sky_glider", "heaven_peach", "purple_division", "aqua_splash", "spiky_naga", "love_kiss", "clean_mirror", "premium_dark", "cold_evening", "cochiti_lake", "summer_games", "passionate_bed", "mountain_rock", "desert_hump", "jungle_day", "phoenix_start", "october_silence", "faraway_river", "alchemist_lab", "over_sun", "premium_white", "mars_party", "eternal_constance", "japan_blush", "smiling_rain", "cloudy_apple", "big_mango", "healthy_water", "amour_amour", "risky_concrete", "strong_stick", "vicious_stance", "palo_alto", "happy_memories", "midnight_bloom", "party_bliss", "confident_cloud", "le_cocktail", "river_city", "frozen_berry", "child_care", "flying_lemon", "new_retrowave", "hidden_jaguar", "above_the_sky", "dense_water", "marble_wall", "cheerful_caramel", "night_sky", "magic_lake", "young_grass", "colorful_peach", "gentle_care", "plum_bath", "happy_unicorn", "african_field", "solid_stone", "orange_juice", "glass_water", "north_miracle", "fruit_blend", "millennium_pine", "high_flight", "mole_hall", "space_shift", "forest_inei", "royal_garden", "rich_metal", "juicy_cake", "smart_indigo", "sand_strike", "norse_beauty", "aqua_guidance", "sun_veggie", "sea_lord", "black_sea", "grass_shampoo", "landing_aircraft", "witch_dance", "sleepless_night", "angel_care", "crystal_river", "soft_lipstick", "salt_mountain", "perfect_white", "fresh_oasis", "strict_november", "morning_salad", "deep_relief", "sea_strike", "night_call", "supreme_sky", "light_blue", "mind_crawl", "lily_meadow", "sugar_lollipop", "sweet_dessert", "magic_ray", "teen_party", "frozen_heat", "gagarin_view", "fabled_sunset"]
Kadenze.TRACK_ANALYTICS = true
Kadenze.iframeTemplatePath = "templates/iframe-video-element"
// https://github.com/fnando/i18n-js#setting-up
I18n = {}
I18n.defaultLocale = "en"
I18n.locale = "en-KADENZE"
WebFont.load({
google: { families: ['Roboto:100,300,400,500,700:latin'] },
timeout: 3000
});</script><script async src="https://www.googletagmanager.com/gtag/js?id=G-K9XYN42JVG"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-K9XYN42JVG');
</script>
<script src="https://prod-assets.useast1.kadenze.com/assets/header_scripts-2f399e4ea624281eac4da322c515cc7857441217c16bda9eb3316cb1fa411394.js" async="async"></script>
<link rel="stylesheet" media="all" href="https://prod-assets.useast1.kadenze.com/assets/application-kadenzec-d89a59bbc7ce1658396189f11e3ca37df860e6bebe77a79dbc6409d249b41247.css" />
<script src="https://prod-assets.useast1.kadenze.com/assets/application-f4d256fdd23cf064aee5dc2a32aae79db3976b0f6c554244cf7eff411adef224.js"></script>
<script src="https://prod-assets.useast1.kadenze.com/packs/js/kadenze_public-b5394091536c3583751b.js"></script>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="6FXKqWlkm3LF9D2g-jzknESlw47kTKD8gMEDTwKGvSjRqDy91l7VPbSWrkikWwAAm4KDsyoiKkzD-qwd7wKdwg" />
<script src="https://prod-assets.useast1.kadenze.com/packs/js/user-5a485593ba37e57cd912.js"></script>
<script src='https://www.google.com/recaptcha/enterprise.js?render=6Ldh-T8mAAAAAPoZyW-7KW4NOD2aG3JZ9TK3QJQC'></script>
</head>
<body class=' ' data-locale='en' data-uid=''>
<div class='kl-main' data-module-amd='Layout' id='klMain'>
<a class='skiptocontent' href='#main'>
Skip to Main Content?
</a>
<nav class="kl-main__header top-nav Kadenze mobile_nav" id="main-nav"><div class='top-nav__inner-container js_top-nav__inner-container nav-level-2' data-module-amd='CommonTopNav'>
<template v-if='global_mode'>
<div class='top-nav__logo-wrapper'>
<a class='top-nav__left-nav_toggle' href='javascript:;' id='js__left-nav_toggle' v-show='expandable'>
<span class='sr-only'>Toggle Course Tools</span>
<div class='top-nav__left-nav_toggle_icon hidden-xs'>
<svg version="1.1" id="icon__nav-desktop_toggle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<svg:style type="text/css">
<![CDATA[
.icon__nav-toggle_circle{fill:none;stroke-width:3.1747;stroke-miterlimit:10;}
.icon__nav-toggle_arrow{fill:none;stroke-width:3.1747;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
]]>
</svg:style>
<polyline id="leftnav-dsk__arrow" class="icon__nav-toggle_arrow" points="24.4,17 39.6,32.1 24.4,47"/>
<circle id="leftnav-dsk__outer-circle" class="icon__nav-toggle_circle" cx="32" cy="32" r="29"/>
</svg>
</div>
<div class='top-nav__left-nav_toggle_icon visible-xs'>
<svg version="1.1" id="icon__nav-mobile_toggle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<svg:style type="text/css">
<![CDATA[
.st1{fill:none;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
]]>
</svg:style>
<g id="leftnav-mobile-hamburger">
<g id="leftnav-mobile-line3">
<line class="st1" x1="7" y1="47" x2="57" y2="47"/>
</g>
<g id="leftnav-mobile-line2">
<line class="st1" x1="7" y1="32" x2="57" y2="32"/>
</g>
<g id="leftnav-mobile-line1">
<line class="st1" x1="7" y1="17" x2="57" y2="17"/>
</g>
</g>
</svg>
</div>
</a>
<div class="top-nav__logo top-nav__logo--desktop" data-app-mode="kadenze"><div class="top-nav__logo-wrapper"><a data-skip-pjax="true" data-no-turbolinks="true" href="/"><img alt="Kadenze" width="104" height="36" src="https://prod-assets.useast1.kadenze.com/assets/svg/kadenze_logo_white.min-3a371696a19e1644747a5281ede1e4a7cdc3c7dd13e26f45ce24816ae46b94d1.svg" /></a></div></div>
<div class="top-nav__logo top-nav__logo--mobile" data-app-mode="kadenze"><div class="top-nav__logo-wrapper"><a data-skip-pjax="true" data-no-turbolinks="true" href="/"><img class="mobile-logo " alt="Kadenze" src="https://prod-assets.useast1.kadenze.com/assets/svg/kadenze_logo_white.min-3a371696a19e1644747a5281ede1e4a7cdc3c7dd13e26f45ce24816ae46b94d1.svg" /></a></div></div>
</div>
<a class='top-nav__right-nav_toggle visible-xs' href='javascript:;' id='js__right-nav_toggle'>
<span class='sr-only'>Toggle Mobile Menu</span>
<div class='top-nav__right-nav_toggle_user'>
<div class='icon--open-menu'>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="icon-mobile-nav" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100%" height="100%" viewbox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<path d="M32,62.6C15.1,62.6,1.4,48.9,1.4,32C1.4,15.1,15.1,1.4,32,1.4c16.9,0,30.6,13.7,30.6,30.6
C62.6,48.9,48.9,62.6,32,62.6z M32,4.6C16.9,4.6,4.6,16.9,4.6,32S16.9,59.4,32,59.4S59.4,47.1,59.4,32S47.1,4.6,32,4.6z"></path>
<g id="icon-mobile-nav_x5F__x5F_dots">
<path d="M17.4,26.8c1,0,1.8,0.2,2.6,0.7s1.4,1.1,1.9,1.9c0.5,0.8,0.7,1.7,0.7,2.6c0,1.5-0.5,2.7-1.6,3.7
c-1,1-2.3,1.5-3.7,1.5c-1.4,0-2.6-0.5-3.7-1.5c-1-1-1.5-2.2-1.5-3.7s0.5-2.7,1.5-3.7C14.8,27.3,16,26.8,17.4,26.8z"></path>
<path d="M32,26.8c1.4,0,2.6,0.5,3.7,1.5c1,1,1.6,2.2,1.6,3.7s-0.5,2.7-1.6,3.7c-1,1-2.3,1.5-3.7,1.5
c-1.4,0-2.6-0.5-3.7-1.5c-1-1-1.6-2.2-1.6-3.7c0-1,0.2-1.8,0.7-2.6c0.5-0.8,1.1-1.4,1.9-1.9C30.1,27,31,26.8,32,26.8z"></path>
<path d="M42.9,28.3c1-1,2.3-1.5,3.7-1.5c1.4,0,2.6,0.5,3.7,1.5c1,1,1.5,2.2,1.5,3.7s-0.5,2.7-1.5,3.7
s-2.2,1.5-3.7,1.5c-1,0-1.8-0.2-2.6-0.7s-1.4-1.1-1.9-1.9c-0.5-0.8-0.7-1.7-0.7-2.6C41.3,30.5,41.9,29.3,42.9,28.3z"></path>
</g>
</svg>
</div>
<div class='icon--close-menu'>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewbox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="Layer_2">
<g id="Layer_1_1_">
</g>
<g>
<defs>
<polygon id="SVGID_1_" points="500,712.5 691.9,520.6 500,328.6 466.1,362.6 600.1,496.6 308.1,496.6 308.1,544.6 600.1,544.6
466.1,678.6 "></polygon>
</defs>
<use xlink:href="#SVGID_1_" overflow="visible" fill-rule="evenodd" clip-rule="evenodd"></use>
<clippath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"></use>
</clippath>
<rect x="188.1" y="208.6" clip-path="url(#SVGID_2_)" width="623.8" height="623.8"></rect>
</g>
<g>
<defs>
<circle id="SVGID_3_" cx="500" cy="520.6" r="359.9"></circle>
</defs>
<clippath id="SVGID_4_">
<use xlink:href="#SVGID_3_" overflow="visible"></use>
</clippath>
<g clip-path="url(#SVGID_4_)">
<path d="M500,928.4c-224.9,0-407.9-183-407.9-407.9s183-407.9,407.9-407.9s407.9,183,407.9,407.9S724.9,928.4,500,928.4z
M500,208.6c-172,0-311.9,139.9-311.9,311.9c0,172,139.9,311.9,311.9,311.9s311.9-139.9,311.9-311.9
C811.9,348.6,672,208.6,500,208.6z"></path>
</g>
</g>
</g>
</svg>
</div>
</div>
</a>
<div class='top-nav__search-wrapper--mobile' v-on:click='showHideMobileSearch(true)'>
<div class='top-nav__search-mobile-overlay'></div>
<div aria-hidden class='top-nav__search js_top-nav-search'>
<div class='top-nav__search_search-icon'>
<i class='kf kf-search'></i>
</div>
<div class='top-nav__search_clear-icon'>
<i class='kf kf-x'></i>
</div>
<input aria-label='Search' class='top-nav__search_field' placeholder='Courses, Sessions, Users' type='text' v-model='search_query'>
</div>
</div>
<div class='top-nav__main-nav top-nav__main-nav--private'>
<div class='top-nav--main' id='js__main-menu'>
<div class='top-nav__main-nav-search-wrapper'>
<ul class='top-nav__ul top-nav--main top-nav__ul--desktop js_top-nav-main'>
<li class='top-nav__li'>
<a class='top-nav__alink' data-no-preview data-skip-pjax href='/courses'>
Browse Courses
</a>
</li>
</ul>
<div class='top-nav__search js_top-nav-search' id='top-nav__search' v-bind='{ class : { "search-has-focus": search_has_focus, "search-has-query": search_query }}'>
<div class='top-nav__search_search-icon'>
<i class='kf kf-search'></i>
</div>
<div aria-hidden class='top-nav__search_clear-icon' id='top-nav__search_close-icon' v-on:click='searchClearOnClick'>
<i class='kf kf-x'></i>
</div>
<input aria-label='Search' class='top-nav__search_field' id='top-nav__search_field' placeholder='Courses, Sessions, Users, Programs' type='text' v-model='search_query' v-on:blur='setSearchFocus(false)' v-on:focus='setSearchFocus(true)' v-on:keyup.13='searchOnEnter'>
</div>
</div>
<ul class='top-nav__ul top-nav__button-group xs-hidden'>
<li class='top-nav__li'>
<a class="btn--sm branding-header-btn txt-upper qa-log_in" data-skip-pjax="true" data-no-preview="true" href="/sign_in"><span class="translation_missing" title="translation missing: en-KADENZE.layouts.navigation.user_menu.log_in">Log In</span></a>
</li>
</ul>
<div class='side-nav--mobile'>
<div class='side-nav--mobile__nav-links'>
<div class='side-nav--mobile__nav-link'>
<a class="top-nav__alink" data-skip-pjax="true" data-no-preview="true" href="/courses">Browse Courses</a>
</div>
<div class='side-nav--mobile__nav-link'>
<a class="top-nav__alink" data-skip-pjax="true" data-no-preview="true" href="/sign_in">log in</a>
</div>
</div>
</div>
</div>
</div>
<div class='clearfix'></div>
</template>
<template v-else>
<div class='top-nav__logo-wrapper'>
<a class='kd-ibtn' href='javascript:;' v-on:click='global_mode = true'>
<i aria-label='Back' class='kf kf-back-arrow'></i>
</a>
<div class='top-nav__logo' data-app-mode='kadenze'></div>
<div class='top-nav__page-title'></div>
</div>
<div class='top-nav__main-nav top-nav__main-nav--private'>
<div class='top-nav--main' id='js__main-menu'>
<ul class='top-nav__ul top-nav__ul--desktop'>
<li class='top-nav__li' v-for='item in nav_items'>
<a class='top-nav__alink' href='javascript:;' v-bind='{class: {'disabled': !item.is_active}}' v-on:click='item.callback'>{{ item.label }}</a>
</li>
<li class='top-nav__li--separator'></li>
<li class='top-nav__li'>
<a class='btn--sm btn--save mb1' href='javascript:;' v-bind='{class: {'disabled': !primary_action.is_active}}' v-on:click='primary_action.callback'>{{ primary_action.label }}</a>
</li>
</ul>
<!-- TODO: Fix mobile nav -->
<div class='side-nav--mobile'>
<div class='side-nav--mobile__user-info'>
<a class='btn--sm btn--save mb1' href='javascript:;' v-bind='{class: {'disabled': !primary_action.is_active}}' v-on:click='primary_action.callback'>{{ primary_action.label }}</a>
</div>
<div class='side-nav--mobile__nav-links'>
<div class='side-nav--mobile__nav-link' v-for='item in nav_items'>
<a class='top-nav__alink' href='javascript:;' v-bind='{class: {'disabled': !item.is_active}}' v-on:click='item.callback'>{{ item.label }}</a>
</div>
</div>
</div>
</div>
</div>
<div class='clearfix'></div>
</template>
<mobile-modal v-cloak v-if='show_mobile_search_modal'>
<div class='mobile-search' slot='body'>
<div class='mobile-search__header' v-bind='{ class : { "search-has-focus": search_has_focus, "search-has-query": search_query }}'>
<div class='mobile-search__header_back-btn' v-on:click='showHideMobileSearch(false)'>
<i class='kf kf-arrow-thin'></i>
</div>
<div class='mobile-search__header_search-wrapper'>
<input aria-label='Search' class='top-nav__search_field' id='mobile-nav-search-field' placeholder='Courses, Sessions, Users' type='text' v-focus='true' v-model='search_query' v-on:keyup.13='mobileSearchOnEnter'>
</div>
<div aria-hidden class='mobile-search__header_clear-btn' id='top-nav__search_close-icon' v-on:click='mobileSearchClearOnClick'>
<i class='kf kf-x'></i>
</div>
</div>
<div class='mobile-search__results-wrapper js_search__results-wrapper'>
<div class='search__results_empty' v-if='search_results.length == 0 && search_performed && search_results_loading == false'>
<div class='section-alert'>
<div class='svg-icon svg-icon-xl svg-icon-circle svg-icon-circle--outline svg-icon__clr-dark center mb2'>
<svg version="1.1" id="icon-cloud" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100%" height="100%" viewbox="102.5 215.5 407 362" enable-background="new 102.5 215.5 407 362" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g id="Cloud_with_Rain_1">
<g>
<path d="M201.1,553.5c0,9.6,7.7,17.2,17.2,17.2s17.2-7.7,17.2-17.2c0-17.2-17.2-35.4-17.2-35.4S201.1,536.3,201.1,553.5z
M288.3,500.9c0,9.6,7.7,17.2,17.2,17.2c9.6,0,17.2-7.7,17.2-17.2c0-17.2-17.2-35.4-17.2-35.4S288.3,483.6,288.3,500.9z
M376.4,536.3c0,9.6,7.7,17.2,17.2,17.2s17.2-7.7,17.2-17.2c0-17.2-17.2-35.4-17.2-35.4S376.4,518.1,376.4,536.3z M445.4,310.3
c0-1,0-1.9,0-1.9c0-28.7-23.9-52.7-52.7-52.7c-13.4,0-24.9,4.8-34.5,13.4c-18.2-28.7-50.8-47.9-88.1-47.9
c-52.7,0-95.8,39.3-103.4,89.1c-30.6,7.7-53.6,35.4-53.6,68c0,38.3,31.6,69.9,69.9,69.9h245.2c38.3,0,69.9-31.6,69.9-69.9
C498,345.7,476,318.9,445.4,310.3z M428.1,431H183.9c-28.7,0-52.7-23.9-52.7-52.7c0-23.9,16.3-45,40.2-50.8
c6.7-1.9,12.5-7.7,13.4-14.4c6.7-42.1,43.1-74.7,86.2-74.7c29.7,0,47.9,5.7,64.2,31.6c2.9,3.8,16.3,16.3,21.1,16.3
c1,0,2.9,0,2.9,0c3.8,0,8.6-1.9,11.5-4.8c6.7-5.7,14.4-8.6,23-8.6c19.2,0,35.4,15.3,35.4,35.4v1c0,8.6,4.8,15.3,13.4,18.2
c23,5.7,39.3,26.8,39.3,50.8C480.8,407,457.8,431,428.1,431z"></path>
</g>
</g>
</svg>
</div>
<div class='section-alert__title'>Hmm... nothing matches your search.</div>
<p class='section-alert__description mb3'>Try being more specific, use different keywords, or checking your spelling (we don't judge)</p>
<a class='btn--md btn--dark' href='javascript:window.history.back();'><span class="translation_missing" title="translation missing: en-KADENZE.layouts.navigation.mobile.go_back">Go Back</span></a>
</div>
</div>
<div class='search__results'>
<div class='search__results_item' v-for='result in filteredResults'>
<div class='search__results_item_thumbnail' v-if='result.logo'>
<a class='search__results_item_thumbnail_link' v-bind='{href: result.link}' v-on:click='searchResultOnClick(result)'>
<img class='search__results_item_thumbnail_img' v-bind='{src: result.logo}'>
</a>
</div>
<div class='search__results_item_info'>
<div class='search__results_item_title'>
<a class='search__results_item_title_link' v-bind='{href: result.link}' v-html='highlightValue(result, result.type + "_name")' v-on:click='searchResultOnClick(result)'></a>
</div>
<div class='search__results_item_description' v-html='highlightDescription(result)'></div>
</div>
<div class='search__results_item_meta'>
<div class='search__results_item_meta_item'>
<span>Type:</span>
<span>{{ result.typeString }}</span>
</div>
<div class='search__results_item_meta_item' v-if='result.type == "lecture"'>
<span>Course:</span>
<span v-html='highlightValue(result, "course_name")'></span>
</div>
<div class='search__results_item_meta_item' v-if='result.instructors'>
<span>Instructors:</span>
<span v-html='highlightInstructors(result)'></span>
</div>
<div class='search__results_item_meta_item' v-if='result.topic_names'>
<span>Related content:</span>
<span v-html='highlightValue(result,"topic_names")'></span>
</div>
<div class='search__results_item_meta_item' v-if='result.categories_list'>
<span>Topics:</span>
<span v-html='highlightValue(result,"categories_list")'></span>
</div>
</div>
</div>
<div aria-hidden='true' class='search__scroll-target' id='mobileLoadMoreResults'></div>
</div>
</div>
</div>
</mobile-modal>
</div>
</nav>
<div class='kl-main__wrap' data-module-amd='WebApp' data-module='App' id='main-container'>
<div class='kl-main__page-wrap'>
<div class='kl-main__content' id='main' role='main'>
<div data-pjax-container='true' id='main-pjax-container'>
<div class='user-profile' data-module-amd='UserProfile'>
<input id='user_profile_json' type='hidden' value='{"profile":{"avatar":{"url":"https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/unnamed.jpg?Expires=1716676277\u0026Signature=VTX1diqOIhJB9UDZlL-6~w4Ri~U8NriZameoU2AsmM-YjsKIJYd8PX2XoRDqHdkiz44rY6o57AsQAHThHmipROz2cKnYhy3Itsh2WBuSdRiKzlRb8MKuZIYA789blF808953VCm3Go3aBzdmmcqLwd9RdunVKidtUZPOwXDhmiHdvKdl08Cc04e0eHfm~2lxI5ExEUdZKfo7~CleUAApxYHgFnk-~r4buFBpECtqfFrX4-RPFV7Tr6sK2Buc8HB2YEl1hYCjfvat0Kh1lYTJew03S5oAKspCAD~cZ2R~qT-x5K5COTR-UGpDDl6kR9Ha38WzezOQN6xxAVPv6-Ai6w__\u0026Key-Pair-Id=APKAI3WTOBWXO6VZASUA","thumb":{"url":"https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/thumb_unnamed.jpg?Expires=1716676277\u0026Signature=BaWfv5lhcZqhwSi0gSYrbYSiuDAKWnXEiucg35g4-UvSCC82qeaWgVa0Fhk18m7EvKu5EYmGKPwCLSt8G9RlzyYQlOJwZAst2jovp6xBf7xvp9~5qpbn-qB2zgs4i-gTST6qXjxGrpwGE0OMIUf5lV3j620oWVH4c54Yoq1sywtBZ8L30ChuoDT7WTLMG-P6E2jtA~VqhocL66BjqZ1t3OEeKCs6fvDvcAzFbpKJZmE04bHw4TTsjs~ukfudaNC1FS0~yD-H3mffnpGVYJHqUQFqh4tAZYh8GehGNGTBg-Rf6HYx8vFBNHWj2o9SyGTfFoTwJcE6Hm0hMqU3yUNNqg__\u0026Key-Pair-Id=APKAI3WTOBWXO6VZASUA"}},"banner":{"url":"https://prod-assets.useast1.kadenze.com/assets/gradients/fresh_oasis-0511382e5fe67e74475b44a95555ca44febd6422553145abfe6b3c5ac739dc80.png","cinema":{"url":"https://prod-assets.useast1.kadenze.com/assets/gradients/fresh_oasis-0511382e5fe67e74475b44a95555ca44febd6422553145abfe6b3c5ac739dc80.png"}},"bio":"\u003cdiv\u003e\"바둑이사이트넷⭐️온라인바둑이,바둑이족보,바둑이필승법,바둑이배팅법,먹튀검증⭐️완료된⭐️사설바둑이⭐️클로버바둑이,룰루바둑이,몰디브게임,해적게임,골목게임,배터리게임,루비게임 등을 국내 최고 바둑이사이트 정보를 제공하는,badugisite.net\"/\u0026gt;\u003c/div\u003e\u003cdiv\u003e\u003ca href=\"https://www.badugisite.net/\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e사설토토\u003c/a\u003e\u003c/div\u003e","date_of_birth_string":null,"education_degree":null,"education_major":null,"education_school":null,"education_status":null,"employment_employer":null,"employment_industry":null,"employment_status":null,"first_name":"xhannon","full_name":"xhannon king","gender":"Female","id":420833,"languages_spoken":null,"last_name":"king","nickname":"xhannon-king","other_gender":"","banner_uploaded":false,"profile_url":"https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/thumb_unnamed.jpg?Expires=1716676277\u0026Signature=BaWfv5lhcZqhwSi0gSYrbYSiuDAKWnXEiucg35g4-UvSCC82qeaWgVa0Fhk18m7EvKu5EYmGKPwCLSt8G9RlzyYQlOJwZAst2jovp6xBf7xvp9~5qpbn-qB2zgs4i-gTST6qXjxGrpwGE0OMIUf5lV3j620oWVH4c54Yoq1sywtBZ8L30ChuoDT7WTLMG-P6E2jtA~VqhocL66BjqZ1t3OEeKCs6fvDvcAzFbpKJZmE04bHw4TTsjs~ukfudaNC1FS0~yD-H3mffnpGVYJHqUQFqh4tAZYh8GehGNGTBg-Rf6HYx8vFBNHWj2o9SyGTfFoTwJcE6Hm0hMqU3yUNNqg__\u0026Key-Pair-Id=APKAI3WTOBWXO6VZASUA","default_banner":"https://prod-assets.useast1.kadenze.com/assets/gradients/fresh_oasis-0511382e5fe67e74475b44a95555ca44febd6422553145abfe6b3c5ac739dc80.png","default_image":"https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/thumb_unnamed.jpg?Expires=1716676277\u0026Signature=BaWfv5lhcZqhwSi0gSYrbYSiuDAKWnXEiucg35g4-UvSCC82qeaWgVa0Fhk18m7EvKu5EYmGKPwCLSt8G9RlzyYQlOJwZAst2jovp6xBf7xvp9~5qpbn-qB2zgs4i-gTST6qXjxGrpwGE0OMIUf5lV3j620oWVH4c54Yoq1sywtBZ8L30ChuoDT7WTLMG-P6E2jtA~VqhocL66BjqZ1t3OEeKCs6fvDvcAzFbpKJZmE04bHw4TTsjs~ukfudaNC1FS0~yD-H3mffnpGVYJHqUQFqh4tAZYh8GehGNGTBg-Rf6HYx8vFBNHWj2o9SyGTfFoTwJcE6Hm0hMqU3yUNNqg__\u0026Key-Pair-Id=APKAI3WTOBWXO6VZASUA","address":{"id":233324,"address1":null,"address2":null,"city":null,"state":null,"country":null,"postalcode":null,"created_at":"2022-10-19T06:02:00.914Z","updated_at":"2022-10-19T06:02:00.914Z","addressable_id":420833,"addressable_type":"User"},"institutions":[],"editable":false,"no_info":false,"premium_member":false,"member_since":"October 2022","message_path":"/messenger/conversation_with/xhannon-king","social_info":{"facebook":null,"twitter":null,"vimeo":null,"soundcloud":null,"pinterest":null,"tumblr":null,"linkedin":null,"youtube":null,"google_plus":null,"instagram":null,"github":null},"website":null}}'>
<input id='countries_json' type='hidden' value='["Afghanistan", "Åland Islands", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia, Plurinational State of", "Bonaire, Sint Eustatius and Saba", "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", "Congo, The Democratic Republic of the", "Cook Islands", "Costa Rica", "Côte d'Ivoire", "Croatia", "Cuba", "Curaçao", "Cyprus", "Czechia", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini", "Ethiopia", "Falkland Islands (Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", "French Guiana", "French Polynesia", "French Southern Territories", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Heard Island and McDonald Islands", "Holy See (Vatican City State)", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran, Islamic Republic of", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Jamaica", "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, Democratic People's Republic of", "Korea, Republic of", "Kosovo", "Kuwait", "Kyrgyzstan", "Lao People's Democratic Republic", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macao", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia, Federated States of", "Moldova, Republic of", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Macedonia", "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Palestine, State of", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn", "Poland", "Portugal", "Puerto Rico", "Qatar", "Réunion", "Romania", "Russia", "Rwanda", "Saint Barthélemy", "Saint Helena, Ascension and Tristan da Cunha", "Saint Kitts and Nevis", "Saint Lucia", "Saint Martin (French part)", "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Sint Maarten (Dutch part)", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Sweden", "Switzerland", "Syrian Arab Republic", "Taiwan", "Tajikistan", "Tanzania, United Republic of", "Thailand", "Timor-Leste", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela, Bolivarian Republic of", "Vietnam", "Virgin Islands, British", "Virgin Islands, U.S.", "Wallis and Futuna", "Western Sahara", "Yemen", "Zambia", "Zimbabwe"]'>
<input id='states_json' type='hidden' value='["Alaska", "Alabama", "Arkansas", "American Samoa", "Arizona", "California", "Colorado", "Connecticut", "District of Columbia", "Delaware", "Florida", "Georgia", "Guam", "Hawaii", "Iowa", "Idaho", "Illinois", "Indiana", "Kansas", "Kentucky", "Louisiana", "Massachusetts", "Maryland", "Maine", "Michigan", "Minnesota", "Missouri", "Northern Mariana Islands", "Mississippi", "Montana", "North Carolina", "North Dakota", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "Nevada", "New York", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Puerto Rico", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "United States Minor Outlying Islands", "Utah", "Virginia", "Virgin Islands", "Vermont", "Washington", "Wisconsin", "West Virginia", "Wyoming", "Armed Forces Americas (except Canada)", "Armed Forces Africa, Canada, Europe, Middle East", "Armed Forces Pacific"]'>
<div class='user-profile__header' data-bind='css: { 'is-editmode': $root.bannerEditing() }, style: {'backgroundImage': 'url('+ profile().banner.url() +')'}' style='display:none'>
<div class='user-profile__header_shade'></div>
<div class='user-profile__header_wrap'>
<!-- ko ifnot: $root.bannerEditing() -->
<div class='user-profile__header_user-name'>
<!-- ko if: !nameEditing() -->
<h1 class='user-profile__header_user-name_text' data-bind='text: full_name'></h1>
<!-- /ko -->
<!-- ko if: nameEditing() -->
<div class='user-profile__header_user-name_edit-wrap'>
<div class='input-group flex'>
<label class='sr-only' for='full_name'>Name</label>
<input class='form-control' data-bind='value: full_name, valueUpdate: "afterkeydown", enterkey: saveName' id='full_name' maxlength='160' type='text'>
<a class='input-btn-addon' data-bind='click: saveName' href='javascript:;'>Save</a>
</div>
</div>
<!-- /ko -->
<a aria-label='Edit Your Name' class='user-profile__header_user-name_edit-btn' data-bind='visible: editMode() && !nameEditing(), click: editName' href='javascript:;'>
<i class='kf kf-pencil'></i>
</a>
</div>
<!-- /ko -->
<!-- ko ifnot: $root.bannerEditing() -->
<div class='user-profile__header_user-nickname'>
<!-- ko if: !nicknameEditing() -->
<a class='user-profile__header_user-nickname_link inline-block-link' data-bind='attr: { href: profile().message_path }' href='javascript:;' target='_blank'>
<i class='kf kf-message'></i>
<span data-bind='text: "@" + profile().nickname()'></span>
</a>
<!-- /ko -->
<!-- ko if: nicknameEditing() -->
<div class='user-profile__header_user-name_edit-wrap'>
<div class='input-group flex'>
<label class='sr-only' for='nickname'>Messenger Handle</label>
<input class='form-control' data-bind='value: profile().nickname, valueUpdate: "afterkeydown", enterkey: saveName' id='nickname' maxlength='30' type='text'>
<a class='input-btn-addon' data-bind='click: saveName' href='javascript:;'>Save</a>
</div>
</div>
<!-- /ko -->
<a aria-label='Edit Your Messenger Handle' class='user-profile__header_user-name_edit-btn' data-bind='visible: editMode() && !nicknameEditing(), click: editNickname' href='javascript:;'>
<i class='kf kf-pencil'></i>
</a>
</div>
<!-- /ko -->
<!-- ko ifnot: $root.bannerEditing() -->
<div class='user-profile__header_user-membership' data-bind='if: profile().premium_member'>
<i class='kdnze-user'></i>
Premium Member
</div>
<!-- /ko -->
<!-- ko if: !$root.editMode() -->
<div class='user-profile__header_social-media' data-bind='eachProp: profile().social_info'>
<!-- ko if: value() != null -->
<li class='li--inline pr02'>
<a data-bind='attr: {href: value, title: key}' target='_blank'>
<span class='sr-only' data-bind='text: key'></span>
<i class='svg-icon svg-icon__inline-headline svg-icon__clr-dark svg-icon__clr-hover-default' data-bind='css: $root.socialIconCls(key)'></i>
</a>
</li>
<!-- /ko -->
</div>
<!-- /ko -->
<!-- ko if: $root.editMode() -->
<!-- ko if: $root.bannerEditing() -->
<div class='user-profile__header_banner_edit' data-bind='css: { 'has-image': profile().banner_uploaded }'>
<div class='js-banner-dz' data-dz-name='banner_image' id='profile-banner-dz'></div>
<!-- ko if: profile().banner_uploaded -->
<a class='user-profile__header_banner_edit_remove-btn' data-bind='visible: profile().banner_uploaded, click: $root.removeBanner'>Remove</a>
<!-- /ko -->
</div>
<div class='user-profile__header_social-media' data-bind='eachProp: profile().social_info, visible: !selectedSocial()'>
<li class='li--inline pr02'>
<a data-bind='click: $parent.editSocial, css: {empty: value() == null}' href='javascript:;'>
<span class='sr-only' data-bind='text: key'></span>
<i class='svg-icon svg-icon__inline-headline svg-icon__clr-dark svg-icon__clr-hover-default' data-bind='css: $root.socialIconCls(key)'></i>
</a>
</li>
</div>
<!-- ko if: selectedSocial -->
<div class='user-profile__header_social-media_edit center' data-bind='visible: selectedSocial()'>
<div class='input-group flex'>
<label class='input-addon' data-bind='text: prefixForSocial' for='social_url'></label>
<input class='form-control' data-bind='value: selectedSocialInputVal, valueUpdate: "afterkeydown", enterkey: saveSocial' id='social_url' maxlength='85' type='text'>
<a class='input-btn-addon' data-bind='click: saveSocial' href='javascript:;'>Save</a>
</div>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
<div class='user-profile__header_avatar has-image' data-bind='css: { 'is-hidden': $root.bannerEditing() }'>
<img alt='' class='avatar-circle--lg' data-bind='visible: !editMode(), attr: { src: profile().avatar.thumb.url() }' src='https://prod-uploads-pub.useast1.kadenze.com/prod/usr/uploads/user/420833/avatar/thumb_unnamed.jpg?Expires=1716676277&Signature=BaWfv5lhcZqhwSi0gSYrbYSiuDAKWnXEiucg35g4-UvSCC82qeaWgVa0Fhk18m7EvKu5EYmGKPwCLSt8G9RlzyYQlOJwZAst2jovp6xBf7xvp9~5qpbn-qB2zgs4i-gTST6qXjxGrpwGE0OMIUf5lV3j620oWVH4c54Yoq1sywtBZ8L30ChuoDT7WTLMG-P6E2jtA~VqhocL66BjqZ1t3OEeKCs6fvDvcAzFbpKJZmE04bHw4TTsjs~ukfudaNC1FS0~yD-H3mffnpGVYJHqUQFqh4tAZYh8GehGNGTBg-Rf6HYx8vFBNHWj2o9SyGTfFoTwJcE6Hm0hMqU3yUNNqg__&Key-Pair-Id=APKAI3WTOBWXO6VZASUA'>
<div data-bind='visible: editMode'>
<div class='dz-avatar js-avatar-dz' data-dz-name='profile_image' id='profile-avatar-dz'></div>
</div>
</div>
</div>
</div>
<div class='user-profile__content' style='display:none'>
<ul class='min-tab user-profile__nav' role='tablist'>
<li class='min-tab__tab' role='tab'>
<span class='sr-only'>
About
</span>
<a class='min-tab__tab-link' data-toggle='tab' href='#tab-about'>
<span aria-hidden='true' class='min-tab__tab-text'>
About
</span>
</a>
</li>
</ul>
<div class='tab-content user-profile__tab-content'>
<input id='projects_json' type='hidden' value='{"premium_member":null,"add_new_project_url":"/sign_in","max_free_projects":20,"projects":[]}'>
<input id='certificates_json' type='hidden' value='{"certificates":[]}'>
<input id='badges_json' type='hidden' value='[]'>
<div class='tab-pane fade' data-bind='with: userInfoVM' id='tab-about' role='tabpanel'>
<h3 class='sr-only'>About</h3>
<div class='col-xs-12 col-sm-6 col-md-4 center'>
<span></span>
To enable the bio feature reach out to
<a href='mailto:support@kadenze.com'>support@kadenze.com</a>
</div>
</div>
</div>
</div>
</div>
<div class='js-reject-project-modal modal fade'>
<div class='modal-dialog'>
<div class='modal-content modal-confirmation-w-icon'>
<div class='modal-content'>
<div class='modal-header modal-confirmation-icon__header'>
<button aria-hidden='true' class='modal-header__close-btn' data-dismiss='modal' title='Close' type='button'>
<i class='kf kf-x'></i>
</button>
</div>
<div class='modal-body'>
<div class='user-profile__no-certificate_row'>
<div class='user-profile__no-certificate_col'>
<div class='user-profile__portfolio-limit_img'>
</div>
<div class='user-profile__no-certificate_text'>Oh no, you've used all your projects! Upgrade to Premium Membership for unlimited projects.</div>
<a class='btn--md btn--dark btn--outline' href='/pricing_and_membership' target='_blank'>Learn More</a>
</div>
</div>
<div class='mt2 modal-confirmation__body'></div>
</div>
<div class='modal-footer modal-confirmation__footer'>
<a class='pull-right inline-block-link txt-upper mb2' data-dismiss='modal' data-skip-loader href='javascript:;'><span class="translation_missing" title="translation missing: en-KADENZE.modals.reject_project_modal.got_it">Got It</span></a>
</div>
</div>
</div>
</div>
</div>
<input id='recaptcha-site-key-json' type='hidden' value='6Ldh-T8mAAAAAPoZyW-7KW4NOD2aG3JZ9TK3QJQC'>
<div class='course-enroll course-enroll--authenticate modal fade' id='js-course-enroll-modal--authenticate'>
<div class='modal-dialog'>
<div class='modal-content'>
<div class='modal-header'>
<div class='modal-header_headline'>Sign Up or Log In to Leave a Comment</div>
<div class='modal-header_subhead' data-bind='visible: showSignup()'>Sign up is super easy. Let's start by filling out this form.</div>
</div>
<div class='modal-body' data-bind='visible: showSSORegister()' id='js-signup-select'>
<a class="btn--md public-cta-btn btn--prim btn--blk public-cta-btn--modal" href="javascript:;" id="email-register-btn"><span class="public-cta-btn__text">Register With Email</span></a><a class="btn--md public-cta-btn--fb btn--prim btn--blk js-oauth-btn " data-oauth-type="facebook" href="/auth/facebook"><i class="kf kf-social-facebook public-cta-btn__icon" style="pointer-events: none"></i><span class="public-cta-btn__text" style="pointer-events: none">Register With Facebook</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="google" href="/auth/google_oauth2"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><svg width="2443" height="2500" viewbox="0 0 256 262" xmlns="http://www.w3.org/2000/svg" preserveaspectratio="xMidYMid"><path d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027" fill="#4285F4"></path><path d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1" fill="#34A853"></path><path d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782" fill="#FBBC05"></path><path d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251" fill="#EB4335"></path></svg></i><span class="public-cta-btn__text" style="pointer-events: none">Register With Google</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="azure_activedirectory_v2" href="/auth/azure_activedirectory_v2"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 48 48" width="96px" height="96px"><path fill="#ff5722" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path><path fill="#4caf50" d="M26 6H42V22H26z" transform="rotate(-180 34 14)"></path><path fill="#ffc107" d="M26 26H42V42H26z" transform="rotate(-180 34 34)"></path><path fill="#03a9f4" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path></svg></i><span class="public-cta-btn__text" style="pointer-events: none">Register With Microsoft</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="clever" href="https://clever.com/oauth/authorize?response_type=code&redirect_uri=https://www.kadenze.com/auth/clever/callback&client_id=ef5b1ddb463dcd12272c"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><?xml version="1.0" standalone="no"?>
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="20.000000pt" height="20.000000pt" viewbox="0 0 20.000000 20.000000" preserveaspectratio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,20.000000) scale(0.008889,-0.008889)" fill="#1464ff" stroke="none">
<path d="M0 1125 l0 -1125 1125 0 1125 0 0 1125 0 1125 -1125 0 -1125 0 0
-1125z m1480 696 c52 -18 117 -46 145 -63 59 -36 145 -106 145 -118 0 -11
-190 -230 -200 -230 -4 0 -14 8 -21 17 -8 9 -40 33 -72 54 -233 151 -510 90
-625 -137 -113 -223 -31 -513 173 -618 150 -77 333 -54 486 61 l71 53 26 -19
c33 -23 172 -170 172 -181 0 -11 -64 -68 -135 -120 -195 -144 -519 -172 -760
-65 -190 84 -347 275 -399 487 -20 79 -22 257 -5 338 63 295 278 505 583 570
23 5 104 8 181 6 126 -3 149 -6 235 -35z"></path>
</g>
</svg>
</i><span class="public-cta-btn__text" style="pointer-events: none">Register With Clever</span></a>
<div class='modal-body-copy'>
Already a member?
<a class='inline-text-link inline-text-link--dark' data-bind='click: function(){ showSSORegister(false); showSSOLogin(true); }' href='#' id='course_syllabus_enroll_auth_modal__signup__login_link'>Log In</a>
</div>
</div>
<div class='modal-body' data-bind='visible: showSSOLogin()' id='js-signup-select'>
<a class="btn--md public-cta-btn btn--prim btn--blk public-cta-btn--modal" href="javascript:;" id="email-login-btn"><span class="public-cta-btn__text">Log In With Email</span></a><a class="btn--md public-cta-btn--fb btn--prim btn--blk js-oauth-btn " data-oauth-type="facebook" href="/auth/facebook"><i class="kf kf-social-facebook public-cta-btn__icon" style="pointer-events: none"></i><span class="public-cta-btn__text" style="pointer-events: none">Log In With Facebook</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="google" href="/auth/google_oauth2"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><svg width="2443" height="2500" viewbox="0 0 256 262" xmlns="http://www.w3.org/2000/svg" preserveaspectratio="xMidYMid"><path d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027" fill="#4285F4"></path><path d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1" fill="#34A853"></path><path d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782" fill="#FBBC05"></path><path d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251" fill="#EB4335"></path></svg></i><span class="public-cta-btn__text" style="pointer-events: none">Log In With Google</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="azure_activedirectory_v2" href="/auth/azure_activedirectory_v2"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 48 48" width="96px" height="96px"><path fill="#ff5722" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path><path fill="#4caf50" d="M26 6H42V22H26z" transform="rotate(-180 34 14)"></path><path fill="#ffc107" d="M26 26H42V42H26z" transform="rotate(-180 34 34)"></path><path fill="#03a9f4" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path></svg></i><span class="public-cta-btn__text" style="pointer-events: none">Log In With Microsoft</span></a><a class="btn--md public-cta-btn--google btn--blk js-oauth-btn " data-oauth-type="clever" href="https://clever.com/oauth/authorize?response_type=code&redirect_uri=https://www.kadenze.com/auth/clever/callback&client_id=ef5b1ddb463dcd12272c"><i class="svg-icon public-cta-btn__icon" style="pointer-events: none"><?xml version="1.0" standalone="no"?>
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="20.000000pt" height="20.000000pt" viewbox="0 0 20.000000 20.000000" preserveaspectratio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,20.000000) scale(0.008889,-0.008889)" fill="#1464ff" stroke="none">
<path d="M0 1125 l0 -1125 1125 0 1125 0 0 1125 0 1125 -1125 0 -1125 0 0
-1125z m1480 696 c52 -18 117 -46 145 -63 59 -36 145 -106 145 -118 0 -11
-190 -230 -200 -230 -4 0 -14 8 -21 17 -8 9 -40 33 -72 54 -233 151 -510 90
-625 -137 -113 -223 -31 -513 173 -618 150 -77 333 -54 486 61 l71 53 26 -19
c33 -23 172 -170 172 -181 0 -11 -64 -68 -135 -120 -195 -144 -519 -172 -760
-65 -190 84 -347 275 -399 487 -20 79 -22 257 -5 338 63 295 278 505 583 570
23 5 104 8 181 6 126 -3 149 -6 235 -35z"></path>
</g>
</svg>
</i><span class="public-cta-btn__text" style="pointer-events: none">Log In With Clever</span></a>
<div class='modal-body-copy'>
<a class='inline-text-link inline-text-link--dark' data-bind='click: function(){ showSSORegister(true); showSSOLogin(false); }' href='#' id='course_syllabus_enroll_auth_modal__signup__login_link'>Create an Account</a>
</div>
</div>
<div class='modal-body' data-bind='visible: showSignup()' id='js-signup'>
<form>
<div class='modal-form form-group'>
<label class='sr-only form__label' for='first_name'>First Name</label>
<input class='form-control' data-bind='value: newuser().first_name' id='first_name' placeholder='First Name' type='text'>
<label class='sr-only form__label' for='last_name'>Last Name</label>
<input class='form-control' data-bind='value: newuser().last_name' id='last_name' placeholder='Last Name' type='text'>
<label class='sr-only form__label' for='email_signup'>Email Address</label>
<input class='form-control' data-bind='value: newuser().email' id='email_signup' placeholder='Email Address' type='email'>
<label class='sr-only form__label' for='password_signup'>Password</label>
<input class='form-control' data-bind='value: newuser().password' id='password_signup' placeholder='Password' type='password'>
<label class='sr-only form__label' for='password_confirm'>Confirm Password</label>
<input class='form-control' data-bind='value: newuser().password_confirmation' id='password_confirm' placeholder='Confirm Password' type='password'>
<input id='recaptcha-token' name='recaptcha_token' type='hidden'>
</div>
<div class='modal-body-copy'>
<input class='kd-form__checkbox' data-bind='checked: newuser().agreed_to_terms_and_privacy' id='agreed_to_terms_and_privacy' type='checkbox' value='1'>
<label for='agreed_to_terms_and_privacy'>
By clicking on
Sign Up
below, I agree to the
<a class='inline-text-link inline-text-link--dark' href='/terms_and_conditions' tabindex='-1'>
Terms of Use
</a>
and
<a class='inline-text-link inline-text-link--dark' href='/privacy_policy' tabindex='-1'>
privacy policy
</a>
</label>
</input>
</div>
<div class='modal-body-copy'>
<button class='btn--md btn--dark btn--blk ladda-button' data-bind='click: register' data-style='slide-down' id='course_syllabus_enroll_auth_modal__signup__submit_btn' type='submit'>Sign Up</button>
</div>
<div class='modal-body-copy'>
Already a member?
<a class='inline-text-link inline-text-link--dark' data-bind='click: function(){ showSignup(false); showLogin(true); }' href='#' id='course_syllabus_enroll_auth_modal__signup__login_link'>Log In</a>
</div>
</form>
</div>
<div class='modal-body' data-bind='visible: showLogin()' id='js-login'>
<form>
<div class='modal-form form-group'>
<label class='sr-only form__label' for='email'>Email Address</label>
<input class='form-control' data-bind='value: loginuser().email' id='email' placeholder='Email Address' type='email'>
<label class='sr-only form__label' for='password'>Password</label>
<input class='form-control' data-bind='value: loginuser().password' id='password' placeholder='Password' type='password'>
</div>
<div class='modal-body-copy'>
<input class='btn--md btn--dark btn--blk ladda-button' data-bind='click: login' data-style='slide-down' id='course_syllabus_enroll_auth_modal__login__submit_btn' type='submit' value='SUBMIT'>
</div>
<div class='modal-body-copy'>
<a class='inline-text-link inline-text-link--dark' href='/password/new' target='_blank'>Forgot Your Password?</a>
·
<a class='inline-text-link inline-text-link--dark' data-bind='click: function(){ showSignup(true); showLogin(false); }' href='#'>Create an Account</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='kl-main__footer'>
<footer class='kadenzec-footer'>
<div class='kadenzec-footer__row-wrap'>
<div class='kadenzec-footer__info'>
<div class='kadenzec-footer__logo'>
<a target="_blank" class="kadenzec-footer__logo_link" rel="noreferrer" href="https://www.kannu.com"><img class="screen-logo" height="28" alt="Kannu" src="https://prod-assets.useast1.kadenze.com/assets/svg/logos/powered_by_kannu-white-e298ac443935f7e27f0d1653d9990b562298c7132986d62c841270492b0e69f8.svg" />
</a><img class="print-logo" height="28" alt="Kannu" src="https://prod-assets.useast1.kadenze.com/assets/svg/logos/powered_by_kannu-3378a6c4caec196bf96f088e8a479f9bac8af598151c1dca96187f28c9ce8b55.svg" />
</div>
<p class='kadenzec-footer__p'>
Kadenze, Inc. partners with leading universities and institutions across the globe to provide world-class online education in the fields of art and creative technology.
</p>
<div class='kadenzec-footer__links'>
<a class="kadenzec-footer__link" href="/">Home</a>
|
<a class="kadenzec-footer__link" href="/courses">Courses</a>
|
<a class="kadenzec-footer__link" href="/programs">Programs</a>
|
<a class="kadenzec-footer__link" href="/pricing_and_membership">Membership</a>
|
<a class="kadenzec-footer__link" href="/frequently_asked_questions">FAQ</a>
|
<a class="kadenzec-footer__link" href="/press">Press</a>
|
<a target="_blank" rel="noreferrer" class="kadenzec-footer__link" href="http://blog.kadenze.com">Blog</a>
|
<a target="_blank" rel="noreferrer" class="kadenzec-footer__link" href="https://business.kadenze.com">For Business</a>
|
<a class="kadenzec-footer__link" href="/accessibility_statement">Accessibility Statement</a>
</div>
<div class='kadenzec-footer__links mb05'>
<a class="kadenzec-footer__link" href="/register">Sign Up</a>
|
<a class="kadenzec-footer__link" href="/sign_in">Log In</a>
</div>
<div class='kadenzec-footer__caption'>
© 2024 Kadenze, Inc.
</div>
<div class='kadenzec-footer__caption'>
Kadenze and Kannu are trademarks of Kadenze, Inc.
</div>
<div class='kadenzec-footer__caption'>
Version 5.73.0
</div>
</div>
<div class='kadenzec-footer__institution-contact'>
<h2 class='kadenzec-footer__display-title'>
Are you an Institution?
</h2>
<p class='kadenzec-footer__p'>
Kadenze is always looking for new partners. Find out how you can start working with us today.
</p>
<a class='btn--md branding-footer-btn txt-upper' href='https://kadenze.help/hc/en-us/requests/new?src=www.kadenze.com' rel='noreferrer' target='_blank'>
Contact Us Now
</a>
</div>
<div class='kadenzec-footer__general-contact'>
<h2 class='kadenzec-footer__display-title js-footerForm_title'>
Connect with Kadenze!
</h2>
<form class="footer-form" id="new_prospective_user" data-module-amd="KadenzePublicProspectiveStudent" action="/prospective_users" accept-charset="UTF-8" data-remote="true" method="post"><p class='kadenzec-footer__p js-footerForm_p'>
Enter your email to be the first to hear about updates and new courses offered by Kadenze.
</p>
<div class='js-footerForm_input_container'>
<label class='sr-only' for='prospective_user_email'>
Email Address
</label>
<input placeholder="Email Address" class="footer__email-input" type="email" required="required" name="prospective_user[email]" id="prospective_user_email" />
<button class='btn--md branding-footer-btn txt-upper'>
Stay In Touch
</button>
</div>
</form><a class='kadenzec-footer__social-link' href='https://twitter.com/KadenzeOfficial' rel='noreferrer' target='_blank'>
<span class='sr-only'>
Visit Our Twitter Page
</span>
<span class='kf-stack kf-stack--circle'>
<i class='kf kf-circle-fill'></i>
<i class='kf kf-inverse kf-social-twitter'></i>
</span>
</a>
<a class='kadenzec-footer__social-link' href='https://www.facebook.com/pages/Kadenze/1574215946184639' rel='noreferrer' target='_blank'>
<span class='sr-only'>
Visit Our Facebook Page
</span>
<span class='kf-stack kf-stack--circle'>
<i class='kf kf-circle-fill'></i>
<i class='kf kf-inverse kf-social-facebook'></i>
</span>
</a>
<a class='kadenzec-footer__social-link' href='https://www.linkedin.com/company/kadenze' rel='noreferrer' target='_blank'>
<span class='sr-only'>
Visit Our LinkedIn Page
</span>
<span class='kf-stack kf-stack--circle'>
<i class='kf kf-circle-fill'></i>
<i class='kf kf-inverse kf-social-linkedin'></i>
</span>
</a>
</div>
</div>
<div class='footer-bar'>
<div></div>
<div></div>
<div></div>
</div>
</footer>
<link rel="stylesheet" media="all" href="https://prod-assets.useast1.kadenze.com/assets/application-kadenzec-d89a59bbc7ce1658396189f11e3ca37df860e6bebe77a79dbc6409d249b41247.css" />
<script>Kadenze.onModuleLoaded('Analytics', () => Kadenze.Analytics.init(true, null));</script>
<!-- start Mixpanel --><script class="_iub_cs_activate-inline" type="text/plain">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments,
0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]);mixpanel.init('21e45260d702b0670569afafd9b3a081'); mixpanel.identify('8e167b6c-833f-46ad-a384-bf60eb24dff5');</script><!-- end Mixpanel -->
<script class="_iub_cs_activate-inline" type="text/plain">if(typeof fbq === 'undefined') {
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '483925218455659');fbq('track', "PageView");
} else {
fbq('track', "PageView");
}</script><noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=483925218455659&ev=PageView&noscript=1"
/></noscript>
<script src="https://01206b9fc98f43749e421adfcf839755.js.ubembed.com" async></script>
<!-- Hotjar Tracking Code for www.kadenze.com -->
<script class='_iub_cs_activate-inline' type='text/plain'>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:756243,hjsv:6};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
</script>
<!-- Start Profitwell --><script id="profitwell-js" data-pw-auth="0c6b7769d0b95655204bbc5188675d4b">(function(i,s,o,g,r,a,m){i[o]=i[o]||function(){(i[o].q=i[o].q||[]).push(arguments)};
a=s.createElement(g);m=s.getElementsByTagName(g)[0];a.async=1;a.src=r+'?auth='+
s.getElementById(o+'-js').getAttribute('data-pw-auth');m.parentNode.insertBefore(a,m);
})(window,document,'profitwell','script','https://public.profitwell.com/js/profitwell.js');profitwell('start', {});</script><!-- End Profitwell -->
<script>(function(d){var s = d.createElement('script');s.setAttribute('data-account', 'iPSN3uy0Yg');s.setAttribute('src', 'https://cdn.userway.org/widget.js');(d.body || d.head).appendChild(s);})(document)</script>
<noscript>Please ensure Javascript is enabled for purposes of <a href='https://userway.org'>website accessibility</a></noscript>
<script src="//g.adspeed.net/ad.php?do=detectadblocker"></script>
<script type='text/javascript'>
window.addEventListener('load', function () {
if (document.getElementById('My-AdServer')) {
ga('send','event','Ads Blocked?','No',{'nonInteraction':true});
} else {
ga('send','event','Ads Blocked?','Yes',{'nonInteraction':true});
}
});
</script>
<div id='js-grid-detectors'>
<div class='grid-size device-xs visible-xs'></div>
<div class='grid-size device-sm visible-sm'></div>
<div class='grid-size device-md visible-md'></div>
<div class='grid-size device-lg visible-lg'></div>
</div>
</div>
</div>
</div>
</div>
<div aria-live='assertive' id='notice-growler' role='alert'></div>
</body>
</html>