dockerfile/examples/omnivore/api/readabilityjs/test/test-pages/gdcvault/source.html

1143 lines
155 KiB
HTML
Raw Normal View History

2024-03-15 14:52:38 +08:00
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" async="async" src="//img.en25.com/i/elqCfg.min.js"></script>
<script type="text/javascript" src="https://m.addthis.com/live/red_lojson/300lo.json?si=6374605e59636e43&amp;bkl=0&amp;bl=1&amp;pdt=2467&amp;sid=6374605e59636e43&amp;pub=ra-57f8023c55d5d405&amp;rev=v8.28.8-wp&amp;ln=en&amp;pc=men&amp;cb=0&amp;ab=-&amp;dp=www.gdcvault.com&amp;fp=play%2F1022186%2FParallelizing-the-Naughty-Dog-Engine&amp;fr=&amp;of=0&amp;pd=0&amp;irt=0&amp;vcl=0&amp;md=0&amp;ct=1&amp;tct=0&amp;abt=0&amp;cdn=0&amp;pi=1&amp;rb=0&amp;gen=100&amp;chr=UTF-8&amp;colc=1668571230329&amp;jsl=1&amp;uvs=6374605e77844f17000&amp;skipb=1&amp;callback=addthis.cbs.jsonp__04172089470373730"></script>
<script type="text/javascript" src="https://v1.addthisedge.com/live/boost/ra-57f8023c55d5d405/_ate.track.config_resp"></script>
<script type="text/javascript" src="https://z.moatads.com/addthismoatframe568911941483/moatframe.js"></script>
<meta property="og:url" content="https://www.gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine" />
<meta property="fb:app_id" content="1093964397366829" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Parallelizing the Naughty Dog Engine Using Fibers" />
<meta property="og:description" content="This talk is a detailed walkthrough of the game engine modifications needed to make The Last of Us Remastered run at 60 fps on PlayStation 4. Topics covered will include the fiber-based job system Naughty Dog adopted for the game, the overall..." />
<meta property="og:image:url" content="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" />
<meta property="og:image" content="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" async="async" src="https://www.google-analytics.com/plugins/ua/linkid.js"></script>
<script type="text/javascript" async="async" src="https://cdn.treasuredata.com/sdk/3.0/td.min.js"></script>
<script async="async" src="//static.iris.informa.com/f23io39d.js"></script>
<script type="text/javascript" async="async" src="https://www.googletagmanager.com/gtag/js?id=G-S5T943ZDXC&amp;l=dataLayer&amp;cx=c"></script>
<script type="text/javascript" async="async" src="https://www.google-analytics.com/analytics.js"></script>
<script async="async" src="https://www.googletagmanager.com/gtm.js?id=GTM-TMS8FLQ"></script>
<script>
<![CDATA[
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TMS8FLQ');
]]>
</script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/img/favicon.ico" type="image/vnd.microsoft.icon" />
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700,800i,900" rel="stylesheet" />
<link href="/css/thickbox.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" media="only screen and (min-width: 481px)" href="/css/style.css" type="text/css" />
<link rel="stylesheet" media="only screen and (max-width: 480px)" href="/css/style_phone.css" type="text/css" /><!--[if lt IE 9]>
<script src="/js/html5shiv.js"></script>
<link rel="stylesheet" href="/css/IElt9.css" type="text/css" />
<![endif]-->
<style>
<![CDATA[
/* Bourgeois Fonts */
<!--[if IE]>
@font-face {
font-family: 'Bourgeois Bold';
src: url('/fonts/bourgeois/BourgBol.eot');
}
@font-face {
font-family: 'Bourgeois';
src: url('/fonts/bourgeois/BourgMed.eot');
}
<![endif]-->
<!--[if !IE]>
@font-face {
font-family: 'Bourgeois Bold';
src: url('/fonts/bourgeois/BourgBol.eot');
src: url('/fonts/bourgeois/BourgBol.otf');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Bourgeois';
src: url('/fonts/bourgeois/BourgMed.eot');
src: url('/fonts/bourgeois/BourgMed.otf');
font-weight: normal;
font-style: normal;
}
<![endif]-->
]]>
</style>
<script type="text/javascript">
//<![CDATA[
var ImageURL = "https://www.gdcvault.com/img/gdc_vault";
//]]>
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery.tools.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery.form.js"></script>
<script type="text/javascript" src="/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/js/jquery.simplemodal-1.4.3.js"></script>
<script type="text/javascript" src="/js/thickbox.js"></script>
<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/mp_popup.js"></script>
<script type="text/javascript" src="/js/underscore.js"></script>
<script type="text/javascript" src="/js/jquery.template.js"></script>
<script type="text/javascript" src="/js/gdc.js?v3"></script>
<script type="text/javascript" src="/js/gdc.solr.js?v3"></script>
<script type="text/javascript" src="/js/gdc.tmpl.solr.js?v3"></script>
<script type="text/javascript" src="/js/gdc.conference.js?v3"></script>
<script type="text/javascript" src="/js/gdc.session.js?v3"></script>
<script type="text/javascript" src="/js/gdc.conference_list.js?v3"></script>
<script type="text/javascript" src="/js/gdc.bookshelf.js?v3"></script>
<link rel="stylesheet" href="/css/informa-iribbon.css" />
<link rel="stylesheet" href="/css/scrolltop.css" />
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="/js/informa-iribbon.js"></script>
<script src="/js/scrolltop.js"></script>
<title>
GDC Vault - Parallelizing the Naughty Dog Engine Using Fibers
</title>
<meta name="title" content="GDC Vault - Parallelizing the Naughty Dog Engine Using Fibers" />
<script type="text/javascript" async="async" src="https://static.iris.informa.com/widgets/v2.0/iris-t.js"></script>
<style type="text/css">
/*<![CDATA[*/
.at-icon{fill:#fff;border:0}.at-icon-wrapper{display:inline-block;overflow:hidden}a .at-icon-wrapper{cursor:pointer}.at-rounded,.at-rounded-element .at-icon-wrapper{border-radius:12%}.at-circular,.at-circular-element .at-icon-wrapper{border-radius:50%}.addthis_32x32_style .at-icon{width:2pc;height:2pc}.addthis_24x24_style .at-icon{width:24px;height:24px}.addthis_20x20_style .at-icon{width:20px;height:20px}.addthis_16x16_style .at-icon{width:1pc;height:1pc}#at16lb{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1001;background-color:#000;opacity:.001}#at_complete,#at_error,#at_share,#at_success{position:static!important}.at15dn{display:none}#at15s,#at16p,#at16p form input,#at16p label,#at16p textarea,#at_share .at_item{font-family:arial,helvetica,tahoma,verdana,sans-serif!important;font-size:9pt!important;outline-style:none;outline-width:0;line-height:1em}* html #at15s.mmborder{position:absolute!important}#at15s.mmborder{position:fixed!important;width:250px!important}#at15s{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgaGAgAjAxEAlGFVJHIUCAAQDcngCUgqGMqwAAAABJRU5ErkJggg==);float:none;line-height:1em;margin:0;overflow:visible;padding:5px;text-align:left;position:absolute}#at15s a,#at15s span{outline:0;direction:ltr;text-transform:none}#at15s .at-label{margin-left:5px}#at15s .at-icon-wrapper{width:1pc;height:1pc;vertical-align:middle}#at15s .at-icon{width:1pc;height:1pc}.at4-icon{display:inline-block;background-repeat:no-repeat;background-position:top left;margin:0;overflow:hidden;cursor:pointer}.addthis_16x16_style .at4-icon,.addthis_default_style .at4-icon,.at4-icon,.at-16x16{width:1pc;height:1pc;line-height:1pc;background-size:1pc!important}.addthis_32x32_style .at4-icon,.at-32x32{width:2pc;height:2pc;line-height:2pc;background-size:2pc!important}.addthis_24x24_style .at4-icon,.at-24x24{width:24px;height:24px;line-height:24px;background-size:24px!important}.addthis_20x20_style .at4-icon,.at-20x20{width:20px;height:20px;line-height:20px;background-size:20px!important}.at4-icon.circular,.circular .at4-icon,.circular.aticon{border-radius:50%}.at4-icon.rounded,.rounded .at4-icon{border-radius:4px}.at4-icon-left{float:left}#at15s .at4-icon{text-indent:20px;padding:0;overflow:visible;white-space:nowrap;background-size:1pc;width:1pc;height:1pc;background-position:top left;display:inline-block;line-height:1pc}.addthis_vertical_style .at4-icon,.at4-follow-container .at4-icon{margin-right:5px}html>body #at15s{width:250px!important}#at15s.atm{background:none!important;padding:0!important;width:10pc!important}#at15s_inner{background:#fff;border:1px solid #fff;margin:0}#at15s_head{position:relative;background:#f2f2f2;padding:4px;cursor:default;border-bottom:1px solid #e5e5e5}.at15s_head_success{background:#cafd99!important;border-bottom:1px solid #a9d582!important}.at15s_head_success a,.at15s_head_success span{color:#000!important;text-decoration:none}#at15s_brand,#at15sptx,#at16_brand{position:absolute}#at15s_brand{top:4px;right:4px}.at15s_brandx{right:20px!important}a#at15sptx{top:4px;right:4px;text-decoration:none;color:#4c4c4c;font-weight:700}#at15sptx:hover{text-decoration:underline}#at16_brand{top:5px;right:30px;cursor:default}#at_hover{padding:4px}#at_hover .at_item,#at_share .at_item{background:#fff!important;float:left!important;color:#4c4c4c!important}#at_share .at_item .at-icon-wrapper{margin-right:5px}#at_hover .at_bold{font-weight:700;color:#000!important}#at_hover .at_item{width:7pc!important;padding:2px 3px!important;margin:1px;text-decoration:none!important}#at_hover .at_item.athov,#at_hover .at_item:focus,#at_hover .at_item:hover{margin:0!important}#at_hover .at_item.athov,#at_hover .at_item:focus,#at_hover .at_item:hover,#at_share .at_item.athov,#at_share .at_item:hover{background:#f2f2f2!important;border:1px solid #e5e5e5;color:#000!important;text-decoration:none}.ipad #at_hover .at_item:focus{background:#fff!important;border:1px solid #fff}.at15t{display:block!important;height:1
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-branding-logo{font-family:helvetica,arial,sans-serif;text-decoration:none;font-size:10px;display:inline-block;margin:2px 0;letter-spacing:.2px}.at-branding-logo .at-branding-icon{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////+GlNUkcc1QAAAB1JREFUeNpiYIQDBjQmAwMmkwEM0JnY1WIxFyDAABGeAFEudiZsAAAAAElFTkSuQmCC")}.at-branding-logo .at-branding-icon,.at-branding-logo .at-privacy-icon{display:inline-block;height:10px;width:10px;margin-left:4px;margin-right:3px;margin-bottom:-1px;background-repeat:no-repeat}.at-branding-logo .at-privacy-icon{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAMAAABR24SMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhQTFRF8fr9ot/xXcfn2/P5AKva////////AKTWodjhjAAAAAd0Uk5T////////ABpLA0YAAAA6SURBVHjaJMzBDQAwCAJAQaj7b9xifV0kUKJ9ciWxlzWEWI5gMF65KUTv0VKkjVeTerqE/x7+9BVgAEXbAWI8QDcfAAAAAElFTkSuQmCC")}.at-branding-logo span{text-decoration:none}.at-branding-logo .at-branding-addthis,.at-branding-logo .at-branding-powered-by{color:#666}.at-branding-logo .at-branding-addthis:hover{color:#333}.at-cv-with-image .at-branding-addthis,.at-cv-with-image .at-branding-addthis:hover{color:#fff}a.at-branding-logo:visited{color:initial}.at-branding-info{display:inline-block;padding:0 5px;color:#666;border:1px solid #666;border-radius:50%;font-size:10px;line-height:9pt;opacity:.7;transition:all .3s ease;text-decoration:none}.at-branding-info span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.at-branding-info:before{content:'i';font-family:Times New Roman}.at-branding-info:hover{color:#0780df;border-color:#0780df}
/*]]>*/
</style>
<script type="text/javascript" charset="utf-8" async="async" src="https://s7.addthis.com/static/layers.fa6cd1947ce26e890d3d.js"></script>
<style type="text/css">
/*<![CDATA[*/
.at-share-dock.atss{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;z-index:1000200;box-shadow:0 0 1px 1px #e2dfe2}.at-share-dock.at-share-dock-zindex-hide{z-index:-1!important}.at-share-dock.atss-top{bottom:auto;top:0}.at-share-dock a{width:auto;transition:none;color:#fff;text-decoration:none;box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.at-share-dock a:hover{width:auto}.at-share-dock .at4-count{height:43px;padding:5px 0 0;line-height:20px;background:#fff;font-family:Helvetica neue,arial}.at-share-dock .at4-count span{width:100%}.at-share-dock .at4-count .at4-share-label{color:#848484;font-size:10px;letter-spacing:1px}.at-share-dock .at4-count .at4-counter{top:2px;position:relative;display:block;color:#222;font-size:22px}.at-share-dock.at-shfs-medium .at4-count{height:36px;line-height:1pc;padding-top:4px}.at-share-dock.at-shfs-medium .at4-count .at4-counter{font-size:18px}.at-share-dock.at-shfs-medium .at-share-btn .at-icon-wrapper,.at-share-dock.at-shfs-medium a .at-icon-wrapper{padding:6px 0}.at-share-dock.at-shfs-small .at4-count{height:26px;line-height:1;padding-top:3px}.at-share-dock.at-shfs-small .at4-count .at4-share-label{font-size:8px}.at-share-dock.at-shfs-small .at4-count .at4-counter{font-size:14px}.at-share-dock.at-shfs-small .at-share-btn .at-icon-wrapper,.at-share-dock.at-shfs-small a .at-icon-wrapper{padding:4px 0}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
div.at-share-close-control.ats-dark,div.at-share-open-control-left.ats-dark,div.at-share-open-control-right.ats-dark{background:#262b30}div.at-share-close-control.ats-light,div.at-share-open-control-left.ats-light,div.at-share-open-control-right.ats-light{background:#fff}div.at-share-close-control.ats-gray,div.at-share-open-control-left.ats-gray,div.at-share-open-control-right.ats-gray{background:#f2f2f2}.atss{position:fixed;top:20%;width:3pc;z-index:100020;background:none}.at-share-close-control{position:relative;width:3pc;overflow:auto}.at-share-open-control-left{position:fixed;top:20%;z-index:100020;left:0;width:22px}.at-share-close-control .at4-arrow.at-left{float:right}.atss-left{left:0;float:left;right:auto}.atss-right{left:auto;float:right;right:0}.atss-right.at-share-close-control .at4-arrow.at-right{position:relative;right:0;overflow:auto}.atss-right.at-share-close-control .at4-arrow{float:left}.at-share-open-control-right{position:fixed;top:20%;z-index:100020;right:0;width:22px;float:right}.atss-right .at-share-close-control .at4-arrow{float:left}.atss.atss-right a{float:right}.atss.atss-right .at4-share-title{float:right;overflow:hidden}.atss .at-share-btn,.atss a{position:relative;display:block;width:3pc;margin:0;outline-offset:-1px;text-align:center;float:left;transition:width .15s ease-in-out;overflow:hidden;background:#e8e8e8;z-index:100030;cursor:pointer}.at-share-btn::-moz-focus-inner{border:0;padding:0}.atss-right .at-share-btn{float:right}.atss .at-share-btn{border:0;padding:0}.atss .at-share-btn:focus,.atss .at-share-btn:hover,.atss a:focus,.atss a:hover{width:4pc}.atss .at-share-btn .at-icon-wrapper,.atss a .at-icon-wrapper{display:block;padding:8px 0}.atss .at-share-btn:last-child,.atss a:last-child{border:none}.atss .at-share-btn span .at-icon,.atss a span .at-icon{position:relative;top:0;left:0;display:block;background-repeat:no-repeat;background-position:50% 50%;width:2pc;height:2pc;line-height:2pc;border:none;padding:0;margin:0 auto;overflow:hidden;cursor:pointer;cursor:hand}.at4-share .at-custom-sidebar-counter{font-family:Helvetica neue,arial;vertical-align:top;margin-right:4px;display:inline-block;text-align:center}.at4-share .at-custom-sidebar-count{font-size:17px;line-height:1.25em;color:#222}.at4-share .at-custom-sidebar-text{font-size:9px;line-height:1.25em;color:#888;letter-spacing:1px}.at4-share .at4-share-count-container{position:absolute;left:0;right:auto;top:auto;bottom:0;width:100%;color:#fff;background:inherit}.at4-share .at4-share-count,.at4-share .at4-share-count-container{line-height:1pc;font-size:10px}.at4-share .at4-share-count{text-indent:0;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:200;width:100%;height:1pc}.at4-share .at4-share-count-anchor{padding-bottom:8px;text-decoration:none;transition:padding .15s ease-in-out .15s,width .15s ease-in-out}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
#at4-drawer-outer-container{top:0;width:20pc;position:fixed}#at4-drawer-outer-container.at4-drawer-inline{position:relative}#at4-drawer-outer-container.at4-drawer-inline.at4-drawer-right{float:right;right:0;left:auto}#at4-drawer-outer-container.at4-drawer-inline.at4-drawer-left{float:left;left:0;right:auto}#at4-drawer-outer-container.at4-drawer-shown,#at4-drawer-outer-container.at4-drawer-shown *{z-index:999999}#at4-drawer-outer-container,#at4-drawer-outer-container .at4-drawer-outer,#at-drawer{height:100%;overflow-y:auto;overflow-x:hidden}.at4-drawer-push-content-right-back{position:relative;right:0}.at4-drawer-push-content-right{position:relative;left:20pc!important}.at4-drawer-push-content-left-back{position:relative;left:0}.at4-drawer-push-content-left{position:relative;right:20pc!important}#at4-drawer-outer-container.at4-drawer-right{left:auto;right:-20pc}#at4-drawer-outer-container.at4-drawer-left{right:auto;left:-20pc}#at4-drawer-outer-container.at4-drawer-shown.at4-drawer-right{left:auto;right:0}#at4-drawer-outer-container.at4-drawer-shown.at4-drawer-left{right:auto;left:0}#at-drawer{top:0;z-index:9999999;height:100%;animation-duration:.4s}#at-drawer.drawer-push.at-right{right:-20pc}#at-drawer.drawer-push.at-left{left:-20pc}#at-drawer .at-recommended-label{padding:0 0 0 20px;color:#999;line-height:3pc;font-size:18px;font-weight:300;cursor:default}#at-drawer-arrow{width:30px;height:5pc}#at-drawer-arrow.ats-dark{background:#262b30}#at-drawer-arrow.ats-gray{background:#f2f2f2}#at-drawer-open-arrow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAABcCAYAAAC1OT8uAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3ODNCQjdERUQ3QjExRTM5NjFGRUZBODc3MTIwMTNCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjk3ODNCQjdFRUQ3QjExRTM5NjFGRUZBODc3MTIwMTNCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTc4M0JCN0JFRDdCMTFFMzk2MUZFRkE4NzcxMjAxM0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTc4M0JCN0NFRDdCMTFFMzk2MUZFRkE4NzcxMjAxM0IiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7kstzCAAAB4ElEQVR42uyWv0oDQRDGb9dYimgVjliID2Ca9AGfwtZob2Grja1PIFj7EhGCYK99VPBPOkVMp8X5rc6FeN7dfjOksMjAxwXZ3667OzvfLKRr682l5ZV9aDh+fxsnRHhoDzqGLjFBi4XOoFtoAxowoB893o/w7WpAl/+QgQMBwwRdTPhUC2lAV/wDA7qy5WOgq9psHejqTqkKdLE7KYCv0JZjMgBgB58raBG6mP1K6j2pT099T+qMUOeeOss1wDcEIA1PnQXy576rAUI0oFMoC7VCnn40Gs8Pd4lAiXNUKmJ0lh1mPzGEWiyUCqAGW3Pwv4IvUJsFO9CHgP3Zr6Te0xwgAf3LxaAjS241pbikCRkOg+nSJdV4p8HOPl3vvRYI5dtrgVDvvcWovcWovcWovcWovcWovcWovQChWNywNpqvdAKtQp/QNmPUIQ6kwwqt2Xmsxf6GMPM1Pptsbz45CPmXqKb+15Gz4J/LZcDSNIqBlQlbB0afe1mmUDWiCNKFZRq0VKMeXY1CTDq2sJLWsCmoaBBRqNRR6qBKC6qCaj2rDIqaXBGiXHEaom00h1S+K3fVlr6HNuqgvgCh0+owt21bybQn8+mZ78mcEebcM2e5+T2ZX24ZqCph0qn1vgQYAJ/KDpLQr2tPAAAAAElFTkSuQmCC);background-repeat:no-repeat;width:13px;height:23px;margin:28px 0 0 8px}.at-left #at-drawer-open-arrow{background-position:0 -46px}.ats-dark #at-drawer-open-arrow{background-position:0 -23px}.ats-dark.at-left #at-drawer-open-arrow{background-position:0 -69px}#at-drawer-arrow.at4-drawer-modern-browsers{position:fixed;top:40%;background-repeat:no-repeat;background-position:0 0!important;z-index:9999999}.at4-drawer-inline #at-drawer-arrow{position:absolute}#at-drawer-arrow.at4-drawer-modern-browsers.at-right{right:0}#at-drawer-arrow.at4-drawer-modern-browsers.at-left{left:0}.at4-drawer-push-animation-left{transition:left .4s ease-in-out .15s}.at4-drawer-push
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-follow.at-mobile{display:none!important}.at4-follow{position:fixed;top:0;right:0;font-weight:400;color:#666;cursor:default;z-index:10001}.at4-follow .at4-follow-inner{position:relative;padding:10px 24px 10px 15px}.at4-follow-inner,.at-follow-open-control{border:0 solid #c5c5c5;border-width:1px 0 1px 1px;margin-top:-1px}.at4-follow .at4-follow-container{margin-left:9pt}.at4-follow.at4-follow-24 .at4-follow-container{height:24px;line-height:23px;font-size:13px}.at4-follow.at4-follow-32 .at4-follow-container{width:15pc;height:2pc;line-height:2pc;font-size:14px}.at4-follow .at4-follow-container .at-follow-label{display:inline-block;height:24px;line-height:24px;margin-right:10px;padding:0;cursor:default;float:left}.at4-follow .at4-follow-container .at-icon-wrapper{height:24px;width:24px}.at4-follow.ats-transparent .at4-follow-inner,.at-follow-open-control.ats-transparent{border-color:transparent}.at4-follow.ats-dark .at4-follow-inner,.at-follow-open-control.ats-dark{background:#262b30;border-color:#000;color:#fff}.at4-follow.ats-dark .at-follow-close-control{background-color:#262b30}.at4-follow.ats-light .at4-follow-inner{background:#fff;border-color:#c5c5c5}.at4-follow.ats-gray .at4-follow-inner,.at-follow-open-control.ats-gray{background:#f2f2f2;border-color:#c5c5c5}.at4-follow.ats-light .at4-follow-close-control,.at-follow-open-control.ats-light{background:#e5e5e5}.at4-follow .at4-follow-inner .at4-follow-close-control{position:absolute;top:0;bottom:0;left:0;width:20px;cursor:pointer;display:none}.at4-follow .at4-follow-inner .at4-follow-close-control div{display:block;line-height:20px;text-indent:-9999em;margin-top:calc(50% + 1px);overflow:hidden}.at-follow-open-control div.at4-arrow.at-left{background-position:0 -2px}.at-follow-open-control{position:fixed;height:35px;top:0;right:0;padding-top:10px;z-index:10002}.at-follow-btn{margin:0 5px 5px 0;padding:0;outline-offset:-1px;display:inline-block;box-sizing:content-box;transition:all .2s ease-in-out}.at-follow-btn:focus,.at-follow-btn:hover{transform:translateY(-4px)}.at4-follow-24 .at-follow-btn{height:25px;line-height:0;width:25px}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-follow-tbx-element .at300b,.at-follow-tbx-element .at300m{display:inline-block;width:auto;padding:0;margin:0 2px 5px;outline-offset:-1px;transition:all .2s ease-in-out}.at-follow-tbx-element .at300b:focus,.at-follow-tbx-element .at300b:hover,.at-follow-tbx-element .at300m:focus,.at-follow-tbx-element .at300m:hover{transform:translateY(-4px)}.at-follow-tbx-element .addthis_vertical_style .at300b,.at-follow-tbx-element .addthis_vertical_style .at300m{display:block}.at-follow-tbx-element .addthis_vertical_style .at300b .addthis_follow_label,.at-follow-tbx-element .addthis_vertical_style .at300b .at-icon-wrapper,.at-follow-tbx-element .addthis_vertical_style .at300m .addthis_follow_label,.at-follow-tbx-element .addthis_vertical_style .at300m .at-icon-wrapper{display:inline-block;vertical-align:middle;margin-right:5px}.at-follow-tbx-element .addthis_vertical_style .at300b:focus,.at-follow-tbx-element .addthis_vertical_style .at300b:hover,.at-follow-tbx-element .addthis_vertical_style .at300m:focus,.at-follow-tbx-element .addthis_vertical_style .at300m:hover{transform:none}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-jumboshare .at-share-btn{display:inline-block;margin-right:13px;margin-top:13px}.at4-jumboshare .at-share-btn .at-icon{float:left}.at4-jumboshare .at-share-btn .at300bs{display:inline-block;float:left;cursor:pointer}.at4-jumboshare .at4-mobile .at-share-btn .at-icon,.at4-jumboshare .at4-mobile .at-share-btn .at-icon-wrapper{margin:0;padding:0}.at4-jumboshare .at4-mobile .at-share-btn{padding:0}.at4-jumboshare .at4-mobile .at-share-btn .at-label{display:none}.at4-jumboshare .at4-count{font-size:60px;line-height:60px;font-family:Helvetica neue,arial;font-weight:700}.at4-jumboshare .at4-count-container{display:table-cell;text-align:center;min-width:200px;vertical-align:middle;border-right:1px solid #ccc;padding-right:20px}.at4-jumboshare .at4-share-container{display:table-cell;vertical-align:middle;padding-left:20px}.at4-jumboshare .at4-share-container.at-share-tbx-element{padding-top:0}.at4-jumboshare .at4-title{position:relative;font-size:18px;line-height:18px;bottom:2px}.at4-jumboshare .at4-spacer{height:1px;display:block;visibility:hidden;opacity:0}.at4-jumboshare .at-share-btn{display:inline-block;margin:0 2px;line-height:0;padding:0;overflow:hidden;text-decoration:none;text-transform:none;color:#fff;cursor:pointer;transition:all .2s ease-in-out;border:0;background-color:transparent}.at4-jumboshare .at-share-btn:focus,.at4-jumboshare .at-share-btn:hover{transform:translateY(-4px);color:#fff;text-decoration:none}.at4-jumboshare .at-label{font-family:helvetica neue,helvetica,arial,sans-serif;font-size:9pt;padding:0 15px 0 0;margin:0;height:2pc;line-height:2pc;background:none}.at4-jumboshare .at-share-btn:hover,.at4-jumboshare .at-share-btn:link{text-decoration:none}.at4-jumboshare .at-share-btn::-moz-focus-inner{border:0;padding:0}.at4-jumboshare.at-mobile .at-label{display:none}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-recommendedbox-outer-container{display:inline}.at4-recommended-outer{position:static}.at4-recommended{top:20%;margin:0;text-align:center;font-weight:400;font-size:13px;line-height:17px;color:#666}.at4-recommended.at-inline .at4-recommended-horizontal{text-align:left}.at4-recommended-recommendedbox{padding:0;z-index:inherit}.at4-recommended-recommended{padding:40px 0}.at4-recommended-horizontal{max-height:340px}.at4-recommended.at-medium .at4-recommended-horizontal{max-height:15pc}.at4-recommended.at4-minimal.at-medium .at4-recommended-horizontal{padding-top:10px;max-height:230px}.at4-recommended-text-only .at4-recommended-horizontal{max-height:130px}.at4-recommended-horizontal{padding-top:5px;overflow-y:hidden}.at4-minimal{background:none;color:#000;border:none!important;box-shadow:none!important}@media screen and (max-width:900px){.at4-recommended-horizontal .at4-recommended-item,.at4-recommended-horizontal .at4-recommended-item .at4-recommended-item-img{width:15pc}}.at4-recommended.at4-minimal .at4-recommended-horizontal .at4-recommended-item .at4-recommended-item-caption{padding:0 0 10px}.at4-recommended.at4-minimal .at4-recommended-horizontal .at4-recommended-item-caption{padding:20px 0 0!important}.addthis-smartlayers .at4-recommended .at-h3.at-recommended-label{margin:0;padding:0;font-weight:300;font-size:18px;line-height:24px;color:#464646;width:100%;display:inline-block;zoom:1}.addthis-smartlayers .at4-recommended.at-inline .at-h3.at-recommended-label{text-align:left}#at4-thankyou .addthis-smartlayers .at4-recommended.at-inline .at-h3.at-recommended-label{text-align:center}.at4-recommended .at4-recommended-item{display:inline-block;zoom:1;position:relative;background:#fff;border:1px solid #c5c5c5;width:200px;margin:10px}.addthis_recommended_horizontal .at4-recommended-item{border:none}.at4-recommended .at4-recommended-item .sponsored-label{color:#666;font-size:9px;position:absolute;top:-20px}.at4-recommended .at4-recommended-item-img .at-tli,.at4-recommended .at4-recommended-item-img a{position:absolute;left:0}.at4-recommended.at-inline .at4-recommended-horizontal .at4-recommended-item{margin:10px 20px 0 0}.at4-recommended.at-medium .at4-recommended-horizontal .at4-recommended-item{margin:10px 10px 0 0}.at4-recommended.at-medium .at4-recommended-item{width:140px;overflow:hidden}.at4-recommended .at4-recommended-item .at4-recommended-item-img{position:relative;text-align:center;width:100%;height:200px;line-height:0;overflow:hidden}.at4-recommended .at4-recommended-item .at4-recommended-item-img a{display:block;width:100%;height:200px}.at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-img,.at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-img a{height:140px}.at4-recommended .at4-recommended-item .at4-recommended-item-img img{position:absolute;top:0;left:0;min-height:0;min-width:0;max-height:none;max-width:none;margin:0;padding:0}.at4-recommended .at4-recommended-item .at4-recommended-item-caption{height:74px;overflow:hidden;padding:20px;text-align:left;-ms-box-sizing:content-box;-o-box-sizing:content-box;box-sizing:content-box}.at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-caption{height:50px;padding:15px}.at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4{height:54px;margin:0 0 5px;padding:0;overflow:hidden;word-wrap:break-word;font-size:14px;font-weight:400;line-height:18px;text-align:left}.at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-caption .at-h4{font-size:9pt;line-height:1pc;height:33px}.at4-recommended .at4-recommended-item:hover .at4-recommended-item-caption .at-h4{text-decoration:underline}.at4-recommended a:link,.at4-recommended a:visited{text-decoration:none;color:#464646}.at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4 a:hover{text-decoration:underline;color:#000}.at4-recommended .at4-recommended-item .at4-recommended-item-caption small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:#666}.at4-recommended.at
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-recommendedjumbo-outer-container{margin:0;padding:0;border:0;background:none;color:#000}.at-recommendedjumbo-footer{position:relative;width:100%;height:510px;overflow:hidden;transition:all .3s ease-in-out}.at-mobile .at-recommendedjumbo-footer{height:250px}.at-recommendedjumbo-footer #bg-link:after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75)}.at-recommendedjumbo-footer:hover #bg-link:after{background:rgba(0,0,0,.85)}.at-recommendedjumbo-footer *,.at-recommendedjumbo-footer :after,.at-recommendedjumbo-footer :before{box-sizing:border-box}.at-recommendedjumbo-footer:hover #at-recommendedjumbo-footer-bg{animation:atRecommendedJumboAnimatedBackground 1s ease-in-out 1;animation-fill-mode:forwards}.at-recommendedjumbo-footer #at-recommendedjumbo-top-holder{position:absolute;top:0;padding:0 40px;width:100%}.at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-top-holder{padding:0 20px}.at-recommendedjumbo-footer .at-recommendedjumbo-footer-inner{position:relative;text-align:center;font-family:helvetica,arial,sans-serif;z-index:2;width:100%}.at-recommendedjumbo-footer #at-recommendedjumbo-label-holder{margin:40px 0 0;max-height:30px}.at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-label-holder{margin:20px 0 0;max-height:20px}.at-recommendedjumbo-footer #at-recommendedjumbo-label{font-weight:300;font-size:24px;line-height:24px;color:#fff;margin:0}.at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-label{font-weight:150;font-size:14px;line-height:14px}.at-recommendedjumbo-footer #at-recommendedjumbo-title-holder{margin:20px 0 0;min-height:3pc;max-height:78pt}.at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-title-holder{margin:10px 0 0;min-height:24px;max-height:54px}.at-recommendedjumbo-footer #at-recommendedjumbo-content-title{font-size:3pc;line-height:52px;font-weight:700;margin:0}.at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-content-title{font-size:24px;line-height:27px}.at-recommendedjumbo-footer a{text-decoration:none;color:#fff}.at-recommendedjumbo-footer a:visited{color:#fff}.at-recommendedjumbo-footer small{margin:20px 0 0;display:inline-block;height:2pc;line-height:2pc;font-size:14px;color:#ccc;cursor:default}.at-mobile .at-recommendedjumbo-footer small{margin:10px 0 0;height:14px;line-height:14px;font-size:9pt}.at-recommendedjumbo-footer .at-logo-container{position:absolute;bottom:20px;margin:auto;left:0;right:0}.at-mobile .at-recommendedjumbo-footer .at-logo-container{bottom:10px}.at-recommendedjumbo-footer a.at-sponsored-link{color:#ccc}.at-recommendedjumbo-footer div #at-recommendedjumbo-logo-link{padding:2px 0 0 11px;text-decoration:none;line-height:20px;font-family:helvetica,arial,sans-serif;font-size:9px;color:#ccc}@keyframes atRecommendedJumboAnimatedBackground{0%{transform:scale(1,1)}to{transform:scale(1.1,1.1)}}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-resp-share-element{position:relative;padding:0;margin:0;font-size:0;line-height:0}.at-resp-share-element:after,.at-resp-share-element:before{content:" ";display:table}.at-resp-share-element.at-mobile .at4-share-count-container,.at-resp-share-element.at-mobile .at-label{display:none}.at-resp-share-element .at-share-btn{display:inline-block;*display:inline;*zoom:1;margin:0 2px 5px;padding:0;overflow:hidden;line-height:0;text-decoration:none;text-transform:none;color:#fff;cursor:pointer;transition:all .2s ease-in-out;border:0;font-family:helvetica neue,helvetica,arial,sans-serif;background-color:transparent}.at-resp-share-element .at-share-btn::-moz-focus-inner{border:0;padding:0}.at-resp-share-element .at-share-btn:focus,.at-resp-share-element .at-share-btn:hover{transform:translateY(-4px);color:#fff;text-decoration:none}.at-resp-share-element .at-share-btn .at-icon-wrapper{float:left}.at-resp-share-element .at-share-btn.at-share-btn.at-svc-compact:hover{transform:none}.at-resp-share-element .at-share-btn .at-label{font-family:helvetica neue,helvetica,arial,sans-serif;font-size:9pt;padding:0 15px 0 0;margin:0 0 0 5px;height:2pc;line-height:2pc;background:none}.at-resp-share-element .at-icon,.at-resp-share-element .at-label{cursor:pointer}.at-resp-share-element .at4-share-count-container{text-decoration:none;float:right;padding-right:15px;font-size:9pt}.at-mobile .at-resp-share-element .at-label{display:none}.at-resp-share-element.at-mobile .at-share-btn{margin-right:5px}.at-mobile .at-resp-share-element .at-share-btn{padding:5px;margin-right:5px}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-share-tbx-element{position:relative;margin:0;color:#fff;font-size:0}.at-share-tbx-element,.at-share-tbx-element .at-share-btn{font-family:helvetica neue,helvetica,arial,sans-serif;padding:0;line-height:0}.at-share-tbx-element .at-share-btn{cursor:pointer;margin:0 5px 5px 0;display:inline-block;overflow:hidden;border:0;text-decoration:none;text-transform:none;background-color:transparent;color:inherit;transition:all .2s ease-in-out}.at-share-tbx-element .at-share-btn:focus,.at-share-tbx-element .at-share-btn:hover{transform:translateY(-4px);outline-offset:-1px;color:inherit}.at-share-tbx-element .at-share-btn::-moz-focus-inner{border:0;padding:0}.at-share-tbx-element .at-share-btn.at-share-btn.at-svc-compact:hover{transform:none}.at-share-tbx-element .at-icon-wrapper{vertical-align:middle}.at-share-tbx-element .at4-share-count,.at-share-tbx-element .at-label{margin:0 7.5px 0 2.5px;text-decoration:none;vertical-align:middle;display:inline-block;background:none;height:0;font-size:inherit;line-height:inherit;color:inherit}.at-share-tbx-element.at-mobile .at4-share-count,.at-share-tbx-element.at-mobile .at-label{display:none}.at-share-tbx-element .at_native_button{vertical-align:middle}.at-share-tbx-element .addthis_counter.addthis_bubble_style{margin:0 2px;vertical-align:middle;display:inline-block}.at-share-tbx-element .fb_iframe_widget{display:block}.at-share-tbx-element.at-share-tbx-native .at300b{vertical-align:middle}.at-style-responsive .at-share-btn{padding:5px}.at-style-jumbo{display:table}.at-style-jumbo .at4-spacer{height:1px;display:block;visibility:hidden;opacity:0}.at-style-jumbo .at4-count-container{display:table-cell;text-align:center;min-width:200px;vertical-align:middle;border-right:1px solid #ccc;padding-right:20px}.at-style-jumbo .at4-count{font-size:60px;line-height:60px;font-weight:700}.at-style-jumbo .at4-count-title{position:relative;font-size:18px;line-height:18px;bottom:2px}.at-style-jumbo .at-share-btn-elements{display:table-cell;vertical-align:middle;padding-left:20px}.at_flat_counter{cursor:pointer;font-family:helvetica,arial,sans-serif;font-weight:700;text-transform:uppercase;display:inline-block;position:relative;vertical-align:top;height:auto;margin:0 5px;padding:0 6px;left:-1px;background:#ebebeb;color:#32363b;transition:all .2s ease}.at_flat_counter:after{top:30%;left:-4px;content:"";position:absolute;border-width:5px 8px 5px 0;border-style:solid;border-color:transparent #ebebeb transparent transparent;display:block;width:0;height:0;transform:translateY(360deg)}.at_flat_counter:hover{background:#e1e2e2}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-thankyou-background{top:0;right:0;left:0;bottom:0;-webkit-overflow-scrolling:touch;z-index:9999999;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpizCuu/sRABGBiIBKMKqSOQoAAAwC8KgJipENhxwAAAABJRU5ErkJggg==);background:hsla(217,6%,46%,.95)}.at4-thankyou-background.at-thankyou-shown{position:fixed}.at4-thankyou-inner{position:absolute;width:100%;top:10%;left:50%;margin-left:-50%;text-align:center}.at4-thankyou-mobile .at4-thankyou-inner{top:5%}.thankyou-description{font-weight:400}.at4-thankyou-background .at4lb-inner{position:relative;width:100%;height:100%}.at4-thankyou-background .at4lb-inner .at4x{position:absolute;top:15px;right:15px;display:block;width:20px;height:20px;padding:20px;margin:0;cursor:pointer;transition:opacity .25s ease-in;opacity:.4;background:url("data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMTEvMTMvMTKswDp5AAAAd0lEQVQ4jb2VQRLAIAgDE///Z3qqY1FAhalHMCsCIkVEAIAkkVgvp2lDBgYAnAyHkWotLccNrEd4A7X2TqIdqLfnWBAdaF5rJdyJfjtPH5GT37CaGhoVq3nOm/XflUuLUto2pY1d+vRKh0Pp+MrAVtDe2JkvYNQ+jVSEEFmOkggAAAAASUVORK5CYII=") no-repeat center center;overflow:hidden;text-indent:-99999em;border:1px solid transparent}.at4-thankyou-background .at4lb-inner .at4x:focus,.at4-thankyou-background .at4lb-inner .at4x:hover{border:1px solid #fff;border-radius:50%;outline:0}.at4-thankyou-background .at4lb-inner #at4-palogo{position:absolute;bottom:10px;display:inline-block;text-decoration:none;font-family:helvetica,arial,sans-serif;font-size:11px;cursor:pointer;-webkit-transition:opacity .25s ease-in;moz-transition:opacity .25s ease-in;transition:opacity .25s ease-in;opacity:.5;z-index:100020;color:#fff;padding:2px 0 0 13px}.at4-thankyou-background .at4lb-inner #at4-palogo .at-branding-addthis,.at4-thankyou-background .at4lb-inner #at4-palogo .at-branding-info{color:#fff}.at4-thankyou-background .at4lb-inner #at4-palogo:hover,.at4-thankyou-background.ats-dark .at4lb-inner a#at4-palogo:hover{text-decoration:none;color:#fff;opacity:1}.at4-thankyou-background.ats-dark{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgeMZABGBiIBKMKqSOQoAAAwB+cQD6hqlbCwAAAABJRU5ErkJggg==");background:rgba(0,0,0,.85)}.at4-thankyou-background .thankyou-title{color:#fff;font-size:38.5px;margin:10px 20px;line-height:38.5px;font-family:helvetica neue,helvetica,arial,sans-serif;font-weight:300}.at4-thankyou-background.ats-dark .thankyou-description,.at4-thankyou-background.ats-dark .thankyou-title{color:#fff}.at4-thankyou-background .thankyou-description{color:#fff;font-size:18px;margin:10px 0;line-height:24px;padding:0;font-family:helvetica neue,helvetica,arial,sans-serif;font-weight:300}.at4-thankyou-background .at4-thanks-icons{padding-top:10px}.at4-thankyou-mobile *{-webkit-overflow-scrolling:touch}#at4-thankyou .at4-recommended-recommendedbox .at-logo{display:none}.at4-thankyou .at-h3{height:49px;line-height:49px;margin:0 50px 0 20px;padding:1px 0 0;font-family:helvetica neue,helvetica,arial,sans-serif;font-size:1pc;font-weight:700;color:#fff;text-shadow:0 1px #000}.at4-thanks{padding-top:50px;text-align:center}.at4-thanks label{display:block;margin:0 0 15px;font-size:1pc;line-height:1pc}.at4-thanks .at4-h2{background:none;border:none;margin:0 0 10px;padding:0;font-family:helvetica neue,helvetica,arial,sans-serif;font-size:28px;font-weight:300;color:#000}.at4-thanks .at4-thanks-icons{position:relative;height:2pc}.at4-thanks .at4-thanks-icons .at-thankyou-label{display:block;padding-bottom:10px;font-size:14px;color:#666}.at4-thankyou-layer .at-follow .at-icon-wrapper{width:2pc;height:2pc}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-recommended-toaster{position:fixed;top:auto;bottom:0;right:0;z-index:100021}.at4-recommended-toaster.ats-light{border:1px solid #c5c5c5;background:#fff}.at4-recommended-toaster.ats-gray{border:1px solid #c5c5c5;background:#f2f2f2}.at4-recommended-toaster.ats-dark{background:#262b30;color:#fff}.at4-recommended-toaster .at4-recommended-container{padding-top:0;margin:0}.at4-recommended.at4-recommended-toaster div.at-recommended-label{line-height:1pc;font-size:1pc;text-align:left;padding:20px 0 0 20px}.at4-toaster-outer .at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4{font-size:11px;line-height:11px;margin:10px 0 6px;height:30px}.at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-gray,.at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-light{color:#464646}.at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-dark{color:#fff}.at4-toaster-close-control{position:absolute;top:0;right:0;display:block;width:20px;height:20px;line-height:20px;margin:5px 5px 0 0;padding:0;text-indent:-9999em}.at4-toaster-open-control{position:fixed;right:0;bottom:0;z-index:100020}.at4-toaster-outer .at4-recommended-item{width:90pt;border:0;margin:9px 10px 0}.at4-toaster-outer .at4-recommended-item:first-child{margin-left:20px}.at4-toaster-outer .at4-recommended-item:last-child{margin-right:20px}.at4-toaster-outer .at4-recommended-item .at4-recommended-item-img{max-height:90pt;max-width:90pt}.at4-toaster-outer .at4-recommended-item .at4-recommended-item-img img{height:90pt;width:90pt}.at4-toaster-outer .at4-recommended-item .at4-recommended-item-caption{height:30px;padding:0;margin:0;height:initial}.at4-toaster-outer .ats-dark .at4-recommended-item .at4-recommended-item-caption{background:#262b30}.at4-toaster-outer .at4-recommended .at4-recommended-item .at4-recommended-item-caption small{width:auto;line-height:14px;margin:0}.at4-toaster-outer .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption small{color:#fff}.at4-recommended-toaster .at-logo{margin:0 0 3px 20px;text-align:left}.at4-recommended-toaster .at-logo .at4-logo-container.at-sponsored-logo{position:relative}.at4-toaster-outer .at4-recommended-item .sponsored-label{text-align:right;font-size:10px;color:#666;float:right;position:fixed;bottom:6px;right:20px;top:initial;z-index:99999}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-whatsnext{position:fixed;bottom:0!important;right:0;background:#fff;border:1px solid #c5c5c5;margin:-1px;width:390px;height:90pt;overflow:hidden;font-size:9pt;font-weight:400;color:#000;z-index:1800000000}.at4-whatsnext a{color:#666}.at4-whatsnext .at-whatsnext-content{height:90pt;position:relative}.at4-whatsnext .at-whatsnext-content .at-branding{position:absolute;bottom:15px;right:10px;padding-left:9px;text-decoration:none;line-height:10px;font-family:helvetica,arial,sans-serif;font-size:10px;color:#666}.at4-whatsnext .at-whatsnext-content .at-whatsnext-content-inner{position:absolute;top:15px;right:20px;bottom:15px;left:140px;text-align:left;height:105px}.at4-whatsnext .at-whatsnext-content-inner a{display:inline-block}.at4-whatsnext .at-whatsnext-content-inner div.at-h6{text-align:left;margin:0;padding:0 0 3px;font-size:11px;color:#666;cursor:default}.at4-whatsnext .at-whatsnext-content .at-h3{text-align:left;margin:5px 0;padding:0;line-height:1.2em;font-weight:400;font-size:14px;height:3pc}.at4-whatsnext .at-whatsnext-content-inner a:link,.at4-whatsnext .at-whatsnext-content-inner a:visited{text-decoration:none;font-weight:400;color:#464646}.at4-whatsnext .at-whatsnext-content-inner a:hover{color:#000}.at4-whatsnext .at-whatsnext-content-inner small{position:absolute;bottom:15px;line-height:10px;font-size:11px;color:#666;cursor:default;text-align:left}.at4-whatsnext .at-whatsnext-content .at-whatsnext-content-img{position:absolute;top:0;left:0;width:90pt;height:90pt;overflow:hidden}.at4-whatsnext .at-whatsnext-content .at-whatsnext-content-img img{position:absolute;top:0;left:0;max-height:none;max-width:none}.at4-whatsnext .at-whatsnext-close-control{position:absolute;top:0;right:0;display:block;width:20px;height:20px;line-height:20px;margin:0 5px 0 0;padding:0;text-indent:-9999em}.at-whatsnext-open-control{position:fixed;right:0;bottom:0;z-index:100020}.at4-whatsnext.ats-dark{background:#262b30}.at4-whatsnext.ats-dark .at-whatsnext-content .at-h3,.at4-whatsnext.ats-dark .at-whatsnext-content a.at4-logo:hover,.at4-whatsnext.ats-dark .at-whatsnext-content-inner a:link,.at4-whatsnext.ats-dark .at-whatsnext-content-inner a:visited{color:#fff}.at4-whatsnext.ats-light{background:#fff}.at4-whatsnext.ats-gray{background:#f2f2f2}.at4-whatsnext.at-whatsnext-nophoto{width:270px}.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content-img{display:none}.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner{top:15px;right:0;left:20px}.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner.addthis_32x32_style{top:0;right:0;left:0;padding:45px 20px 0;font-size:20px}.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .at4-icon,.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .at4-icon-fw,.at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .whatsnext-msg{vertical-align:middle}.at-whatsnext-img,.at-whatsnext-img-lnk{position:absolute;left:0}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at4-whatsnextmobile{position:fixed;bottom:0;right:0;left:0;background:#fff;z-index:9999998;height:170px;font-size:28px}.at4-whatsnextmobile .col-2{height:100%;font-size:1em}.at4-whatsnextmobile .col-2:first-child{max-width:200px;display:inline-block;float:left}.at4-whatsnextmobile .col-2:last-child{position:absolute;left:200px;right:50px;top:0;bottom:0;display:inline-block}.at4-whatsnextmobile .at-whatsnext-content-inner{font-size:1em}.at4-whatsnextmobile .at-whatsnext-content-img img{height:100%;width:100%}.at4-whatsnextmobile .at-close-control{font-size:1em;position:absolute;top:0;right:0;width:50px;height:50px}.at4-whatsnextmobile .at-close-control button{width:100%;height:100%;font-size:1em;font-weight:400;text-decoration:none;opacity:.5;padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.at4-whatsnextmobile .at-h3,.at4-whatsnextmobile .at-h6{font-size:1em;margin:0;color:#a1a1a1;margin-left:2.5%;margin-top:25px}.at4-whatsnextmobile .at-h3{font-size:1em;line-height:1em;font-weight:500;height:50%}.at4-whatsnextmobile .at-h3 a{font-size:1em;text-decoration:none}.at4-whatsnextmobile .at-h6{font-size:.8em;line-height:.8em;font-weight:500}.at4-whatsnextmobile .footer{position:absolute;bottom:2px;left:200px;right:0;padding-left:2.5%;font-size:1em;line-height:.6em}.at4-whatsnextmobile .footer small{font-size:.6em;color:#a1a1a1}.at4-whatsnextmobile .footer small:first-child{margin-right:5%;float:left}.at4-whatsnextmobile .footer small:last-child{margin-right:2.5%;float:right}.at4-whatsnextmobile .at-whatsnext-content{height:100%}.at4-whatsnextmobile.ats-dark{background:#262b30;color:#fff}.at4-whatsnextmobile .at-close-control button{color:#bfbfbf}.at4-whatsnextmobile.ats-dark a:link,.at4-whatsnextmobile.ats-dark a:visited{color:#fff}.at4-whatsnextmobile.ats-gray{background:#f2f2f2;color:#262b30}.at4-whatsnextmobile.ats-light{background:#fff;color:#262b30}.at4-whatsnextmobile.ats-dark .footer a:link,.at4-whatsnextmobile.ats-dark .footer a:visited,.at4-whatsnextmobile.ats-gray .footer a:link,.at4-whatsnextmobile.ats-gray .footer a:visited,.at4-whatsnextmobile.ats-light .footer a:link,.at4-whatsnextmobile.ats-light .footer a:visited{color:#a1a1a1}.at4-whatsnextmobile.ats-gray a:link,.at4-whatsnextmobile.ats-gray a:visited,.at4-whatsnextmobile.ats-light a:link,.at4-whatsnextmobile.ats-light a:visited{color:#262b30}@media only screen and (min-device-width:320px) and (max-device-width:480px){.at4-whatsnextmobile{height:85px;font-size:14px}.at4-whatsnextmobile .col-2:first-child{width:75pt}.at4-whatsnextmobile .col-2:last-child{right:25px;left:75pt}.at4-whatsnextmobile .footer{left:75pt}.at4-whatsnextmobile .at-close-control{width:25px;height:25px}.at4-whatsnextmobile .at-h3,.at4-whatsnextmobile .at-h6{margin-top:12.5px}}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-custom-mobile-bar{left:0;right:0;width:100%;height:56px;position:fixed;text-align:center;z-index:100020;background:#fff;overflow:hidden;box-shadow:0 0 10px 0 rgba(0,0,0,.2);font:initial;line-height:normal;top:auto;bottom:0}.at-custom-mobile-bar.at-custom-mobile-bar-zindex-hide{z-index:-1!important}.at-custom-mobile-bar.atss-top{top:0;bottom:auto}.at-custom-mobile-bar.atss-bottom{top:auto;bottom:0}.at-custom-mobile-bar .at-custom-mobile-bar-btns{display:inline-block;text-align:center}.at-custom-mobile-bar .at-custom-mobile-bar-counter,.at-custom-mobile-bar .at-share-btn{margin-top:4px}.at-custom-mobile-bar .at-share-btn{display:inline-block;text-decoration:none;transition:none;box-sizing:content-box}.at-custom-mobile-bar .at-custom-mobile-bar-counter{font-family:Helvetica neue,arial;vertical-align:top;margin-left:4px;margin-right:4px;display:inline-block}.at-custom-mobile-bar .at-custom-mobile-bar-count{font-size:26px;line-height:1.25em;color:#222}.at-custom-mobile-bar .at-custom-mobile-bar-text{font-size:9pt;line-height:1.25em;color:#888;letter-spacing:1px}.at-custom-mobile-bar .at-icon-wrapper{text-align:center;height:3pc;width:3pc;margin:0 4px}.at-custom-mobile-bar .at-icon{vertical-align:top;margin:8px;width:2pc;height:2pc}.at-custom-mobile-bar.at-shfs-medium{height:3pc}.at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-counter{margin-top:6px}.at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-count{font-size:18px}.at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-text{font-size:10px}.at-custom-mobile-bar.at-shfs-medium .at-icon-wrapper{height:40px;width:40px}.at-custom-mobile-bar.at-shfs-medium .at-icon{margin:6px;width:28px;height:28px}.at-custom-mobile-bar.at-shfs-small{height:40px}.at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-counter{margin-top:3px}.at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-count{font-size:1pc}.at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-text{font-size:10px}.at-custom-mobile-bar.at-shfs-small .at-icon-wrapper{height:2pc;width:2pc}.at-custom-mobile-bar.at-shfs-small .at-icon{margin:4px;width:24px;height:24px}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-custom-sidebar{top:20%;width:58px;position:fixed;text-align:center;z-index:100020;background:#fff;overflow:hidden;box-shadow:0 0 10px 0 rgba(0,0,0,.2);font:initial;line-height:normal;top:auto;bottom:0}.at-custom-sidebar.at-custom-sidebar-zindex-hide{z-index:-1!important}.at-custom-sidebar.atss-left{left:0;right:auto;float:left;border-radius:0 4px 4px 0}.at-custom-sidebar.atss-right{left:auto;right:0;float:right;border-radius:4px 0 0 4px}.at-custom-sidebar .at-custom-sidebar-btns{display:inline-block;text-align:center;padding-top:4px}.at-custom-sidebar .at-custom-sidebar-counter{margin-bottom:8px}.at-custom-sidebar .at-share-btn{display:inline-block;text-decoration:none;transition:none;box-sizing:content-box}.at-custom-sidebar .at-custom-sidebar-counter{font-family:Helvetica neue,arial;vertical-align:top;margin-left:4px;margin-right:4px;display:inline-block}.at-custom-sidebar .at-custom-sidebar-count{font-size:21px;line-height:1.25em;color:#222}.at-custom-sidebar .at-custom-sidebar-text{font-size:10px;line-height:1.25em;color:#888;letter-spacing:1px}.at-custom-sidebar .at-icon-wrapper{text-align:center;margin:0 4px}.at-custom-sidebar .at-icon{vertical-align:top;margin:9px;width:2pc;height:2pc}.at-custom-sidebar .at-icon-wrapper{position:relative}.at-custom-sidebar .at4-share-count,.at-custom-sidebar .at4-share-count-container{line-height:1pc;font-size:10px}.at-custom-sidebar .at4-share-count{text-indent:0;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:200;width:100%;height:1pc}.at-custom-sidebar .at4-share-count-anchor .at-icon{margin-top:3px}.at-custom-sidebar .at4-share-count-container{position:absolute;left:0;right:auto;top:auto;bottom:0;width:100%;color:#fff;background:inherit}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-image-sharing-mobile-icon{position:absolute;background:#000 url(https://s7.addthis.com/static/44a36d35bafef33aa9455b7d3039a771.png) no-repeat top center;background-color:rgba(0,0,0,.9);background-image:url(https://s7.addthis.com/static/10db525181ee0bbe1a515001be1c7818.svg),none;border-radius:3px;width:50px;height:40px;top:-9999px;left:-9999px}.at-image-sharing-tool{display:block;position:absolute;text-align:center;z-index:9001;background:none;overflow:hidden;top:-9999px;left:-9999px;font:initial;line-height:0}.at-image-sharing-tool.addthis-animated{animation-duration:.15s}.at-image-sharing-tool.at-orientation-vertical .at-share-btn{display:block}.at-image-sharing-tool.at-orientation-horizontal .at-share-btn{display:inline-block}.at-image-sharing-tool.at-image-sharing-tool-size-big .at-icon{width:43px;height:43px}.at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-share-btn{margin:0!important}.at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-icon-wrapper{height:60px;width:100%;border-radius:0!important}.at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-icon{max-width:100%;height:54px!important;width:54px!important}.at-image-sharing-tool .at-custom-shape.at-image-sharing-tool-btns{margin-right:8px;margin-bottom:8px}.at-image-sharing-tool .at-custom-shape .at-share-btn{margin-top:8px;margin-left:8px}.at-image-sharing-tool .at-share-btn{line-height:0;text-decoration:none;transition:none;box-sizing:content-box}.at-image-sharing-tool .at-icon-wrapper{text-align:center;height:100%;width:100%}.at-image-sharing-tool .at-icon{vertical-align:top;width:2pc;height:2pc;margin:3px}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-expanding-share-button{box-sizing:border-box;position:fixed;z-index:9999}.at-expanding-share-button[data-position=bottom-right]{bottom:10px;right:10px}.at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-bg,.at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-btn[data-name]:after,.at-expanding-share-button[data-position=bottom-right] .at-icon-wrapper,.at-expanding-share-button[data-position=bottom-right] [data-name]:after{float:right}.at-expanding-share-button[data-position=bottom-right] [data-name]:after{margin-right:10px}.at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-btn[data-name]:after{margin-right:5px}.at-expanding-share-button[data-position=bottom-right] .at-icon-wrapper{margin-right:-3px}.at-expanding-share-button[data-position=bottom-left]{bottom:10px;left:10px}.at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-bg,.at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-btn[data-name]:after,.at-expanding-share-button[data-position=bottom-left] .at-icon-wrapper,.at-expanding-share-button[data-position=bottom-left] [data-name]:after{float:left}.at-expanding-share-button[data-position=bottom-left] [data-name]:after{margin-left:10px}.at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-btn[data-name]:after{margin-left:5px}.at-expanding-share-button *,.at-expanding-share-button :after,.at-expanding-share-button :before{box-sizing:border-box}.at-expanding-share-button .at-expanding-share-button-services-list{display:none;list-style:none;margin:0 5px;overflow:visible;padding:0}.at-expanding-share-button .at-expanding-share-button-services-list>li{display:block;height:45px;position:relative;overflow:visible}.at-expanding-share-button .at-expanding-share-button-toggle-btn,.at-expanding-share-button .at-share-btn{transition:.1s;text-decoration:none}.at-expanding-share-button .at-share-btn{display:block;height:40px;padding:0 3px 0 0}.at-expanding-share-button .at-expanding-share-button-toggle-btn{position:relative;overflow:auto}.at-expanding-share-button .at-expanding-share-button-toggle-btn.at-expanding-share-button-hidden[data-name]:after{display:none}.at-expanding-share-button .at-expanding-share-button-toggle-bg{box-shadow:0 2px 4px 0 rgba(0,0,0,.3);border-radius:50%;position:relative}.at-expanding-share-button .at-expanding-share-button-toggle-bg>span{background-image:url("data:image/svg+xml,%3Csvg%20width%3D%2232px%22%20height%3D%2232px%22%20viewBox%3D%220%200%2032%2032%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eshare%3C%2Ftitle%3E%3Cg%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20fill%3D%22%23FFFFFF%22%3E%3Cpath%20d%3D%22M26%2C13.4285714%20C26%2C13.6220248%2025.9293162%2C13.7894338%2025.7879464%2C13.9308036%20L20.0736607%2C19.6450893%20C19.932291%2C19.786459%2019.7648819%2C19.8571429%2019.5714286%2C19.8571429%20C19.3779752%2C19.8571429%2019.2105662%2C19.786459%2019.0691964%2C19.6450893%20C18.9278267%2C19.5037195%2018.8571429%2C19.3363105%2018.8571429%2C19.1428571%20L18.8571429%2C16.2857143%20L16.3571429%2C16.2857143%20C15.6279725%2C16.2857143%2014.9750773%2C16.3080355%2014.3984375%2C16.3526786%20C13.8217977%2C16.3973217%2013.2488868%2C16.477306%2012.6796875%2C16.5926339%20C12.1104882%2C16.7079619%2011.6157015%2C16.8660704%2011.1953125%2C17.0669643%20C10.7749235%2C17.2678581%2010.3824423%2C17.5264121%2010.0178571%2C17.8426339%20C9.65327199%2C18.1588557%209.35565592%2C18.534596%209.125%2C18.9698661%20C8.89434408%2C19.4051361%208.71391434%2C19.9203839%208.58370536%2C20.515625%20C8.45349637%2C21.1108661%208.38839286%2C21.7842224%208.38839286%2C22.5357143%20C8.38839286%2C22.9449425%208.40699386%2C23.4025272%208.44419643%2C23.9084821%20C8.44419643%2C23.9531252%208.45349693%2C24.0405499%208.47209821%2C24.1707589%20C8.4906995%2C24.3009679%208.5%2C24.3995532%208.5%2C24.4665179%20C8.5%2C24.5781256%
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
.at-tjin-element .at300b,.at-tjin-element .at300m{display:inline-block;width:auto;padding:0;margin:0 2px 5px;outline-offset:-1px;transition:all .2s ease-in-out}.at-tjin-element .at300b:focus,.at-tjin-element .at300b:hover,.at-tjin-element .at300m:focus,.at-tjin-element .at300m:hover{transform:translateY(-4px)}.at-tjin-element .addthis_tjin_label{display:none}.at-tjin-element .addthis_vertical_style .at300b,.at-tjin-element .addthis_vertical_style .at300m{display:block}.at-tjin-element .addthis_vertical_style .at300b .addthis_tjin_label,.at-tjin-element .addthis_vertical_style .at300b .at-icon-wrapper,.at-tjin-element .addthis_vertical_style .at300m .addthis_tjin_label,.at-tjin-element .addthis_vertical_style .at300m .at-icon-wrapper{display:inline-block;vertical-align:middle;margin-right:5px}.at-tjin-element .addthis_vertical_style .at300b:focus,.at-tjin-element .addthis_vertical_style .at300b:hover,.at-tjin-element .addthis_vertical_style .at300m:focus,.at-tjin-element .addthis_vertical_style .at300m:hover{transform:none}.at-tjin-element .at-tjin-btn{margin:0 5px 5px 0;padding:0;outline-offset:-1px;display:inline-block;box-sizing:content-box;transition:all .2s ease-in-out}.at-tjin-element .at-tjin-btn:focus,.at-tjin-element .at-tjin-btn:hover{transform:translateY(-4px)}.at-tjin-element .at-tjin-title{margin:0 0 15px}
/*]]>*/
</style>
<style type="text/css">
/*<![CDATA[*/
#addthissmartlayerscssready{color:#bada55!important}.addthis-smartlayers,div#at4-follow,div#at4-share,div#at4-thankyou,div#at4-whatsnext{padding:0;margin:0}#at4-follow-label,#at4-share-label,#at4-whatsnext-label,.at4-recommended-label.hidden{padding:0;border:none;background:none;position:absolute;top:0;left:0;height:0;width:0;overflow:hidden;text-indent:-9999em}.addthis-smartlayers .at4-arrow:hover{cursor:pointer}.addthis-smartlayers .at4-arrow:after,.addthis-smartlayers .at4-arrow:before{content:none}a.at4-logo{background:url(data:image/gif;base64,R0lGODlhBwAHAJEAAP9uQf///wAAAAAAACH5BAkKAAIALAAAAAAHAAcAAAILFH6Ge8EBH2MKiQIAOw==) no-repeat left center}.at4-minimal a.at4-logo{background:url(data:image/gif;base64,R0lGODlhBwAHAJEAAP9uQf///wAAAAAAACH5BAkKAAIALAAAAAAHAAcAAAILFH6Ge8EBH2MKiQIAOw==) no-repeat left center!important}button.at4-closebutton{position:absolute;top:0;right:0;padding:0;margin-right:10px;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;font-size:19px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}button.at4-closebutton:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}div.at4-arrow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAoCAYAAABpYH0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAV1JREFUeNrsmesOgyAMhQfxwfrofTM3E10ME2i5Oeppwr9a5OMUCrh1XV+wcvNAAIAA+BiAzrmtUWln27dbjEcC3AdODfo0BdEPhmcO4nIDvDNELi2jggk4/k8dT7skfeKzWIEd4VUpMQKvNB7X+OZSmAZkATWC1xvipbpnLmOosbJZC08CkAeA4E6qFUEMwLAGnlSBPCE8lW8CYnZTcimH2HoT7kSFOx5HBmCnDhTIu1p5s98G+QZrxGPhZVMY1vgyAQaAAAiAAAgDQACcBOD+BvJtBWfRy7NpJK5tBe4FNzXokywV734wPHMQlxvgnSGyNoUP/2ACjv/7iSeYKO3YWKzAjvCqlBiBVxqPa3ynexNJwOsN8TJbzL6JNIYYXWpMv4lIIAZgWANPqkCeEJ7KNwExu8lpLlSpAVQarO77TyKdBsyRPuwV0h0gmoGnTWFYzVkYBoAA+I/2FmAAt6+b5XM9mFkAAAAASUVORK5CYII=);background-repeat:no-repeat;width:20px;height:20px;margin:0;padding:0;overflow:hidden;text-indent:-9999em;text-align:left;cursor:pointer}#at4-recommendedpanel-outer-container .at4-arrow.at-right,div.at4-arrow.at-right{background-position:-20px 0}#at4-recommendedpanel-outer-container .at4-arrow.at-left,div.at4-arrow.at-left{background-position:0 0}div.at4-arrow.at-down{background-position:-60px 0}div.at4-arrow.at-up{background-position:-40px 0}.ats-dark div.at4-arrow.at-right{background-position:-20px -20px}.ats-dark div.at4-arrow.at-left{background-position:0 -20px}.ats-dark div.at4-arrow.at-down{background-position:-60px -20px}.ats-dark div.at4-arrow.at-up{background-position:-40px -20}.at4-opacity-hidden{opacity:0!important}.at4-opacity-visible{opacity:1!important}.at4-visually-hidden{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;overflow:hidden}.at4-hidden-off-screen,.at4-hidden-off-screen *{position:absolute!important;top:-9999px!important;left:-9999px!important}.at4-show{display:block!important;opacity:1!important}.at4-show-content{opacity:1!important;visibility:visible}.at4-hide{display:none!important;opacity:0!important}.at4-hide-content{opacity:0!important;visibility:hidden}.at4-visible{display:block!important;opacity:0!important}.at-wordpress-hide{display:none!important;opacity:0!important}.addthis-animated{animation-fill-mode:both;animation-timing-function:ease-out;animation-duration:.3s}.slideInDown.addthis-animated,.slideInLeft.addthis-animated,.slideInRight.addthis-animated,.slideInUp.addthis-animated,.slideOutDown.addthis-animated,.slideOutLeft.addthis-animated,.slideOutRight.addthis-animated,.slideOutUp.addthis-animated{animation-duration:.4s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fadeInUp{animation-name:fadeInUp}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.fadeInDown{animation-name:fadeInDown}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX
/*]]>*/
</style>
<script type="text/javascript" charset="utf-8" async="async" src="https://s7.addthis.com/static/149.aff945d1dc324cdbb007.js"></script>
<style>
<![CDATA[
/* Bourgeois Fonts */
<!--[if IE]>
@font-face {
font-family: 'Bourgeois Bold';
src: url('/fonts/bourgeois/BourgBol.eot');
}
@font-face {
font-family: 'Bourgeois';
src: url('/fonts/bourgeois/BourgMed.eot');
}
<![endif]-->
<!--[if !IE]>
@font-face {
font-family: 'Bourgeois Bold';
src: url('/fonts/bourgeois/BourgBol.eot');
src: url('/fonts/bourgeois/BourgBol.otf');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Bourgeois';
src: url('/fonts/bourgeois/BourgMed.eot');
src: url('/fonts/bourgeois/BourgMed.otf');
font-weight: normal;
font-style: normal;
}
<![endif]-->
]]>
</style>
<style>
<![CDATA[
.showcss{ display:block;}
.hidecss{ display:none;}
]]>
</style>
<style>
<![CDATA[
#simplemodal-container a.modalCloseImg {
width: 15px;
height: 17px;
display: inline;
z-index: 3200;
position: absolute;
top: 7px;
right: 10px;
cursor: pointer;
padding: 6px 7px;
border-radius: 50%;
background: transparent;
color: #483e8c;
font-size: 23px;
text-indent: 3px;
opacity: .8;
font-weight: bold;
}
#simplemodal-container a.modalCloseImg:after{content:"x"}
#simplemodal-container a{color: #edc106;}
#subscriptionModal .subscribe_now_border {
border-top: solid 1px transparent;
background-color: transparent;
height: 8px;
}
#subscriptionModal .subscribe_now {
text-decoration: none;
text-align: center;
border: solid 2px #483e8c;
border-radius: 31px;
background-color: #ffffff;
color: #483e8c;
padding: 10px 20px 10px;
display: block;
overflow: hidden;
z-index: 1024;
}
]]>
</style>
<style id="service-icons-0"></style>
</head>
<body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TMS8FLQ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <a id="button1" class="show"></a> <!-- <div id='div-gpt-ad-skin'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-skin'); });
</script>
</div> -->
<div id="iribbon-container">
<img src="https://twimgs.com/nojitter/gama/iribbon-logo.gif" />
<div id="iribbon-detail" class="ribbon-hide" style="display: none;">
<div id="iribbon-left">
<p>
GDC Vault is part of the Informa Tech Division of Informa PLC
</p>
<ul>
<li class="iribbon-mainlink">
<a href="http://informa.com/" tabindex="-1" class="iribbon-opacity-out">Informa PLC</a>
</li>
<li>
<a href="http://informa.com/About-Us/" tabindex="-1" class="iribbon-opacity-out">About us</a>
</li>
<li>
<a href="http://informa.com/Investors/" tabindex="-1" class="iribbon-opacity-out">Investor relations</a>
</li>
<li>
<a href="http://informa.com/Talent/" tabindex="-1" class="iribbon-opacity-out">Talent</a>
</li>
</ul>
</div>
<div id="iribbon-right">
<p>
This is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.
</p>
</div>
</div>
</div>
<div id="bumpedWrapper">
<div id="bumpedOverlay"></div>
<div id="bumped">
You've been logged out of GDC Vault since the maximum users allowed for this account has been reached. To access Members Only content on GDC Vault, please log out of GDC Vault from the computer which last accessed this account.<br />
<br />
Click <strong><a href="/demo">here</a></strong> to find out about GDC Vault Membership options for more users.<br />
<br />
<a id="bumpClose">close</a>
</div>
</div>
<header>
<div class="wrapper">
<!--<ul id="gdc">
<li><a href="http://www.gdconf.com" target="_blank" class="topnav_gdc" alt="GDC"></a></li>
<li><a href="http://www.gdceurope.com" target="_blank" class="topnav_europe" alt="GDC Europe"></a></li>
<li><a href="https://www.gdcvault.com" target="_blank" class="topnav_vault" alt="GDC Vault"></a></li>
<li><a href="http://www.vrdconf.com" target="_blank" class="topnav_vrdc" alt="VRDC"></a></li>
</ul> -->
<nav>
<ul>
<li class="nav_item nav_link long_menu unlock">
<a href="/inquiry/" target="_blank">SUBSCRIBE</a>
</li>
<li class="nav_item nav_link long_menu">
<a href="/browse/" target="_blank">BROWSE BY EVENT</a>
</li>
<li class="nav_item nav_link">
<a href="/help.php" target="_blank">About</a>
</li>
<li id="nav_login" class="nav_item droppable">
<a class="nav_button">Login</a>
<div class="dropdown login" id="login">
<a href="/inquiry">not a member?</a>
<div class="error"></div>
<form id="form_login" method="post" action="/api/login.php" name="form_login">
<input type="text" name="email" value="Email" autocomplete="off" class="empty" default_text="Email" /> <input type="password" name="password" value="" /><br />
<input type="checkbox" name="remember_me" id="remember" /><label for="remember">remember me</label> | <a id="forgot_password">forgot password?</a> <input type="submit" value="LOGIN" />
</form>
<form id="form_forgot_password" method="post" action="/api/forgot_password.php" style="display:none" name="form_forgot_password">
<p>
We will send a new password to your email address.
</p><input type="text" name="email" /> <input type="submit" value="SUBMIT" />
</form>
<p id="forgot_password_success_msg" style="display:none">
Your reset password hsa been successfully sent to your mail
</p>
</div>
</li>
<li id="nav_logout" class="nav_item nav_link hidden">
<a href="/logout">Logout</a>
</li>
<li class="nav_item nav_link hidden">
<a href="/account.php" target="_blank">Account</a>
</li>
<li class="nav_item nav_link">
<a href="mailto:help@gdcvault.com" target="_blank">Contact Us</a>
</li>
</ul>
</nav>
<h3 id="welcome_user_name" class="hidden">
Welcome,
</h3>
</div>
</header>
<script type="text/javascript" id="">
//<![CDATA[
"prod"!==google_tag_manager["GTM-TMS8FLQ"].macro(18)&&(window["ga-disable-UA-11233174-13"]=google_tag_manager["GTM-TMS8FLQ"].macro(19));
//]]>
</script>
<script type="text/javascript" id="">
//<![CDATA[
var _elqQ=_elqQ||[];_elqQ.push(["elqSetSiteId","2150"]);_elqQ.push(["elqTrackPageView"]);google_tag_manager["GTM-TMS8FLQ"].macro(37)!==google_tag_manager["GTM-TMS8FLQ"].macro(38)?(console.log("elq 1st party cookie"),_elqQ.push(["elqUseFirstPartyCookie","undefined"])):console.log("elq 3rd party cookie");
(function(){function b(){var a=document.createElement("script");a.type="text/javascript";a.async=!0;a.src="//img.en25.com/i/elqCfg.min.js";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(a,c)}window.addEventListener?window.addEventListener("DOMContentLoaded",b,!1):window.attachEvent&&window.attachEvent("onload",b)})();
//]]>
</script>
<script type="text/javascript" id="">
//<![CDATA[
var script=document.createElement("script");script.type="text/javascript";script.async=!0;script.addEventListener("load",function(a){window.IIRISTracker&&(a={config:{}},a.config.snowplow={},a.config.snowplow.appId="gdcvault.com/entertainment",a.config.snowplow.cDomain="c.gdcvault.com",a.config.td={},a.config.td.lob="itentertainment",a.config.td.domain=google_tag_manager["GTM-TMS8FLQ"].macro(39)(google_tag_manager["GTM-TMS8FLQ"].macro(40)),IIRISTracker.initConfig(a),a=new Event("trackerLoaded"),window.dispatchEvent(a))});
script.src="https://static.iris.informa.com/widgets/v2.0/iris-t.js";document.getElementsByTagName("head")[0].appendChild(script);
//]]>
</script>
<div class="wrapper">
<section id="masthead">
<img src="https://www.gdcvault.com/img/masthead_logo.png" />
<div class="main">
<!-- <div class="youtube_link"><a href="https://www.youtube.com/c/gdconf"><img src="/img/youtube-link.png"></a></div> -->
<script type="text/javascript">
//<![CDATA[
var keyword_already_selected = false;
$(document).ready(function(){
$('#search-bar form').submit(function(){
var $vault_keyword_search = $('#vault_keyword_search');
if ('Search' === $vault_keyword_search.val()) {
$vault_keyword_search.val('');
}
return true;
});
$('#vault_keyword_search').bind('keyup focus',function(){
if(!$(this).val().search(/\S/)){
$(this).removeAttr('style');
$('#errText').hide();
}else{
$(this).css({'border':'1px solid red','box-shadow':'0 0 10px red'});
$('#errText').show();
}
});
});
//]]>
</script>
<form id="searchForm" method="get" action="/search.php" name="searchForm">
<select name="conference_id">
<option value="" selected="selected">
All Conferences
</option>
<option value="346">
Game Developer Talks 2022
</option>
<option value="302">
Game Developers Conference 2022
</option>
<option value="286">
Game Developers Conference 2021
</option>
<option value="290">
GDC Showcase 2021
</option>
<option value="57">
Test Conference
</option>
<option value="267">
GDC Summer 2020
</option>
<option value="241">
GDC 2020
</option>
<option value="232">
XRDC 2019
</option>
<option value="208">
GDC 2019
</option>
<option value="211">
VRDC @ GDC 2019
</option>
<option value="199">
XRDC 2018
</option>
<option value="177">
VRDC @ GDC 2018
</option>
<option value="175">
GDC 2018
</option>
<option value="165">
VRDC Fall 2017
</option>
<option value="151">
VRDC @ GDC 2017
</option>
<option value="143">
GDC 2017
</option>
<option value="141">
VRDC Fall 2016
</option>
<option value="129">
GDC Europe 2016
</option>
<option value="113">
VRDC @ GDC 2016
</option>
<option value="109">
GDC 2016
</option>
<option value="94">
GDC China 2015
</option>
<option value="95">
GDC Europe 2015
</option>
<option value="87">
GDC 2015
</option>
<option value="80">
GDC Next 2014
</option>
<option value="75">
GDC China 2014
</option>
<option value="76">
GDC Europe 2014
</option>
<option value="309">
GDC 2014
</option>
<option value="25">
GDC Next 2013
</option>
<option value="27">
ADC 2013
</option>
<option value="58">
GDC Europe 2013
</option>
<option value="19">
GDC 2013
</option>
<option value="17">
GDC Online 2012
</option>
<option value="15">
GDC Europe 2012
</option>
<option value="10">
GDC 2012
</option>
<option value="20">
GDC China 2012
</option>
<option value="14">
GDC China 2011
</option>
<option value="6">
GDC Europe 2011
</option>
<option value="7">
GDC Online 2011
</option>
<option value="308">
GDC 2011
</option>
<option value="305">
GDC China 2010
</option>
<option value="300">
GDC Online 2010
</option>
<option value="293">
GDC Europe 2010
</option>
<option value="287">
GDC Canada 2010
</option>
<option value="280">
GDC 2010
</option>
<option value="2">
GDC China 2009
</option>
<option value="262">
GDC Austin/Online 2009
</option>
<option value="272">
GDC Europe 2009
</option>
<option value="258">
GDC Canada 2009
</option>
<option value="234">
GDC 2009
</option>
<option value="228">
GDC Austin/Online 2008
</option>
<option value="198">
GDC 2008
</option>
<option value="183">
GDC Austin/Online 2007
</option>
<option value="134">
GDC 2007
</option>
<option value="98">
GDC 2006
</option>
<option value="63">
GDC 2005
</option>
<option value="41">
GDC 2004
</option>
<option value="29">
GDC 2003
</option>
<option value="36">
GDC 2002
</option>
<option value="2001">
GDC 2001
</option>
<option value="2000">
GDC 2000
</option>
<option value="1999">
GDC 1999
</option>
<option value="1998">
GDC 1998
</option>
<option value="1997">
GDC 1997
</option>
<option value="215">
CGDC 1996
</option>
<option value="1996">
GDC 1996
</option>
</select>&#160;&#160;&#160;&#160; <input id="searchCategory" type="hidden" name="category" value="free" /> <input type="hidden" name="firstfocus" /> <input id="vault_keyword_search" type="text" name="keyword" value="Search" default_text="Enter your search term(s) here" class="empty" /> <img src="https://www.gdcvault.com/img/icon_magnify_glass.png" />
</form>
<script type="text/javascript">
//<![CDATA[
GDC.Search.getInstance($("#searchForm"), null, null);
//]]>
</script>
<div style="color:red;text-align:right;position: absolute;bottom: 0;left: 296px;display:none" id="errText">
Please enter search word.
</div>
</div>
</section><!-- <script type="text/javascript">
gptadslots[1]=googletag.defineSlot('/3834/gdcvault.home/play',[[160,600]],'div-gpt-ad-sky1').addService(googletag.pubads()).setTargeting('pos',['sky1']).setTargeting('aid',['1022186']).addService(googletag.pubads());
gptadslots[2]=googletag.defineSlot('/3834/gdcvault.home/play',[[300,250]],'div-gpt-ad-rec1').addService(googletag.pubads()).setTargeting('pos',['rec1']).setTargeting('aid',['1022186']).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.pubads().enableAsyncRendering();
googletag.enableServices();
</script> -->
<link rel="stylesheet" media="only screen and (min-width: 481px)" href="/css/play.css" type="text/css" />
<link rel="stylesheet" media="only screen and (max-width: 480px)" href="/css/play_phone.css" type="text/css" /><!--<div id="ad_skyscraper">
<div id="div-gpt-ad-sky1">
<script type='text/javascript'>
googletag.display('div-gpt-ad-sky1');
</script>
</div>
</div>-->
<div id="player" style="height: 100%">
<iframe src="https://cdnapisec.kaltura.com/p/1670711/sp/167071100/embedIframeJs/uiconf_id/43558772/partner_id/1670711?iframeembed=true&amp;playerId=kaltura_player_1547062087&amp;cache_st=1547072087&amp;width=1000&amp;height=570&amp;entry_id=0_6kvuqtmi&amp;videoid=6aafd73d83118f0e6c301022186" width="1000" height="570" scrolling="no" frameborder="0" marginheight="0" marginwidth="0" allowfullscreen="allowfullscreen"></iframe>
<table>
<tbody>
<tr>
<td>
<strong>Session Name:</strong>
</td>
<td>
Parallelizing the Naughty Dog Engine Using Fibers
</td>
</tr>
<tr>
<td>
<strong>Speaker(s):</strong>
</td>
<td>
Christian Gyrling
</td>
</tr>
<tr>
<td>
<strong>Company Name(s):</strong>
</td>
<td>
Naughty Dog
</td>
</tr>
<tr>
<td>
<strong>Track / Format:</strong>
</td>
<td>
Programming
</td>
</tr>
<tr>
<td>
<strong>Overview:</strong>
</td>
<td>
This talk is a detailed walkthrough of the game engine modifications needed to make The Last of Us Remastered run at 60 fps on PlayStation 4. Topics covered will include the fiber-based job system Naughty Dog adopted for the game, the overall frame-centric engine design, the memory allocation patterns used in the title, and our strategies for dealing with locks.
</td>
</tr>
</tbody>
</table>
<div id="tags">
<p>
GDC 2015
</p>
<p>
Christian Gyrling
</p>
<p>
Naughty Dog
</p>
<p>
free content
</p>
<p>
Programming
</p>
<p>
Programming
</p>
</div>
<div class="divider"></div>
<div class="addthis_inline_share_toolbox" style="margin-left: 50px; clear: both;" data-url="https://www.gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine" data-title="Parallelizing the Naughty Dog Engine Using Fibers" data-description="This talk is a detailed walkthrough of the game engine modifications needed to make The Last of Us Remastered run at 60 fps on PlayStation 4. Topics covered will include the fiber-based job system Naughty Dog adopted for the game, the overall...">
<div id="atstbx" class="at-resp-share-element at-style-responsive addthis-smartlayers addthis-animated at4-show" aria-labelledby="at-885198d0-2383-4027-b8e3-e28b0a3d98d8" role="region">
<span id="at-885198d0-2383-4027-b8e3-e28b0a3d98d8" class="at4-visually-hidden">AddThis Sharing Buttons</span>
<div class="at-share-btn-elements">
<a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-facebook" style="background-color: rgb(59, 89, 152); border-radius: 0px;"><span class="at4-visually-hidden">Share to Facebook</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-facebook-1" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;" class="at-icon at-icon-facebook">
<title id="at-svg-facebook-1">
Facebook
</title>
<g>
<path d="M22 5.16c-.406-.054-1.806-.16-3.43-.16-3.4 0-5.733 1.825-5.733 5.17v2.882H9v3.913h3.837V27h4.604V16.965h3.823l.587-3.913h-4.41v-2.5c0-1.123.347-1.903 2.198-1.903H22V5.16z" fill-rule="evenodd"></path>
</g></svg></span></a><a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-twitter" style="background-color: rgb(29, 161, 242); border-radius: 0px;"><span class="at4-visually-hidden">Share to Twitter</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-twitter-2" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;" class="at-icon at-icon-twitter">
<title id="at-svg-twitter-2">
Twitter
</title>
<g>
<path d="M27.996 10.116c-.81.36-1.68.602-2.592.71a4.526 4.526 0 0 0 1.984-2.496 9.037 9.037 0 0 1-2.866 1.095 4.513 4.513 0 0 0-7.69 4.116 12.81 12.81 0 0 1-9.3-4.715 4.49 4.49 0 0 0-.612 2.27 4.51 4.51 0 0 0 2.008 3.755 4.495 4.495 0 0 1-2.044-.564v.057a4.515 4.515 0 0 0 3.62 4.425 4.52 4.52 0 0 1-2.04.077 4.517 4.517 0 0 0 4.217 3.134 9.055 9.055 0 0 1-5.604 1.93A9.18 9.18 0 0 1 6 23.85a12.773 12.773 0 0 0 6.918 2.027c8.3 0 12.84-6.876 12.84-12.84 0-.195-.005-.39-.014-.583a9.172 9.172 0 0 0 2.252-2.336" fill-rule="evenodd"></path>
</g></svg></span></a><a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-email" style="background-color: rgb(132, 132, 132); border-radius: 0px;"><span class="at4-visually-hidden">Share to Email</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-email-3" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;" class="at-icon at-icon-email">
<title id="at-svg-email-3">
Email
</title>
<g>
<g fill-rule="evenodd"></g>
<path d="M27 22.757c0 1.24-.988 2.243-2.19 2.243H7.19C5.98 25 5 23.994 5 22.757V13.67c0-.556.39-.773.855-.496l8.78 5.238c.782.467 1.95.467 2.73 0l8.78-5.238c.472-.28.855-.063.855.495v9.087z"></path>
<path d="M27 9.243C27 8.006 26.02 7 24.81 7H7.19C5.988 7 5 8.004 5 9.243v.465c0 .554.385 1.232.857 1.514l9.61 5.733c.267.16.8.16 1.067 0l9.61-5.733c.473-.283.856-.96.856-1.514v-.465z"></path>
</g></svg></span></a><a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-linkedin" style="background-color: rgb(0, 119, 181); border-radius: 0px;"><span class="at4-visually-hidden">Share to LinkedIn</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-linkedin-4" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;" class="at-icon at-icon-linkedin">
<title id="at-svg-linkedin-4">
LinkedIn
</title>
<g>
<path d="M26 25.963h-4.185v-6.55c0-1.56-.027-3.57-2.175-3.57-2.18 0-2.51 1.7-2.51 3.46v6.66h-4.182V12.495h4.012v1.84h.058c.558-1.058 1.924-2.174 3.96-2.174 4.24 0 5.022 2.79 5.022 6.417v7.386zM8.23 10.655a2.426 2.426 0 0 1 0-4.855 2.427 2.427 0 0 1 0 4.855zm-2.098 1.84h4.19v13.468h-4.19V12.495z" fill-rule="evenodd"></path>
</g></svg></span></a><a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-slack" style="background-color: rgb(74, 21, 75); border-radius: 0px;"><span class="at4-visually-hidden">Share to Slack</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-slack-5" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;" class="at-icon at-icon-slack">
<title id="at-svg-slack-5">
Slack
</title>
<g>
<path d="M9.622 18.902c0 1.272-1.04 2.31-2.31 2.31A2.317 2.317 0 0 1 5 18.903c0-1.272 1.04-2.31 2.31-2.31h2.312v2.31zm1.165 0c0-1.272 1.04-2.31 2.31-2.31 1.273 0 2.312 1.038 2.312 2.31v5.787c0 1.27-1.04 2.31-2.312 2.31a2.317 2.317 0 0 1-2.31-2.31V18.9zm2.31-9.28a2.317 2.317 0 0 1-2.31-2.31c0-1.273 1.04-2.312 2.31-2.312 1.273 0 2.312 1.04 2.312 2.31v2.312h-2.312zm0 1.165c1.273 0 2.312 1.04 2.312 2.31 0 1.273-1.04 2.312-2.312 2.312H7.31A2.317 2.317 0 0 1 5 13.097c0-1.272 1.04-2.31 2.31-2.31H13.1zm9.28 2.31c0-1.27 1.04-2.31 2.312-2.31 1.27 0 2.31 1.04 2.31 2.31 0 1.273-1.04 2.312-2.31 2.312h-2.312v-2.312zm-1.164 0c0 1.273-1.04 2.312-2.31 2.312a2.317 2.317 0 0 1-2.312-2.312V7.31c0-1.27 1.04-2.31 2.312-2.31 1.272 0 2.31 1.04 2.31 2.31V13.1zm-2.31 9.28c1.27 0 2.31 1.04 2.31 2.312 0 1.27-1.04 2.31-2.31 2.31a2.317 2.317 0 0 1-2.312-2.31v-2.312h2.312zm0-1.164a2.317 2.317 0 0 1-2.312-2.31c0-1.273 1.04-2.312 2.312-2.312h5.787c1.27 0 2.31 1.04 2.31 2.312 0 1.272-1.04 2.31-2.31 2.31H18.9z" fill-rule="evenodd"></path>
</g></svg></span></a>
</div>
</div>
</div><br />
<!-- <div id="ad_lower">
<div id="div-gpt-ad-rec1">
<script type='text/javascript'>
googletag.display('div-gpt-ad-rec1');
</script>
</div>
</div> -->
<section id="recommended">
<div id="header">
<h3>
Recommended
</h3>
</div><img src="/img/icon_members_only_text.png" />
<div id="recommended_body">
<div class="recommended_videos_block">
<div class="rec_media_item left first_row">
<a href="/play/1022268/Streaming-in-Sunset-Overdrive-s"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022268/Streaming-in-Sunset-Overdrive-s">Streaming in Sunset Overdrive's Open World</a><br />
<br />
<em>by</em> Elan Ruskin
</div>
</div>
<div class="rec_media_item right first_row">
<a href="/play/1022216/Procedural-and-Automation-Techniques-for"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022216/Procedural-and-Automation-Techniques-for">Procedural and Automation Techniques for Design and...</a><br />
<br />
<em>by</em> David Santiago
</div>
</div>
<div class="rec_media_item left">
<a href="/play/1021892/Creating-Truly-Scalable-Game-Engines"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021892/Creating-Truly-Scalable-Game-Engines">Creating Truly Scalable Game Engines - Console to...</a><br />
<br />
<em>by</em> Josh Adams
</div>
</div>
<div class="rec_media_item right" style="padding-left: 15px">
<a href="/play/1021975/Fast-Iteration-for-Far-Cry"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021975/Fast-Iteration-for-Far-Cry">Fast Iteration for Far Cry 4 - Optimizing Key Parts...</a><br />
<br />
<em>by</em> Remi Quenin
</div>
</div>
</div>
<div class="recommended_videos_block hidden">
<div class="rec_media_item left first_row">
<a href="/play/1022407/Developing-Games-for-NVIDIA-GRID"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022407/Developing-Games-for-NVIDIA-GRID">Developing Games for NVIDIA GRID (Presented by NVIDIA)</a><br />
<br />
<em>by</em> Eric Young
</div>
</div>
<div class="rec_media_item right first_row">
<a href="/play/1021881/Continuous"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021881/Continuous">Continuous Testing</a><br />
<br />
<em>by</em> Lance Hitchcock
</div>
</div>
<div class="rec_media_item left">
<a href="/play/1022193/Physics-for-Game-Programmers-Robust"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022193/Physics-for-Game-Programmers-Robust">Physics for Game Programmers : Robust Contact...</a><br />
<br />
<em>by</em> Dirk Gregorius
</div>
</div>
<div class="rec_media_item right" style="padding-left: 15px">
<a href="/play/1022047/How-Game-Developers-Reach-New"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022047/How-Game-Developers-Reach-New">How Game Developers Reach New Customers with Twitch...</a><br />
<br />
<em>by</em> Marcus Graham
</div>
</div>
</div>
<div class="recommended_videos_block hidden">
<div class="rec_media_item left first_row">
<a href="/play/1022105/Lessons-from-the-Core-Engine"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022105/Lessons-from-the-Core-Engine">Lessons from the Core Engine Architecture of Destiny</a><br />
<br />
<em>by</em> Chris Butcher
</div>
</div>
<div class="rec_media_item right first_row">
<a href="/play/1022397/How-to-Optimize-Your-Mobile"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022397/How-to-Optimize-Your-Mobile">How to Optimize Your Mobile Game with ARM Tools and...</a><br />
<br />
<em>by</em> Lorenzo Dal Col
</div>
</div>
<div class="rec_media_item left">
<a href="/play/1021770/Advanced-Visual-Effects-With-DirectX"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021770/Advanced-Visual-Effects-With-DirectX">Advanced Visual Effects With DirectX 11 &amp; 12:...</a><br />
<br />
<em>by</em> Nicolas Thibieroz
</div>
</div>
<div class="rec_media_item right" style="padding-left: 15px">
<a href="/play/1022388/NVIDIA-SLI-and-Stutter-Avoidance"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022388/NVIDIA-SLI-and-Stutter-Avoidance">NVIDIA SLI and Stutter Avoidance: A Recipe for...</a><br />
<br />
<em>by</em> Iain Cantlay
</div>
</div>
</div>
<div class="recommended_videos_block hidden">
<div class="rec_media_item left first_row">
<a href="/play/1022146/Math-for-Game-Programmers-Parallel"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022146/Math-for-Game-Programmers-Parallel">Math for Game Programmers: Parallel Random Number...</a><br />
<br />
<em>by</em> Manny Ko
</div>
</div>
<div class="rec_media_item right first_row">
<a href="/play/1021771/Advanced-VR"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021771/Advanced-VR">Advanced VR Rendering</a><br />
<br />
<em>by</em> Alex Vlachos
</div>
</div>
<div class="rec_media_item left">
<a href="/play/1022337/Tools-Development-at-Ubisoft-Building"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022337/Tools-Development-at-Ubisoft-Building">Tools Development at Ubisoft: Building a Shared...</a><br />
<br />
<em>by</em> David Lightbown
</div>
</div>
<div class="rec_media_item right" style="padding-left: 15px">
<a href="/play/1021938/Get-Your-Game-On-with"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1021938/Get-Your-Game-On-with">Get Your Game On with GitHub (Presented by GitHub)</a><br />
<br />
<em>by</em> Danish Khan
</div>
</div>
</div>
<div class="recommended_videos_block hidden">
<div class="rec_media_item left first_row">
<a href="/play/1022037/Hermes-Extensible-REST-and-RPC"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022037/Hermes-Extensible-REST-and-RPC">Hermes: Extensible REST and RPC Communication for...</a><br />
<br />
<em>by</em> Andrew McVeigh
</div>
</div>
<div class="rec_media_item right first_row">
<a href="/play/1022390/Unleash-the-Benefits-of-OpenGL"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022390/Unleash-the-Benefits-of-OpenGL">Unleash the Benefits of OpenGL ES 3.1 and Android...</a><br />
<br />
<em>by</em> Hans-Kristian Arntzen
</div>
</div>
<div class="rec_media_item left">
<a href="/play/1022403/Cutting-Edge-Graphics-for-Android"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022403/Cutting-Edge-Graphics-for-Android">Cutting Edge Graphics for Android (Presented by NVIDIA)</a><br />
<br />
<em>by</em> Mathias Schott
</div>
</div>
<div class="rec_media_item right" style="padding-left: 15px">
<a href="/play/1022158/Mobile-Devices-as-Development-Platform"><img src="https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2015/Images/GDC15_Vault-thumb_v1.png" width="80" height="62" /></a>
<div>
<a class="recommended_video_name" href="/play/1022158/Mobile-Devices-as-Development-Platform">Mobile Devices as Development Platform in Broken Age</a><br />
<br />
<em>by</em> Oliver Franzke
</div>
</div>
</div><button id="load_recommended_videos">LOAD MORE RECOMMENDED VIDEOS</button>
</div>
</section>
</div>
<div class="divider"></div>
</div>
<div class="footer-section-gdc">
<div class="footercontent">
<div class="tech-footer marketing-footer">
<div class="discover">
<h6 class="heading-title">
Discover More from Informa Tech
</h6>
<div>
<div class="tech-footer1">
<div>
<section id="block-menu-menu-technology-group" class="block block-menu clearfix">
<ul class="menu nav">
<li class="first leaf">
<a href="https://gdcvault.com">GDC Vault</a>
</li>
<li class="last leaf">
<a href="https://www.gamecareerguide.com">Game Career Guide</a>
</li>
</ul>
</section>
</div>
</div>
<div class="tech-footer2">
<div>
<section id="block-menu-menu-technology-group-2" class="block block-menu clearfix">
<ul class="menu nav">
<li class="first leaf">
<a href="https://igf.com">Independent Games Festival</a>
</li>
<li class="leaf">
<a href="https://www.gamechoiceawards.com">Game Developers Choice Awards</a>
</li>
<li class="leaf leaf">
<a href="https://www.omdia.com/">Omdia</a>
</li>
</ul>
</section>
</div>
</div>
<div class="tech-footer3"></div>
<div class="tech-footer4"></div>
</div>
</div>
<div class="working">
<div>
<div class="tech-footer5">
<div class="region-tech-footer-col-5">
<section id="block-menu-menu-working-with-us" class="block block-menu clearfix">
<h6 class="block-title">
Working With Us
</h6>
<ul class="menu nav">
<li class="first leaf">
<a href="https://www.gdconf.com/contact-us">Contact Us</a>
</li>
<li class="leaf">
<a href="https://www.gdconf.com/about">About Us</a>
</li>
<li class="last leaf">
<a href="https://www.gdconf.com/become-sponsor-or-exhibitor">Exhibit or Sponsor</a>
</li>
</ul>
</section>
</div>
</div>
<div class="tech-footer6">
<div class="region-tech-footer-col-6">
<section id="block-menu-menu-communities-served" class="block block-menu clearfix">
<h6 class="block-title">
Follow GDC on Social
</h6>
<ul class="menu nav">
<li class="first leaf otw-linkedin">
<img src="https://www.gdcvault.com/img/linkedin-tech.png" />
</li>
<li class="leaf otw-twitter">
<img src="https://www.gdcvault.com/img/twitter-tech.png" />
</li>
<li class="leaf otw-youtube">
<img src="https://www.gdcvault.com/img/youtube-tech.png" />
</li>
<li class="leaf otw-facebook">
<img src="https://www.gdcvault.com/img/facebook-tech.png" />
</li>
<li class="last leaf otw-instagram">
<img src="https://www.gdcvault.com/img/instagram-tech.png" />
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer-section-gdc divisional-footer">
<div class="footercontent">
<div class="divisional-row">
<div class="tech-footer-logo">
<a href="https://informatech.com/" target="_blank"><img id="ubm-logo" src="/img/Whitelogo.png" /></a>
</div>
<div style="display: inline;">
<div class="region-footer-copyright" style="display: inline;">
<section id="block-menu-menu-legal-footer-menu" class="block block-menu clearfix">
<ul class="menu nav">
<li class="first leaf">
<a href="https://tech.informa.com">Home</a>
</li>
<li class="leaf">
<a href="/accessibility.php">Accessibility</a>
</li>
<li class="leaf">
<a href="https://tech.informa.com/cookie-policy">Cookies</a>
</li>
<li class="leaf">
<a href="https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html">CCPA: Do not sell my personal info</a>
</li>
<li class="leaf">
<a href="https://informa.com/privacy-policy/">Privacy</a>
</li>
<li class="last leaf">
<a href="https://tech.informa.com/terms-and-conditions">Terms</a>
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
<div class="row-content">
<div class="container copyright-container">
<div class="copyright">
<ul class="menu nav nav-customa">
<li>Copyright © <span id="copyright-year">2022</span> Informa PLC. Informa PLC is registered in England and Wales with company number 8860726 whose registered and head office is <span style="white-space: nowrap;">5 Howick Place, London, SW1P 1WG.</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
var today = new Date();
var thisYear = today.getFullYear();
document.getElementById('copyright-year').innerHTML = thisYear;
//]]>
</script>
<div id="filter_overlay" style="display:none; text-align:center;color:#000">
<img src="/img/loadingAnimation.gif" /><br />
<br />
<strong>loading...</strong>
</div><!-- Go to www.addthis.com/dashboard to customize your tools -->
<div style="display:none" id="subscriptionModal">
<!--<h1>Hi ,<br> <a class="renew_link" href="/inquiry/">your subscription has expired, click here to renew</a></h1>-->
<div>
<div class="subscribe_now_border"></div><a href="/inquiry/" class="subscribe_now">
<h3>
SUBSCRIBE NOW ★
</h3>Get Instant Access to all Members Only Content!</a>
<div class="subscribe_now_border"></div>
</div>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-57f8023c55d5d405"></script>
<div id="_atssh" style="visibility: hidden; height: 1px; width: 1px; position: absolute; top: -9999px; z-index: 100000;">
<iframe id="_atssh910" title="AddThis utility frame" style="height: 1px; width: 1px; position: absolute; top: 0px; z-index: 100000; border: 0px; left: 0px;" src="https://s7.addthis.com/static/sh.f48a1a04fe8dbf021b4cda1d.html#rand=0.8654185645350971&amp;iit=1668571230324&amp;tmr=load%3D1668571230279%26core%3D1668571230308%26main%3D1668571230320%26ifr%3D1668571230326&amp;cb=0&amp;cdn=0&amp;md=0&amp;kw=&amp;ab=-&amp;dh=www.gdcvault.com&amp;dr=&amp;du=https%3A%2F%2Fwww.gdcvault.com%2Fplay%2F1022186%2FParallelizing-the-Naughty-Dog-Engine&amp;href=https%3A%2F%2Fwww.gdcvault.com%2Fplay%2F1022186%2FParallelizing-the-Naughty-Dog-Engine&amp;dt=Parallelizing%20the%20Naughty%20Dog%20Engine%20Using%20Fibers&amp;dbg=0&amp;cap=tc%3D0%26ab%3D0&amp;inst=1&amp;jsl=1&amp;prod=undefined&amp;lng=en&amp;ogt=image%2Curl%2Cdescription%2Ctitle%2Ctype%3Darticle%2Curl&amp;pc=men&amp;pub=ra-57f8023c55d5d405&amp;ssl=1&amp;sid=6374605e59636e43&amp;srf=0.01&amp;ver=300&amp;xck=0&amp;xtr=0&amp;og=url%3Dhttps%253A%252F%252Fubm-twvideo01.s3.amazonaws.com%252Fo1%252Fvault%252Fgdc2015%252FImages%252FGDC15_Vault-thumb_v1.png%26type%3Darticle%26title%3DParallelizing%2520the%2520Naughty%2520Dog%2520Engine%2520Using%2520Fibers%26description%3DThis%2520talk%2520is%2520a%2520detailed%2520walkthrough%2520of%2520the%2520game%2520engine%2520modifications%2520needed%2520to%2520make%2520The%2520Last%2520of%2520Us%2520Remastered%2520run%2520at%252060%2520fps%2520on%2520PlayStation%25204.%2520Topics%2520covered%2520will%2520include%2520the%2520fiber-based%2520job%2520system%2520Naughty%2520Dog%2520adopted%2520for%2520the%2520game%252C%2520the%2520overall...%26image%3Dhttps%253A%252F%252Fubm-twvideo01.s3.amazonaws.com%252Fo1%252Fvault%252Fgdc2015%252FImages%252FGDC15_Vault-thumb_v1.png&amp;csi=undefined&amp;rev=v8.28.8-wp&amp;ct=1&amp;xld=1&amp;xd=1" name="_atssh910"></iframe>
</div>
</body>
</html>