').hide().html(new XMLSerializer().serializeToString(data.documentElement)).appendTo('body');\r\n\r\n\t\t\t\t$('svg use').each(function () {\r\n\t\t\t\t\tvar parts = $(this).attr('xlink:href').split('#');\r\n\r\n\t\t\t\t\t$(this).attr('xlink:href', '#' + parts[1]);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Wrap iframe videos for responsiveness\r\n\t\t$(\"iframe[src*='vimeo.com'], iframe[src*='youtube.com']\", '.typography').each(function () {\r\n\t\t\t$(this).wrap('
');\r\n\t\t});\r\n\r\n\t\t// Wrap tables for responsive tables\r\n\t\t$(\".typography table\").not(\".table_wrapper .table_wrapper_inner table\").wrap('
');\r\n\r\n\t\tFormstone.Ready(onPageLoad);\r\n\t\tSite.OnResize.push(onResize);\r\n\t}\r\n\r\n\tfunction onResize() {\r\n\t\ttableOverflow();\r\n\r\n\t\tif ($FixedHeader) {\r\n\t\t\tcalculateFixedHeader();\r\n\t\t}\r\n\r\n\t\t// $(':root')\r\n\t\t// \t.get(0)\r\n\t\t// \t.style.setProperty('--header-height', $('.js-header-primary').outerHeight() + 'px');\r\n\t}\r\n\r\n\tfunction calculateFixedHeader() {\r\n\t\tvar bt_bar_height = $('#bigtree_bar').outerHeight();\r\n\t\tvar wp_bar_height = $('#wpadminbar').outerHeight();\r\n\r\n\t\tFixedHeaderHeight = $FixedHeader.outerHeight();\r\n\r\n\t\tif (typeof bt_bar_height !== 'undefined' && bt_bar_height) {\r\n\t\t\t$FixedHeader.css('top', bt_bar_height);\r\n\r\n\t\t\tFixedHeaderHeight = FixedHeaderHeight + bt_bar_height;\r\n\t\t} else if (typeof wp_bar_height !== 'undefined' && wp_bar_height) {\r\n\t\t\t$FixedHeader.css('top', wp_bar_height);\r\n\r\n\t\t\tFixedHeaderHeight = FixedHeaderHeight + wp_bar_height;\r\n\t\t}\r\n\r\n\t\t$('html').css('--header-height', FixedHeaderHeight + 'px');\r\n\t}\r\n\r\n\tfunction onPageLoad() {\r\n\t\t$('body').removeClass('preload').addClass('loaded');\r\n\t\t$(window).trigger('resize');\r\n\t}\r\n\r\n\tfunction tableOverflow() {\r\n\t\t$('.table_wrapper').each(function () {\r\n\t\t\tvar $inner = $(this).find('.table_wrapper_inner'),\r\n\t\t\t\tscrollWidth = $inner.get(0).scrollWidth,\r\n\t\t\t\tclientWidth = $inner.get(0).clientWidth;\r\n\r\n\t\t\tif (scrollWidth > clientWidth) {\r\n\t\t\t\t$(this).addClass('table_wrapper_overflow').attr({ tabindex: '0', role: 'group' });\r\n\t\t\t} else {\r\n\t\t\t\t$(this).removeClass('table_wrapper_overflow').removeAttr('tabindex role');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getScrollbarWidth() {\r\n\t\tvar $outer = $('
')\r\n\t\t\t.css({\r\n\t\t\t\tvisibility: 'hidden',\r\n\t\t\t\twidth: '100px',\r\n\t\t\t\tmsOverflowStyle: 'scrollbar'\r\n\t\t\t})\r\n\t\t\t.appendTo('body');\r\n\r\n\t\tvar no_scroll_width = $outer.outerWidth();\r\n\r\n\t\t// force scrollbars\r\n\t\t$outer.css({ overflow: 'scroll' });\r\n\r\n\t\t// add inner div and calculate width difference\r\n\t\tvar $inner = $('
').css({ width: '100%' }).appendTo($outer);\r\n\t\tvar width = no_scroll_width - $inner.outerWidth();\r\n\r\n\t\t// remove divs\r\n\t\t$outer.remove();\r\n\r\n\t\treturn width;\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n\r\n\treturn {\r\n\t\tgetScrollbarWidth: getScrollbarWidth\r\n\t};\r\n})(jQuery, Site);\r\n\r\nwindow.Page = Page;\r\n\r\nexport default Page;\r\n","/* --------------------------------------------------------------------------\n\tSearch Panel\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Page, Site */\n\n(function ($, Site) {\n\tvar $SearchPanel, $SearchClose, $SearchToggle, $ShiftingElements, LockClass;\n\n\tfunction init() {\n\t\t$SearchPanel = $('.js-search-panel');\n\n\t\tif (!$SearchPanel.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$SearchToggle = $('.js-search-toggle');\n\t\t$SearchClose = $('.js-search-close-toggle');\n\t\t$ShiftingElements = $('.header, .page, .footer');\n\t\tLockClass = 'fs-page-lock';\n\n\t\t$SearchPanel.find('a, button, input').attr('tabindex', '-1');\n\t\t$SearchPanel\n\t\t\t.attr({\n\t\t\t\trole: 'dialog',\n\t\t\t\t'aria-modal': 'true'\n\t\t\t})\n\t\t\t.on('keydown', onMenuKeydown)\n\t\t\t.on('keyup', onMenuKeyup)\n\t\t\t.attr('aria-hidden', 'true');\n\n\t\t$SearchToggle.on('activate.swap', onMenuSwapActivate).on('deactivate.swap', onMenuSwapDeactivate).attr({ 'aria-expanded': 'false', role: 'button' });\n\n\t\t$SearchClose.on('keydown', onCloseKeydown).on('click', onMenuSwapDeactivate);\n\n\t\t// it makes no sense why a timeout is needed, but it is.\n\t\t$('.search_toggle').on('click', function () {\n\t\t\tsetTimeout(function () { $('#search_string__panel').focus(); }, 500);\n\t\t});\n\t}\n\n\tfunction onDocumentClick(e) {\n\t\tif ($('body').hasClass(LockClass)) {\n\t\t\tif (!$(e.target).closest('.js-search-panel').length) {\n\t\t\t\t$SearchToggle.swap('deactivate');\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onMenuSwapActivate() {\n\t\t$('body').addClass(LockClass);\n\n\t\t$SearchToggle.attr('aria-expanded', 'true');\n\n\t\t$SearchPanel\n\t\t\t.attr({ 'aria-hidden': 'false', tabindex: '0' })\n\t\t\t.transition({ always: false, property: 'opacity' }, function () {\n\t\t\t\t$SearchPanel.focus();\n\t\t\t})\n\t\t\t.find('a, button, input')\n\t\t\t.removeAttr('tabindex');\n\n\t\t$ShiftingElements.css('padding-right', Page.getScrollbarWidth());\n\n\t\t$SearchPanel.css({\n\t\t\t'margin-right': '',\n\t\t\twidth: ''\n\t\t});\n\t}\n\n\tfunction onMenuSwapDeactivate() {\n\t\t$('body').removeClass(LockClass);\n\n\t\t$SearchPanel.attr('aria-hidden', 'true').removeAttr('tabindex').find('a, button, input').attr('tabindex', '-1');\n\n\t\t$SearchToggle.attr('aria-expanded', 'false').focus();\n\n\t\t$ShiftingElements.css('padding-right', '');\n\n\t\t$SearchPanel.css({\n\t\t\t'margin-right': Page.getScrollbarWidth() * -1,\n\t\t\twidth: 'calc(100% + ' + Page.getScrollbarWidth() + 'px)'\n\t\t});\n\t}\n\n\tfunction onCloseKeydown(e) {\n\t\t// tab\n\t\tif (e.keyCode === 9) {\n\t\t\tif (!e.shiftKey) {\n\t\t\t\t$SearchPanel.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onMenuKeydown(e) {\n\t\tif ($SearchPanel.is(':focus')) {\n\t\t\t// tab\n\t\t\tif (e.keyCode === 9) {\n\t\t\t\tif (e.shiftKey) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t$SearchClose.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onMenuKeyup(e) {\n\t\t// escape\n\t\tif (e.keyCode === 27) {\n\t\t\t$SearchToggle.swap('deactivate');\n\t\t}\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\n\tSub Nav\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function($, Site) {\n\n\tvar $SubNavBody,\n\t $SubNavInner,\n\t $SubNavList,\n\t $SubNavToggle;\n\n\tfunction init() {\n\t\t$SubNavBody = $(\".js-sub-nav-body\");\n\n\t\tif (!$SubNavBody.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$SubNavInner = $(\".js-sub-nav-body-inner\");\n\t\t$SubNavList = $(\".js-sub-nav-list\");\n\t\t$SubNavToggle = $(\".js-sub-nav-toggle\");\n\n\t\t$SubNavToggle.attr(\"aria-expanded\", \"false\")\n\t\t .attr(\"aria-haspopup\", \"true\")\n\t\t .on(\"activate.swap\", onSubSwapActivate)\n\t\t .on(\"deactivate.swap\", onSubSwapDeactivate);\n\n\t\tSite.OnResize.push(onResize);\n\n\t\tSite.OnRespond.push(onRespond);\n\t}\n\n\tfunction onResize() {\n\t\tvar height = $SubNavInner.innerHeight();\n\n\t\t$SubNavBody.data(\"height\", height);\n\n\t\tif ($SubNavToggle.hasClass(\"fs-swap-active\")) {\n\t\t\t$SubNavBody.css(\"height\", height);\n\t\t}\n\t}\n\n\tfunction onRespond() {\n\n\t\tif ($(window).width() >= Site.MinLG) {\n\t\t\t$SubNavList.attr(\"aria-hidden\", \"false\")\n\t\t\t .find(\"a\").removeAttr(\"tabindex\");\n\t\t\t$SubNavBody.removeAttr(\"height\");\n\t\t} else {\n\t\t\tif ($SubNavToggle.hasClass(\"fs-swap-active\")) {\n\t\t\t\t$SubNavList.attr(\"aria-hidden\", \"false\")\n\t\t\t\t\t\t .find(\"a\").removeAttr(\"tabindex\");\n\t\t\t} else {\n\t\t\t\t$SubNavList.attr(\"aria-hidden\", \"true\")\n\t\t\t\t\t\t .find(\"a\").attr(\"tabindex\", \"-1\");\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSubSwapActivate() {\n\t\t$(this).attr(\"aria-expanded\", \"true\");\n\n\t\t$SubNavList.attr(\"aria-hidden\", \"false\")\n\t\t .find(\"a\").removeAttr(\"tabindex\");\n\n\t\t$SubNavBody.css(\"height\", $SubNavBody.data(\"height\"));\n\t}\n\n\tfunction onSubSwapDeactivate() {\n\t\t$(this).attr(\"aria-expanded\", \"false\");\n\n\t\t$SubNavList.attr(\"aria-hidden\", \"true\")\n\t\t .find(\"a\").attr(\"tabindex\", \"-1\");\n\n\t\t$SubNavBody.css(\"height\", \"0\");\n\t}\n\n\tSite.OnInit.push(init);\n\n})(jQuery, Site);","export let dirs = {\n\tSTATIC_ROOT: '/',\n\tWWW_ROOT: '/'\n};\n\nexport let jsClasses = {\n\tfs: {\n\t\tswapActive: 'fs-swap-active'\n\t}\n};\n\nexport let requireAll = (context) => {\n\tcontext.keys().forEach(context);\n};\n","/* --------------------------------------------------------------------------\n\tAccordion\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function($, Site) {\n\n\tvar $Accordion,\n\t\t$AccordionContent,\n\t $AccordionSwap;\n\n\tfunction init() {\n\t\t$Accordion = $(\".js-accordion\");\n\n\t\tif (!$Accordion.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$AccordionContent = $(\".js-accordion-content\");\n\t\t$AccordionSwap = $(\".js-accordion-swap\");\n\n\t\t$AccordionContent.attr(\"aria-hidden\", \"true\");\n\t\t$AccordionSwap.attr(\"aria-expanded\", \"false\");\n\n\t\t$Accordion.each(function() {\n\t\t\tif ($(this).find(\".fs-swap-active\").length) {\n\t\t\t\t$(this).find(\".js-accordion-content:eq(0)\").attr(\"aria-hidden\", \"false\");\n\t\t\t\t$(this).find(\".js-accordion-item:eq(0) .js-accordion-swap\").attr(\"aria-expanded\", \"true\");\n\t\t\t}\n\t\t});\n\n\t\t$AccordionSwap.on(\"activate.swap\", onTriggerActivate)\n\t\t .on(\"deactivate.swap\", onTriggerDeactivate)\n\t\t .on(\"keydown\", onTriggerKeydown);\n\t}\n\n\tfunction activeFirstAccordion(accordion) {\n\t\t$(accordion).find(\".js-accordion-item:first-of-type .js-accordion-swap\").focus();\n\t}\n\n\tfunction activeLastAccordion(accordion) {\n\t\t$(accordion).find(\".js-accordion-item:last-of-type .js-accordion-swap\").focus();\n\t}\n\n\tfunction activeNextAccordion(accordion) {\n\t\t$(accordion).next().find(\".js-accordion-swap\").focus();\n\t}\n\n\tfunction activePrevAccordion(accordion) {\n\t\t$(accordion).prev().find(\".js-accordion-swap\").focus();\n\t}\n\n\tfunction onTriggerActivate() {\n\t\t$(this).attr(\"aria-expanded\", \"true\");\n\n\t\t$Accordion.find($(this).data(\"swap-target\") + \" .js-accordion-content\").attr(\"aria-hidden\", \"false\");\n\t}\n\n\tfunction onTriggerDeactivate() {\n\t\t$(this).attr(\"aria-expanded\", \"false\");\n\n\t\t$Accordion.find($(this).data(\"swap-target\") + \" .js-accordion-content\").attr(\"aria-hidden\", \"true\");\n\t}\n\n\tfunction onTriggerKeydown(e) {\n\t\tif ([36, 35, 38, 40].indexOf(e.keyCode) === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $focusedElement = $(\":focus\"),\n\t\t $focusedItem = $focusedElement.closest(\".js-accordion-item\"),\n\t\t $closestAccordion = $(this).closest(\".js-accordion\");\n\n\t\te.preventDefault();\n\n\t\tswitch (e.keyCode) {\n\t\t\t// home\n\t\t\tcase 36:\n\t\t\t\tactiveFirstAccordion($closestAccordion);\n\n\t\t\t\tbreak;\n\t\t\t// end\n\t\t\tcase 35:\n\t\t\t\tactiveLastAccordion($closestAccordion);\n\n\t\t\t\tbreak;\n\t\t\t// up\n\t\t\tcase 38:\n\t\t\t\tif ($focusedItem.prev().length > 0) {\n\t\t\t\t\tactivePrevAccordion($focusedItem);\n\t\t\t\t} else {\n\t\t\t\t\tactiveLastAccordion($closestAccordion);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t// down\n\t\t\tcase 40:\n\t\t\t\tif ($focusedItem.next().length > 0) {\n\t\t\t\t\tactiveNextAccordion($focusedItem);\n\t\t\t\t} else {\n\t\t\t\t\tactiveFirstAccordion($closestAccordion);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tSite.OnInit.push(init);\n\n})(jQuery, Site);","/* --------------------------------------------------------------------------\n\tCard Group\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tfunction init() {\n\t\tif (!$('.js-card-group-body').length) {\n\t\t\treturn;\n\t\t}\n\n\t\tSite.OnResize.push(onResize);\n\t}\n\n\tfunction onResize() {\n\t\tif ($(window).width() >= Site.MinLG) {\n\t\t\t$('.js-card-group-body').removeAttr('role tabindex');\n\t\t} else {\n\t\t\t$('.js-card-group-body').attr({\n\t\t\t\trole: 'region',\n\t\t\t\ttabindex: '0'\n\t\t\t});\n\t\t}\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\r\n\tExpand\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tvar $Dialog, $DialogDocument, $DialogTrigger, $Trigger, $Target, $DialogClose;\r\n\r\n\tfunction init() {\r\n\t\tif (!$('.js-expand').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$Dialog = $('.js-expand-dialog');\r\n\t\t$DialogDocument = $('.js-expand-dialog-document');\r\n\t\t$DialogTrigger = $('.js-expand-dialog-trigger');\r\n\t\t$DialogClose = $('.js-expand-dialog-close');\r\n\r\n\t\t$(document).on('click touchstart', onDocumentClick);\r\n\r\n\t\t$DialogTrigger.attr('role', 'button').on('activate.swap', onTriggerActivate).on('deactivate.swap', onTriggerDeactivate);\r\n\r\n\t\t$DialogClose.on('click', onCloseClick).on('keydown', onCloseKeydown);\r\n\r\n\t\t$Dialog\r\n\t\t\t.attr({\r\n\t\t\t\trole: 'dialog',\r\n\t\t\t\t'aria-modal': 'true',\r\n\t\t\t\t'aria-hidden': 'true',\r\n\t\t\t\ttabindex: '0'\r\n\t\t\t})\r\n\t\t\t.on('keydown', onDialogKeydown)\r\n\t\t\t.on('keyup', onDialogKeyup)\r\n\t\t\t.find('a, button, input')\r\n\t\t\t.attr('tabindex', '-1');\r\n\r\n\t\t$DialogDocument.attr('role', 'document');\r\n\r\n\t\t$DialogTrigger.attr('role', 'button');\r\n\t}\r\n\r\n\tfunction onTriggerActivate() {\r\n\t\t$Trigger = $(this);\r\n\t\t$Target = $($(this).data('swap-target'));\r\n\r\n\t\t$('.js-expand-dialogs').addClass('active');\r\n\t\topenDialog();\r\n\t}\r\n\r\n\tfunction onTriggerDeactivate() {\r\n\t\t$('.js-expand-dialogs').removeClass('active');\r\n\t\tcloseDialog();\r\n\t}\r\n\r\n\tfunction onCloseClick(e) {\r\n\t\t$Trigger.swap('deactivate');\r\n\t}\r\n\r\n\tfunction onCloseKeydown(e) {\r\n\t\tif (e.keyCode === 9) {\r\n\t\t\t// tab\r\n\t\t\tif (!e.shiftKey) {\r\n\t\t\t\t$Target.focus();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onDialogKeydown(e) {\r\n\t\tif ($Dialog.is(':focus')) {\r\n\t\t\tif (e.keyCode === 9) {\r\n\t\t\t\t// tab\r\n\t\t\t\tif (e.shiftKey) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t$Target.find('.js-expand-dialog-close').focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onDialogKeyup(e) {\r\n\t\tif (e.keyCode === 27) {\r\n\t\t\t// escape\r\n\t\t\t$Trigger.swap('deactivate');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onDocumentClick(e) {\r\n\t\tif ($('body').hasClass('dialog_open')) {\r\n\t\t\tif (!($(e.target).closest('.js-expand-dialog').length || $(escape.target).closest('.js-expand-dialog-trigger').length)) {\r\n\t\t\t\t$Trigger.swap('deactivate');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction openDialog() {\r\n\t\t$('html, body').addClass('dialog_open');\r\n\r\n\t\t$Target\r\n\t\t\t.attr('aria-hidden', 'false')\r\n\t\t\t.transition({ always: false, property: 'opacity' }, function () {\r\n\t\t\t\t$Target.focus();\r\n\t\t\t})\r\n\t\t\t.find('a, button, input')\r\n\t\t\t.removeAttr('tabindex', '-1');\r\n\t}\r\n\r\n\tfunction closeDialog() {\r\n\t\t$('html, body').removeClass('dialog_open');\r\n\r\n\t\t$Target.attr('aria-hidden', 'true').find('a, button, input').attr('tabindex', '-1');\r\n\r\n\t\t$Trigger.focus();\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\n\tExpress\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tvar $Tabs, $TabList, $TabItem, $TabTrigger, $TabPanel;\n\n\tfunction init() {\n\t\t$Tabs = $('.js-express-tabs-block');\n\n\t\tif (!$Tabs.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$TabList = $('.js-express-tabs');\n\t\t$TabItem = $('.js-express-tab');\n\t\t$TabTrigger = $('.js-express-tab-trigger');\n\t\t$TabPanel = $('.js-express-tab-panel');\n\n\t\t$TabTrigger\n\t\t\t.attr({\n\t\t\t\trole: 'tab',\n\t\t\t\t'aria-selected': 'false',\n\t\t\t\ttabindex: '-1'\n\t\t\t})\n\t\t\t.on('activate.swap', onTriggerActivate)\n\t\t\t.on('deactivate.swap', onTriggerDeactivate)\n\t\t\t.on('keydown', onTabListKeydown);\n\n\t\t$TabPanel\n\t\t\t.attr({\n\t\t\t\trole: 'tabpanel',\n\t\t\t\ttabindex: '-1',\n\t\t\t\t'aria-hidden': 'true'\n\t\t\t})\n\t\t\t.on('keydown', onTabPanelKeydown);\n\n\t\t$TabList.attr('role', 'tablist');\n\n\t\t$TabItem.attr('role', 'presentation');\n\n\t\t$TabItem.each(function () {\n\t\t\t$(this)\n\t\t\t\t.find('.js-express-tab-trigger')\n\t\t\t\t.attr('aria-controls', 'js-express-tab-panel-' + ($(this).index() + 1));\n\t\t});\n\n\t\t$TabPanel.each(function () {\n\t\t\t$(this).attr('aria-labelledby', 'js-express-tab-trigger-' + ($(this).index() + 1));\n\t\t});\n\n\t\t$Tabs.each(function () {\n\t\t\t$(this).find('.js-express-tab:eq(0) .js-express-tab-trigger').attr('aria-selected', 'true').removeAttr('tabindex');\n\t\t\t$(this).find('.js-express-tab-panel:eq(0)').attr('aria-hidden', 'false');\n\t\t});\n\t}\n\n\tfunction onTriggerActivate() {\n\t\t$(this).attr('aria-selected', 'true').removeAttr('tabindex');\n\n\t\t$Tabs.find($(this).data('swap-target')).attr('aria-hidden', 'false');\n\t}\n\n\tfunction onTriggerDeactivate() {\n\t\t$(this).attr({\n\t\t\t'aria-selected': 'false',\n\t\t\ttabindex: '-1'\n\t\t});\n\n\t\t$Tabs.find($(this).data('swap-target')).attr('aria-hidden', 'true');\n\t}\n\n\tfunction onTabListKeydown(e) {\n\t\tvar tabIndex = $('.js-express-tab-trigger:focus').closest('.js-express-tab').index();\n\t\tvar $tabsActive = $('.js-express-tab-trigger:focus').closest('.js-express-tabs-block');\n\n\t\tif (tabIndex >= 0) {\n\t\t\tif (e.keyCode === 37) {\n\t\t\t\t// left\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (tabIndex > 0) {\n\t\t\t\t\t$tabsActive\n\t\t\t\t\t\t.find('.js-express-tab:eq(' + (tabIndex - 1) + ') .js-express-tab-trigger')\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.swap('activate');\n\t\t\t\t} else {\n\t\t\t\t\t$tabsActive.find('.js-express-tab:last-of-type .js-express-tab-trigger').focus().swap('activate');\n\t\t\t\t}\n\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t// right\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (!$(this).closest('.js-express-tab').is(':last-of-type')) {\n\t\t\t\t\t$tabsActive\n\t\t\t\t\t\t.find('.js-express-tab:eq(' + (tabIndex + 1) + ') .js-express-tab-trigger')\n\t\t\t\t\t\t.focus()\n\t\t\t\t\t\t.swap('activate');\n\t\t\t\t} else {\n\t\t\t\t\t$tabsActive.find('.js-express-tab:first-of-type .js-express-tab-trigger').focus().swap('activate');\n\t\t\t\t}\n\t\t\t} else if (e.keyCode === 36) {\n\t\t\t\t// home\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$tabsActive.find('.js-express-tab:eq(0) .js-express-tab-trigger').focus().swap('activate');\n\t\t\t} else if (e.keyCode === 35) {\n\t\t\t\t// end\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$tabsActive.find('.js-express-tab:last-of-type .js-express-tab-trigger').focus().swap('activate');\n\t\t\t}\n\t\t}\n\n\t\tif (e.keyCode === 40) {\n\t\t\t// down\n\t\t\te.preventDefault();\n\n\t\t\t$tabsActive = $('.js-express-tab-trigger:focus').closest('.js-express-tabs-block');\n\t\t\tvar activeTab = $tabsActive.find('.js-express-tab-trigger.fs-swap-active').data('swap-target');\n\n\t\t\t$tabsActive.find(activeTab).focus();\n\t\t}\n\t}\n\n\tfunction onTabPanelKeydown(e) {\n\t\tif (e.keyCode === 38) {\n\t\t\t// up\n\t\t\te.preventDefault();\n\n\t\t\t$(this).closest('.js-express-tabs-block').find('.js-express-tab-trigger.fs-swap-active').focus();\n\t\t}\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\r\n\tFaculty Cards\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-faculty-list').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tonResize();\r\n\r\n\t\t$('.js-faculty-card-expertise-toggle').on('activate.swap', onToggleSwapActivate).on('deactivate.swap', onToggleSwapDeactivate);\r\n\r\n\t\t$('.js-faculty-card-extra-toggle').on('activate.swap', onMoreSwapActivate);\r\n\r\n\t\tSite.OnResize.push(onResize);\r\n\t}\r\n\r\n\tfunction onToggleSwapActivate() {\r\n\t\t$(this).attr('aria-expanded', 'true').closest('.js-faculty-card').addClass('active');\r\n\t}\r\n\r\n\tfunction onToggleSwapDeactivate() {\r\n\t\tvar $card = $(this).closest('.js-faculty-card');\r\n\r\n\t\t$(this).attr('aria-expanded', 'false');\r\n\t\t$card.find('.js-faculty-card-expertise-info').transition({ always: false, property: 'opacity' }, function () {\r\n\t\t\t$card.removeClass('active');\r\n\t\t});\r\n\t}\r\n\r\n\tfunction onResize() {\r\n\t\t$('.js-faculty-card-inner').each(function () {\r\n\t\t\tvar height = $(this).innerHeight();\r\n\r\n\t\t\t$(this)\r\n\t\t\t\t.closest('.js-faculty-card')\r\n\t\t\t\t.get(0)\r\n\t\t\t\t.style.setProperty('--card-height', height + 'px');\r\n\t\t});\r\n\r\n\t\t$('.js-faculty-card-expertise-info').each(function () {\r\n\t\t\tvar height = $(this).innerHeight();\r\n\r\n\t\t\t$(this)\r\n\t\t\t\t.closest('.js-faculty-card-expertise-data')\r\n\t\t\t\t.get(0)\r\n\t\t\t\t.style.setProperty('--expertise-height', height + 'px');\r\n\t\t});\r\n\t}\r\n\r\n\tfunction onMoreSwapActivate() {\r\n\t\tonResize();\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\n\tHome Feature\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tvar Raf, LastScrollTop, ContentHeight, ScrollTop;\n\n\tfunction init() {\n\t\tif (!$('.js-feature').length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$(function () {\n\t\t\t$('.js-feature-jumps').addClass('ready');\n\t\t});\n\n\t\tRaf = window.requestAnimationFrame;\n\t\tLastScrollTop = window.pageYOffset;\n\t\tContentHeight = $('.js-feature-header-content').innerHeight();\n\n\t\tscrollLoop();\n\t\tonScroll();\n\n\t\tSite.OnResize.push(onResize);\n\n\t\t$('.js-feature-header-toggle').attr('role', 'button').on('click', onToggleClick);\n\t\t$('.js-feature-control-pause').on('click', onPauseClick);\n\t\t$('.js-feature-control-play').on('click', onPlayClick);\n\t\t$('.js-feature-control-mute').on('click', onMuteClick);\n\t\t$('.js-feature-control-unmute').on('click', onUnmuteClick);\n\t}\n\n\tfunction onToggleClick() {\n\t\t$('.js-feature').addClass('rolling');\n\t\t$('.js-feature-media-video-background').trigger('pause');\n\t\t$('.js-feature-media-video-foreground').transition({ always: false, property: 'opacity' }, function () {\n\t\t\t$('.js-feature-media-video-foreground').trigger('play');\n\t\t});\n\t}\n\n\tfunction onPauseClick() {\n\t\t$('.js-feature-media-video-foreground').trigger('pause');\n\t\t$('.js-feature-control-pause').removeClass('active');\n\t\t$('.js-feature-control-play').addClass('active');\n\t}\n\n\tfunction onPlayClick() {\n\t\t$('.js-feature-media-video-foreground').trigger('play');\n\t\t$('.js-feature-control-play').removeClass('active');\n\t\t$('.js-feature-control-pause').addClass('active');\n\t}\n\n\tfunction onMuteClick() {\n\t\t$('.js-feature-media-video-foreground').prop('muted', true);\n\t\t$('.js-feature-control-mute').removeClass('active');\n\t\t$('.js-feature-control-unmute').addClass('active');\n\t}\n\n\tfunction onUnmuteClick() {\n\t\t$('.js-feature-media-video-foreground').prop('muted', false);\n\t\t$('.js-feature-control-unmute').removeClass('active');\n\t\t$('.js-feature-control-mute').addClass('active');\n\t}\n\n\tfunction scrollLoop() {\n\t\tScrollTop = window.pageYOffset;\n\n\t\tif (LastScrollTop === ScrollTop) {\n\t\t\tRaf(scrollLoop);\n\n\t\t\treturn;\n\t\t} else {\n\t\t\tLastScrollTop = ScrollTop;\n\n\t\t\tonScroll();\n\t\t\tRaf(scrollLoop);\n\t\t}\n\t}\n\n\tfunction onScroll() {\n\t\tif ($(window).width() >= Site.MinLG && $(window).width() < Site.MinXL) {\n\t\t\tif (ScrollTop > 1500) {\n\t\t\t\tScrollTop = 1500;\n\t\t\t}\n\t\t} else if ($(window).width() >= Site.MinXL) {\n\t\t\tif (ScrollTop > 1350) {\n\t\t\t\tScrollTop = 1350;\n\t\t\t}\n\t\t}\n\n\t\t$('.js-feature-header-content-decoration').height(ContentHeight + ScrollTop);\n\t}\n\n\tfunction onResize() {\n\t\tContentHeight = $('.js-feature-header-content').innerHeight();\n\t\tonScroll();\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\r\n\tFiltered List\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-filterset').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$('.js-filterset-form').on('submit', onFormSubmit);\r\n\t\t$('.js-filterset-category-1').addClass('active');\r\n\t}\r\n\r\n\tfunction onFormSubmit(e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tvar $component = $(this).closest('.js-filterset');\r\n\t\tvar selector = $component.find(':selected').data('class');\r\n\r\n\t\t$component.find('.js-filterset-category').removeClass('active');\r\n\t\t$component.find(selector).addClass('active').focus();\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\r\n\tHeader\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tvar Raf, LastScrollTop;\r\n\r\n\tfunction init() {\r\n\t\tif (!$('.js-header').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tRaf = window.requestAnimationFrame;\r\n\t\tLastScrollTop = window.pageYOffset;\r\n\r\n\t\tscrollLoop();\r\n\t\tonScroll();\r\n\r\n\t\tSite.OnResize.push(onResize);\r\n\t}\r\n\r\n\tfunction scrollLoop() {\r\n\t\tvar scrollTop = window.pageYOffset;\r\n\r\n\t\tif (LastScrollTop === scrollTop) {\r\n\t\t\tRaf(scrollLoop);\r\n\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tLastScrollTop = scrollTop;\r\n\r\n\t\t\tonScroll();\r\n\t\t\tRaf(scrollLoop);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onScroll() {\r\n\t\tvar headerScroll = $('.js-header-inner')[0].getBoundingClientRect().top;\r\n\r\n\t\tif ($(window).width() >= Site.MinLG) {\r\n\t\t\tif (headerScroll > -100) {\r\n\t\t\t\t$('.header_decoration_dot').css('opacity', 1);\r\n\t\t\t\t$('.header_primary_inner').css('border-bottom-color', 'rgba(255, 255, 255, 0.15)');\r\n\t\t\t\t$('.header_decoration_line').css('width', '48px');\r\n\t\t\t\t$('.js-header-screen').css('opacity', 0);\r\n\t\t\t\t$('.header .logo_link').css('padding-bottom', '35px');\r\n\t\t\t\t$('.header .icon_logo').css('width', '200px');\r\n\t\t\t\t$('.micro_header_site').css('margin-bottom', '-2px');\r\n\t\t\t\t$('.micro_header_divider').css('margin-bottom', '15px');\r\n\t\t\t} else if (headerScroll < -100 && headerScroll > -300) {\r\n\t\t\t\tvar opacity = 1 - (Math.abs(headerScroll) - 100) / 200;\r\n\t\t\t\tvar border = opacity * 0.15;\r\n\t\t\t\tvar width = opacity * 48;\r\n\r\n\t\t\t\t$('.header_decoration_dot').css('opacity', opacity);\r\n\t\t\t\t$('.header_primary_inner').css('border-bottom-color', 'rgba(255, 255, 255, ' + border + ')');\r\n\t\t\t\t$('.header_decoration_line').css('width', width + 'px');\r\n\t\t\t\t$('.js-header-screen').css('opacity', 1 - opacity);\r\n\t\t\t\t$('.header .logo_link').css('padding-bottom', 35 - 15 * (1 - opacity) + 'px');\r\n\t\t\t\t$('.header .icon_logo').css('width', 200 - 43 * (1 - opacity) + 'px');\r\n\t\t\t\t$('.micro_header_site').css('margin-bottom', -2 - 6 * (1 - opacity) + 'px');\r\n\t\t\t\t$('.micro_header_divider').css('margin-bottom', 15 - 6 * (1 - opacity) + 'px');\r\n\t\t\t} else {\r\n\t\t\t\t$('.header_decoration_dot').css('opacity', 0);\r\n\t\t\t\t$('.header_primary_inner').css('border-bottom-color', 'rgba(255, 255, 255, 0)');\r\n\t\t\t\t$('.header_decoration_line').css('width', '0');\r\n\t\t\t\t$('.js-header-screen').css('opacity', 1);\r\n\t\t\t\t$('.header .logo_link').css('padding-bottom', '20px');\r\n\t\t\t\t$('.header .icon_logo').css('width', '157px');\r\n\t\t\t\t$('.micro_header_site').css('margin-bottom', '-8px');\r\n\t\t\t\t$('.micro_header_divider').css('margin-bottom', '9px');\r\n\t\t\t}\r\n\r\n\t\t\tif (headerScroll < 0) {\r\n\t\t\t\t$('.js-header').addClass('pin');\r\n\t\t\t} else {\r\n\t\t\t\t$('.js-header').removeClass('pin');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$('.header_decoration_dot').css('opacity', 1);\r\n\t\t\t$('.header_primary_inner').css('border-bottom-color', 'rgba(255, 255, 255, 0.15)');\r\n\t\t\t$('.header_decoration_line').css('width', '27px');\r\n\t\t\t$('.js-header-screen').css('opacity', 0);\r\n\t\t\t$('.header .logo_link').css('padding-bottom');\r\n\t\t\t$('.header .icon_logo').css('width');\r\n\t\t\t$('.micro_header_site').css('margin-bottom');\r\n\t\t\t$('.micro_header_divider').css('margin-bottom');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onResize() {\r\n\t\tonScroll();\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\r\n\tMicrosite Header\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-micro-page-header-video').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$('.js-micro-page-header-pause').on('click', onPauseClick);\r\n\t\t$('.js-micro-page-header-play').on('click', onPlayClick);\r\n\t}\r\n\r\n\tfunction onPauseClick() {\r\n\t\t$('.js-micro-page-header-video').trigger('pause');\r\n\t\t$('.js-micro-page-header-pause').removeClass('active');\r\n\t\t$('.js-micro-page-header-play').addClass('active');\r\n\t}\r\n\r\n\tfunction onPlayClick() {\r\n\t\t$('.js-micro-page-header-video').trigger('play');\r\n\t\t$('.js-micro-page-header-play').removeClass('active');\r\n\t\t$('.js-micro-page-header-pause').addClass('active');\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\n\tModule\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function($, Site) {\n\n\tfunction init() {\n\t\tif (!$(\".selector\").length) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tSite.OnInit.push(init);\n\n})(jQuery, Site);","/* --------------------------------------------------------------------------\n\tProfiles\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tvar ProfileHeight = 265;\n\n\tfunction init() {\n\t\tif (!$('.js-profiles').length) {\n\t\t\treturn;\n\t\t}\n\n\t\tSite.OnResize.push(onResize);\n\t}\n\n\tfunction onResize() {\n\t\tif ($(window).width() >= Site.MinMD) {\n\t\t\tProfileHeight = 275;\n\t\t} else {\n\t\t\tProfileHeight = 265;\n\t\t}\n\n\t\t$('.js-profile').removeClass('clipped');\n\n\t\t$('.js-profile-content-inner').each(function () {\n\t\t\tif ($(this).innerHeight() > ProfileHeight) {\n\t\t\t\t$(this).closest('.js-profile').addClass('clipped');\n\t\t\t}\n\t\t});\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\r\n\tScrolling\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-component-scroll').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tRaf = window.requestAnimationFrame;\r\n\t\tLastScrollTop = window.pageYOffset;\r\n\t\tWindowHeight = $(window).height();\r\n\r\n\t\tscrollLoop();\r\n\t\tonScroll();\r\n\t}\r\n\r\n\tfunction scrollLoop() {\r\n\t\tvar scrollTop = window.pageYOffset;\r\n\r\n\t\tif (LastScrollTop === scrollTop) {\r\n\t\t\tRaf(scrollLoop);\r\n\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tLastScrollTop = scrollTop;\r\n\r\n\t\t\tonScroll();\r\n\t\t\tRaf(scrollLoop);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onScroll() {\r\n\t\tif ($(window).width() >= Site.MinLG) {\r\n\t\t\t$('.js-component-scroll-item-inner').each(function () {\r\n\t\t\t\tvar $parent = $(this).closest('.js-component-scroll-item');\r\n\t\t\t\tvar scrollSpeed = parseInt($parent.data('rate')) * -0.05;\r\n\t\t\t\tvar offset = $(window).height() - $parent[0].getBoundingClientRect().top;\r\n\r\n\t\t\t\t$(this).css('transform', 'translate3d(0, ' + offset * scrollSpeed + 'px, 0)');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$('.js-component-scroll-item-inner').css('transform', '');\r\n\t\t}\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\r\n\tShare Tools\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\nvar Share = (function ($, Site) {\r\n\tvar $Options, $Toggle, $Tools, $Share_tools;\r\n\r\n\tfunction init() {\r\n\t\t$Tools = $('.js-share-tools');\r\n\r\n\t\tif (!$Tools.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$Options = $('.js-share-tools-list');\r\n\t\t$Toggle = $('.js-share-tools-toggle');\r\n\r\n\t\t$Toggle.on('click', onToggleClick).on('keydown', onToggleKeydown);\r\n\r\n\t\tif (typeof navigator.share === 'undefined') {\r\n\t\t\t$Toggle.attr({ 'aria-haspopup': 'true', 'aria-expanded': 'false' }).swap();\r\n\t\t\t$Options.attr('aria-hidden', 'true').on('keydown', onOptionsKeydown);\r\n\t\t\t$('.js-share-tool').attr('tabindex', '-1');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onToggleClick() {\r\n\t\t$Share_tools = $(this).closest('.js-share-tools');\r\n\r\n\t\tif (typeof navigator.share === 'undefined') {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif ($Share_tools.hasClass('fs-swap-active')) {\r\n\t\t\t\t\topenOptions();\r\n\r\n\t\t\t\t\t$Share_tools.find('.js-share-tool-item:first-child').transition({ always: false, property: 'opacity' }, function () {\r\n\t\t\t\t\t\t$Share_tools.find('.js-share-tool').first().focus();\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcloseOptions();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t} else {\r\n\t\t\tnavigator.share({\r\n\t\t\t\ttitle: encodeURIComponent($('title').text()),\r\n\t\t\t\ttext: $('meta[property=\"og:description\"]').attr('content'),\r\n\t\t\t\turl: window.location.href\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onToggleKeydown(e) {\r\n\t\t$Share_tools = $(this).closest('.js-share-tools');\r\n\t\tvar key = e.keyCode;\r\n\r\n\t\tif (key !== 38 && key !== 40) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (typeof navigator.share === 'undefined') {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif (!$Share_tools.hasClass('fs-swap-active')) {\r\n\t\t\t\t$Share_tools.find('.js-share-tools-toggle').swap('activate');\r\n\r\n\t\t\t\topenOptions();\r\n\t\t\t}\r\n\r\n\t\t\t// up\r\n\t\t\tif (key === 38) {\r\n\t\t\t\tif ($Share_tools.hasClass('fs-swap-active')) {\r\n\t\t\t\t\t$Share_tools.find('.js-share-tool-item:last-child').transition({ always: false, property: 'opacity' }, function () {\r\n\t\t\t\t\t\t$Share_tools.find('.js-share-tool').last().focus();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// down\r\n\t\t\t} else {\r\n\t\t\t\tif ($Share_tools.hasClass('fs-swap-active')) {\r\n\t\t\t\t\t$Share_tools.find('.js-share-tool-item:first-child').transition({ always: false, property: 'opacity' }, function () {\r\n\t\t\t\t\t\t$Share_tools.find('.js-share-tool').first().focus();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onOptionsKeydown(e) {\r\n\t\t$Share_tools = $(this).closest('.js-share-tools');\r\n\t\tvar key = e.keyCode;\r\n\t\tvar focusedIndex = $(':focus').closest('.js-share-tool-item').index();\r\n\r\n\t\tif ([27, 38, 40, 36, 35].indexOf(key) === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tswitch (key) {\r\n\t\t\t// escape\r\n\t\t\tcase 27:\r\n\t\t\t\t$Share_tools.find('.js-share-tools-toggle').swap('deactivate').focus();\r\n\t\t\t\tcloseOptions();\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t// up\r\n\t\t\tcase 38:\r\n\t\t\t\tif (focusedIndex > 0) {\r\n\t\t\t\t\t$Share_tools\r\n\t\t\t\t\t\t.find('.js-share-tool')\r\n\t\t\t\t\t\t.eq(focusedIndex - 1)\r\n\t\t\t\t\t\t.focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$Share_tools.find('.js-share-tool').last().focus();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t// down\r\n\t\t\tcase 40:\r\n\t\t\t\tif (!$(':focus').closest('.js-share-tool-item').is(':last-of-type')) {\r\n\t\t\t\t\t$Share_tools\r\n\t\t\t\t\t\t.find('.js-share-tool')\r\n\t\t\t\t\t\t.eq(focusedIndex + 1)\r\n\t\t\t\t\t\t.focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$Share_tools.find('.js-share-tool').first().focus();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t// home\r\n\t\t\tcase 36:\r\n\t\t\t\t$Share_tools.find('.js-share-tool').first().focus();\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t// end\r\n\t\t\tcase 35:\r\n\t\t\t\t$Share_tools.find('.js-share-tool').last().focus();\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction openOptions() {\r\n\t\t$Share_tools.find('.js-share-tools-toggle').attr('aria-expanded', 'true');\r\n\r\n\t\t$Share_tools.find('.js-share-tools-list').attr('aria-hidden', 'false').find('.js-share-tool').removeAttr('tabindex');\r\n\t}\r\n\r\n\tfunction closeOptions() {\r\n\t\t$Share_tools.find('.js-share-tools-toggle').attr('aria-expanded', 'false').focus();\r\n\r\n\t\t$Share_tools.find('.js-share-tools-list').attr('aria-hidden', 'true').find('.js-share-tool').attr('tabindex', '-1');\r\n\t}\r\n\r\n\tfunction populateUrls() {\r\n\t\tvar url = $('meta[property=\"og:url\"]').attr('content');\r\n\t\tvar title = $('meta[property=\"og:title\"]').attr('content');\r\n\r\n\t\tif (!url) {\r\n\t\t\turl = window.location.href;\r\n\t\t}\r\n\t\tif (!title) {\r\n\t\t\ttitle = encodeURIComponent($('title').text());\r\n\t\t}\r\n\r\n\t\t$('.js-share-facebook').attr('href', '//www.facebook.com/sharer/sharer.php?u=' + url);\r\n\t\t$('.js-share-twitter').attr('href', '//twitter.com/intent/tweet?text=' + title + '&url=' + url);\r\n\t\t$('.js-share-linkedin').attr('href', '//www.linkedin.com/shareArticle?mini=true&url=' + url + '&title=' + title);\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n\r\n\treturn {\r\n\t\tpopulateUrls: populateUrls\r\n\t};\r\n})(jQuery, Site);\r\n\r\nwindow.Share = Share;\r\n\r\nexport default Share;\r\n","/* --------------------------------------------------------------------------\n\tTimeline\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tfunction init() {\n\t\tif (!$('.js-timeline').length) {\n\t\t\treturn;\n\t\t}\n\n\t\t$('.js-timeline-item:even').addClass('odd');\n\t\t$('.js-timeline-item:odd').addClass('even');\n\n\t\tSite.OnResize.push(onResize);\n\n\t\t$('.js-timeline-toggle').on('activate.swap', onToggleActivate).on('deactivate.swap', onToggleDeactivate);\n\n\t\thideLinks();\n\t}\n\n\tfunction onResize() {\n\t\tvar minimum_height = $('.js-timeline-item:nth-child(1)').innerHeight() + $('.js-timeline-item:nth-child(2)').innerHeight() + 30;\n\n\t\t$('.js-timeline')\n\t\t\t.get(0)\n\t\t\t.style.setProperty('--timeline-height', minimum_height + 'px');\n\t}\n\n\tfunction onToggleActivate() {\n\t\tshowLinks();\n\t}\n\n\tfunction onToggleDeactivate() {\n\t\thideLinks();\n\t}\n\n\tfunction hideLinks() {\n\t\t$('.js-timeline-item').find('a').attr('tabindex', '-1');\n\t\t$('.js-timeline-item').eq(0).find('a').removeAttr('tabindex');\n\t\t$('.js-timeline-item').eq(1).find('a').removeAttr('tabindex');\n\t}\n\n\tfunction showLinks() {\n\t\t$('.js-timeline-item').find('a').removeAttr('tabindex');\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","/* --------------------------------------------------------------------------\r\n\tTransitions\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-transition-component').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\r\n\t\t\tvar observer = new IntersectionObserver(\r\n\t\t\t\tfunction (entries) {\r\n\t\t\t\t\tentries.forEach(function (entry) {\r\n\t\t\t\t\t\tif (entry.isIntersecting === true) {\r\n\t\t\t\t\t\t\tentry.target.classList.add('in_view');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tthreshold: 0.5\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\tvar items = document.querySelectorAll('.js-transition-item');\r\n\r\n\t\t\titems.forEach(function (item, index) {\r\n\t\t\t\tobserver.observe(item, index);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$('.js-transition-item').addClass('in_view');\r\n\t\t}\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\r\n\tVideo Local\r\n-------------------------------------------------------------------------- */\r\n\r\n/* globals jQuery, Site */\r\n\r\n(function ($, Site) {\r\n\tfunction init() {\r\n\t\tif (!$('.js-video-wide-media').length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$('.js-video-local-pause').on('click', onPauseClick);\r\n\t\t$('.js-video-local-play').on('click', onPlayClick);\r\n\t}\r\n\r\n\tfunction onPauseClick() {\r\n\t\t$(this).removeClass('active').closest('.js-video-local-wrapper').find('.js-video-local-player').trigger('pause');\r\n\t\t$(this).closest('.js-video-local-wrapper').find('.js-video-local-play').addClass('active');\r\n\t}\r\n\r\n\tfunction onPlayClick() {\r\n\t\t$(this).removeClass('active').closest('.js-video-local-wrapper').find('.js-video-local-player').trigger('play');\r\n\t\t$(this).closest('.js-video-local-wrapper').find('.js-video-local-pause').addClass('active');\r\n\t}\r\n\r\n\tSite.OnInit.push(init);\r\n})(jQuery, Site);\r\n","/* --------------------------------------------------------------------------\n\tYouTube Replace\n-------------------------------------------------------------------------- */\n\n/* globals jQuery, Site */\n\n(function ($, Site) {\n\tvar $Container, $Player, VideoId, VideoTitle, $Wrapper, Player;\n\n\tfunction init() {\n\t\tif (!$('.js-youtube-video').length) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tag = document.createElement('script');\n\t\ttag.src = 'https://www.youtube.com/iframe_api';\n\t\tvar firstScriptTag = document.getElementsByTagName('script')[0];\n\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n\t\t$('.js-youtube-video').each(function () {\n\t\t\t$(this).find('.js-youtube-button').on('click', onButtonClick);\n\t\t});\n\n\t\tif ($('.js-expand-dialog').length) {\n\t\t\t$('.js-expand-dialog-close').on('click', onDialogCloseClick);\n\t\t}\n\n\t\tif ($('.js-express-tabs').length) {\n\t\t\t$('.js-express-tab-trigger').on('click', onTabClick);\n\t\t}\n\t}\n\n\tfunction onButtonClick() {\n\t\t$Container = $(this).closest('.js-youtube-video');\n\t\t$Player = $Container.find('.js-youtube-player');\n\t\tVideoId = $Container.data('video');\n\t\tVideoTitle = '- ' + $Container.data('title');\n\t\t$Wrapper = $Container.closest('.js-youtube-video-wrapper');\n\n\t\twindow.YT.ready(function () {\n\t\t\tonYouTubeIframeAPIReady();\n\t\t});\n\t}\n\n\tfunction onYouTubeIframeAPIReady() {\n\t\tPlayer = new YT.Player($Player[0], {\n\t\t\theight: '390',\n\t\t\twidth: '640',\n\t\t\tvideoId: VideoId,\n\t\t\ttitle: VideoTitle,\n\t\t\tplayerVars: {\n\t\t\t\trel: 0,\n\t\t\t\tplaysinline: 1,\n\t\t\t\tautoplay: 1,\n\t\t\t\torigin: encodeURIComponent(window.location.protocol + '//' + window.location.hostname)\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tonReady: onPlayerReady\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction onPlayerReady(event) {\n\t\t$Wrapper.addClass('ready');\n\t\tevent.target.playVideo();\n\t}\n\n\tfunction onDialogCloseClick() {\n\t\tPlayer.pauseVideo();\n\t}\n\n\tfunction onTabClick() {\n\t\tPlayer.pauseVideo();\n\t}\n\n\tSite.OnInit.push(init);\n})(jQuery, Site);\n","import 'formstone/dist/js/core';\nimport 'formstone/dist/js/mediaquery';\nimport 'formstone/dist/js/swap';\nimport 'formstone/dist/js/touch';\nimport 'formstone/dist/js/transition';\nimport 'formstone/dist/js/cookie';\n","/*! modernizr 3.6.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-csstransforms-csstransforms3d-supports-svgclippaths-touchevents-setclasses !*/\n!function(e,n,t){function r(e,n){return typeof e===n}function o(){var e,n,t,o,s,i,a;for(var l in C)if(C.hasOwnProperty(l)){if(e=[],n=C[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;tp;p++)if(m=e[p],h=q.style[m],u(m,\"-\")&&(m=f(m)),q.style[m]!==t){if(s||r(o,\"undefined\"))return a(),\"pfx\"==n?m:!0;try{q.style[m]=o}catch(y){}if(q.style[m]!=h)return a(),\"pfx\"==n?m:!0}return a(),!1}function g(e,n,t,o,s){var i=e.charAt(0).toUpperCase()+e.slice(1),a=(e+\" \"+j.join(i+\" \")+i).split(\" \");return r(n,\"string\")||r(n,\"undefined\")?h(a,n,o,s):(a=(e+\" \"+A.join(i+\" \")+i).split(\" \"),p(a,n,t))}function y(e,n,r){return g(e,t,t,n,r)}var S=[],C=[],w={_version:\"3.6.0\",_config:{classPrefix:\"\",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){C.push({name:e,fn:n,options:t})},addAsyncTest:function(e){C.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=w,Modernizr=new Modernizr;var _=\"CSS\"in e&&\"supports\"in e.CSS,x=\"supportsCSS\"in e;Modernizr.addTest(\"supports\",_||x);var b=n.documentElement,T=\"svg\"===b.nodeName.toLowerCase(),P=w._config.usePrefixes?\" -webkit- -moz- -o- -ms- \".split(\" \"):[\"\",\"\"];w._prefixes=P;var z={}.toString;Modernizr.addTest(\"svgclippaths\",function(){return!!n.createElementNS&&/SVGClipPath/.test(z.call(n.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")))});var E=w.testStyles=l;Modernizr.addTest(\"touchevents\",function(){var t;if(\"ontouchstart\"in e||e.DocumentTouch&&n instanceof DocumentTouch)t=!0;else{var r=[\"@media (\",P.join(\"touch-enabled),(\"),\"heartz\",\")\",\"{#modernizr{top:9px;position:absolute}}\"].join(\"\");E(r,function(e){t=9===e.offsetTop})}return t});var N=\"Moz O ms Webkit\",j=w._config.usePrefixes?N.split(\" \"):[];w._cssomPrefixes=j;var A=w._config.usePrefixes?N.toLowerCase().split(\" \"):[];w._domPrefixes=A;var k={elem:i(\"modernizr\")};Modernizr._q.push(function(){delete k.elem});var q={style:k.elem.style};Modernizr._q.unshift(function(){delete q.style}),w.testAllProps=g,w.testAllProps=y,Modernizr.addTest(\"csstransforms\",function(){return-1===navigator.userAgent.indexOf(\"Android 2.\")&&y(\"transform\",\"scale(1)\",!0)}),Modernizr.addTest(\"csstransforms3d\",function(){return!!y(\"perspective\",\"1px\",!0)}),o(),s(S),delete w.addTest,delete w.addAsyncTest;for(var L=0;L'),c.$body.on(u.gestureChange,o.killGesture).on(u.gestureStart,o.killGesture).on(u.gestureEnd,o.killGesture),p=!0)},unlockViewport:function(e){void 0!==h[e]&&delete h[e],w.isEmptyObject(h)&&p&&(t.length&&(n?t.attr(\"content\",n):t.remove()),c.$body.off(u.gestureChange).off(u.gestureStart).off(u.gestureEnd),p=!1)},startTimer:function(e,t,n,s){return o.clearTimer(e),s?setInterval(n,t):setTimeout(n,t)},clearTimer:function(e,t){e&&(t?clearInterval(e):clearTimeout(e),e=null)},sortAsc:function(e,t){return parseInt(e,10)-parseInt(t,10)},sortDesc:function(e,t){return parseInt(t,10)-parseInt(e,10)},decodeEntities:function(e){var t=c.document.createElement(\"textarea\");return t.innerHTML=e,t.value},parseQueryString:function(e){for(var t={},n=e.slice(e.indexOf(\"?\")+1).split(\"&\"),s=0;sr[e])&&(r[e]=n))}}(),n.trigger(c.mqChange,[r])}function h(e){var t=m(e.media),n=d[t],i=e.matches,r=i?c.enter:c.leave;if(n&&(n.active||!n.active&&i)){for(var a in n[r])n[r].hasOwnProperty(a)&&n[r][a].apply(n.mq);n.active=!0}}function m(e){return e.replace(/[^a-z0-9\\s]/gi,\"\").replace(/[_\\s]/g,\"\").replace(/^\\s+|\\s+$/g,\"\")}var t=e.Plugin(\"mediaquery\",{utilities:{_initialize:function(e){for(var t in e=e||{},u)u.hasOwnProperty(t)&&(s[t]=e[t]?a.merge(e[t],s[t]):s[t]);for(var n in(s=a.extend(s,e)).minWidth.sort(v.sortDesc),s.maxWidth.sort(v.sortAsc),s.minHeight.sort(v.sortDesc),s.maxHeight.sort(v.sortAsc),u)if(u.hasOwnProperty(n))for(var i in l[n]={},s[n])if(s[n].hasOwnProperty(i)){var r=window.matchMedia(\"(\"+u[n]+\": \"+(s[n][i]===1/0?1e5:s[n][i])+s.unit+\")\");r.addListener(o),l[n][s[n][i]]=r}o()},state:function(){return r},bind:function(e,t,n){var i=f.matchMedia(t),r=m(i.media);for(var a in d[r]||(d[r]={mq:i,active:!0,enter:{},leave:{}},d[r].mq.addListener(h)),n)n.hasOwnProperty(a)&&d[r].hasOwnProperty(a)&&(d[r][a][e]=n[a]);var o=d[r],s=i.matches;s&&o[c.enter].hasOwnProperty(e)?(o[c.enter][e].apply(i),o.active=!0):!s&&o[c.leave].hasOwnProperty(e)&&(o[c.leave][e].apply(i),o.active=!1)},unbind:function(e,t){if(e)if(t){var n=m(t);d[n]&&(d[n].enter[e]&&delete d[n].enter[e],d[n].leave[e]&&delete d[n].leave[e])}else for(var i in d)d.hasOwnProperty(i)&&(d[i].enter[e]&&delete d[i].enter[e],d[i].leave[e]&&delete d[i].leave[e])}},events:{mqChange:\"mqchange\"}}),s={minWidth:[0],maxWidth:[1/0],minHeight:[0],maxHeight:[1/0],unit:\"px\"},c=a.extend(t.events,{enter:\"enter\",leave:\"leave\"}),n=e.$window,f=n[0],v=t.functions,r=null,d=[],l={},u={minWidth:\"min-width\",maxWidth:\"max-width\",minHeight:\"min-height\",maxHeight:\"max-height\"}});","/*! formstone v1.4.22 [swap.js] 2021-10-01 | GPL-3.0 License | formstone.it */\n!function(e){\"function\"==typeof define&&define.amd?define([\"jquery\",\"./core\",\"./mediaquery\"],e):e(jQuery,Formstone)}(function(s,e){\"use strict\";function t(e,a){if(e.enabled&&!e.active){e.group&&!a&&s(e.group).not(e.$el).not(e.linked)[c.namespaceClean](\"deactivate\",!0);var t=e.group?s(e.group).index(e.$el):null;e.$swaps.addClass(e.classes.raw.active),a||e.linked&&s(e.linked).not(e.$el)[c.namespaceClean](\"activate\",!0),this.trigger(o.activate,[t]),e.active=!0}}function i(e,a){e.enabled&&e.active&&(e.$swaps.removeClass(e.classes.raw.active),a||e.linked&&s(e.linked).not(e.$el)[c.namespaceClean](\"deactivate\",!0),this.trigger(o.deactivate),e.active=!1)}function a(e,a){e.enabled||(e.enabled=!0,e.$swaps.addClass(e.classes.raw.enabled),a||s(e.linked).not(e.$el)[c.namespaceClean](\"enable\"),this.trigger(o.enable),e.onEnable?(e.active=!1,t.call(this,e)):(e.active=!0,i.call(this,e)))}function n(e,a){e.enabled&&(e.enabled=!1,e.$swaps.removeClass([e.classes.raw.enabled,e.classes.raw.active].join(\" \")),a||s(e.linked).not(e.$el)[c.namespaceClean](\"disable\"),this.trigger(o.disable))}function l(e){u.killEvent(e);var a=e.data;a.active&&a.collapse?i.call(a.$el,a):t.call(a.$el,a)}var c=e.Plugin(\"swap\",{widget:!0,defaults:{collapse:!0,maxWidth:1/0},classes:[\"target\",\"enabled\",\"active\"],events:{activate:\"activate\",deactivate:\"deactivate\",enable:\"enable\",disable:\"disable\"},methods:{_construct:function(e){e.enabled=!1,e.active=!1,e.classes=s.extend(!0,{},r,e.classes),e.target=this.data(d+\"-target\"),e.$target=s(e.target).addClass(e.classes.raw.target),e.mq=\"(max-width:\"+(e.maxWidth===1/0?\"100000px\":e.maxWidth)+\")\";var a=this.data(d+\"-linked\");e.linked=!!a&&\"[data-\"+d+'-linked=\"'+a+'\"]';var t=this.data(d+\"-group\");e.group=!!t&&\"[data-\"+d+'-group=\"'+t+'\"]',e.$swaps=s().add(this).add(e.$target),this.on(o.click+e.dotGuid,e,l)},_postConstruct:function(e){e.collapse||!e.group||s(e.group).filter(\"[data-\"+d+\"-active]\").length||s(e.group).eq(0).attr(\"data-\"+d+\"-active\",\"true\"),e.onEnable=this.data(d+\"-active\")||!1,s.fsMediaquery(\"bind\",e.rawGuid,e.mq,{enter:function(){a.call(e.$el,e,!0)},leave:function(){n.call(e.$el,e,!0)}})},_destruct:function(e){s.fsMediaquery(\"unbind\",e.rawGuid),e.$swaps.removeClass([e.classes.raw.enabled,e.classes.raw.active].join(\" \")).off(o.namespace)},activate:t,deactivate:i,enable:a,disable:n}}),d=c.namespace,r=c.classes,o=c.events,u=c.functions});","/*! formstone v1.4.22 [touch.js] 2021-10-01 | GPL-3.0 License | formstone.it */\n!function(e){\"function\"==typeof define&&define.amd?define([\"jquery\",\"./core\"],e):e(jQuery,Formstone)}(function(r,s){\"use strict\";function o(e){e.preventManipulation&&e.preventManipulation();var t=e.data,a=e.originalEvent;if(a.type.match(/(up|end|cancel)$/i))d(e);else{if(a.pointerId){var n=!1;for(var i in t.touches)t.touches[i].id===a.pointerId&&(n=!0,t.touches[i].pageX=a.pageX,t.touches[i].pageY=a.pageY);n||t.touches.push({id:a.pointerId,pageX:a.pageX,pageY:a.pageY})}else t.touches=a.touches;a.type.match(/(down|start)$/i)?v(e):a.type.match(/move$/i)&&c(e)}}function v(e){var t=e.data,a=void 0!==t.touches&&t.touches.length?t.touches[0]:null;a&&t.$el.off(m.mouseDown),t.touching||(t.startE=e.originalEvent,t.startX=a?a.pageX:e.pageX,t.startY=a?a.pageY:e.pageY,t.startT=(new Date).getTime(),t.scaleD=1,t.passedAxis=!1),t.$links&&t.$links.off(m.click);var n=Y(t.scale?m.scaleStart:m.panStart,e,t.startX,t.startY,t.scaleD,0,0,\"\",\"\");if(t.scale&&t.touches&&2<=t.touches.length){var i=t.touches;t.pinch={startX:f(i[0].pageX,i[1].pageX),startY:f(i[0].pageY,i[1].pageY),startD:x(i[1].pageX-i[0].pageX,i[1].pageY-i[0].pageY)},n.pageX=t.startX=t.pinch.startX,n.pageY=t.startY=t.pinch.startY}t.touching||(t.touching=!0,t.pan&&!a&&M.on(m.mouseMove,t,c).on(m.mouseUp,t,d),s.support.pointer?M.on([m.pointerMove,m.pointerUp,m.pointerCancel].join(\" \"),t,o):M.on([m.touchMove,m.touchEnd,m.touchCancel].join(\" \"),t,o),t.$el.trigger(n))}function c(e){var t=e.data,a=void 0!==t.touches&&t.touches.length?t.touches[0]:null,n=a?a.pageX:e.pageX,i=a?a.pageY:e.pageY,s=n-t.startX,o=i-t.startY,c=0t.threshold,l=Math.abs(o)>t.threshold;if(!t.passedAxis&&t.axis&&(t.axisX&&l||t.axisY&&r))d(e);else{!t.passedAxis&&(!t.axis||t.axis&&t.axisX&&r||t.axisY&&l)&&(t.passedAxis=!0),t.passedAxis&&(w.killEvent(e),w.killEvent(t.startE));var h=!0,u=Y(t.scale?m.scale:m.pan,e,n,i,t.scaleD,s,o,c,p);if(t.scale)if(t.touches&&2<=t.touches.length){var g=t.touches;t.pinch.endX=f(g[0].pageX,g[1].pageX),t.pinch.endY=f(g[0].pageY,g[1].pageY),t.pinch.endD=x(g[1].pageX-g[0].pageX,g[1].pageY-g[0].pageY),t.scaleD=t.pinch.endD/t.pinch.startD,u.pageX=t.pinch.endX,u.pageY=t.pinch.endY,u.scale=t.scaleD,u.deltaX=t.pinch.endX-t.pinch.startX,u.deltaY=t.pinch.endY-t.pinch.startY}else t.pan||(h=!1);h&&t.$el.trigger(u)}}function d(e){var t=e.data,a=void 0!==t.touches&&t.touches.length?t.touches[0]:null,n=a?a.pageX:e.pageX,i=a?a.pageY:e.pageY,s=n-t.startX,o=i-t.startY,c=(new Date).getTime(),p=t.scale?m.scaleEnd:m.panEnd,r=0t.threshold&&(p=m.swipe),t.axis&&(t.axisX&&u||t.axisY&&h)||h||u){t.$links=t.$el.find(\"a\");for(var g=0,d=t.$links.length;g