|
|
(15 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| + | <!DOCTYPE html> |
| <html> | | <html> |
− | | + | <head> |
− | <head>
| + | <link href="https://fonts.googleapis.com/css?family=Nunito+Sans" rel="stylesheet"> |
− | <meta name="author" content="GAMulder">
| + | |
− | <title>iGEM UTRECHT Placeholder Page</title>
| + | <link rel='stylesheet prefetch' href='https://cdn3.devexpress.com/jslib/17.1.3/css/dx.spa.css'> |
− | <link href="https://fonts.googleapis.com/css?family=Signika" rel="stylesheet"> | + | <link rel='stylesheet prefetch' href='https://cdn3.devexpress.com/jslib/17.1.3/css/dx.common.css'> |
− | <link href="https://fonts.googleapis.com/css?family=Acme" rel="stylesheet"> | + | <link rel='stylesheet prefetch' href='https://cdn3.devexpress.com/jslib/17.1.3/css/dx.light.css'> |
− | <link href="https://fonts.googleapis.com/css?family=Acme|Pontano+Sans" rel="stylesheet"> | + | |
− |
| + | <style> |
− | <style>
| + | |
| #top_title { display: none !important; } | | #top_title { display: none !important; } |
| /*Override default CSS*/ | | /*Override default CSS*/ |
Line 43: |
Line 43: |
| body { | | body { |
| min-height: 100%; | | min-height: 100%; |
− | background-color: #E5F2F0; | + | } |
| + | </style> |
| + | |
| + | <style type="text/css"> |
| + | body, html { |
| + | height: 100%; |
| + | background: #fff; |
| } | | } |
| | | |
| + | .container { |
| + | width: 60px; |
| + | height: 60px; |
| + | margin: 0 auto 0; |
| + | -webkit-perspective: 1000; |
| + | -webkit-backface-visibility: hidden; |
| + | background: #fff; |
| + | } |
| | | |
− | #content_wrapper {
| + | .tutorial_button { |
− | position: relative;
| + | position: relative; |
− | top: 0px;
| + | display: block; |
− | left: 0px;
| + | width: 60px; |
− | margin: 0px;
| + | height: 60px; |
− | width: 100%; | + | font-size: 2.5em; |
− | height: 100%; | + | font-weight: light; |
− | text-align:center;
| + | font-family: 'Trebuchet MS', sans-serif; |
− | background-color: #00CCBC; | + | text-transform: uppercase; |
| + | text-align: center; |
| + | line-height: 60px; |
| + | letter-spacing: -1px; |
| + | color: white; |
| + | border: none; |
| + | border-radius: 50%; |
| + | background: #ff8d00; |
| + | cursor: pointer; |
| + | border: 5px solid #ffb252; |
| + | filter: grayscale(100%); |
| + | transition: all 0.5s ease; |
| } | | } |
| | | |
− | #content_wrapper p {
| + | .tutorial_button.selected { |
− | font-family: Tahoma, Geneva, sans-serif;
| + | filter: grayscale(0%); |
| } | | } |
| | | |
− | #content_wrapper a {
| + | .tutorial_button.pulsing { |
− | color: #004789; | + | box-shadow: 0 0 0 0 rgba(255, 212, 0, 0.8); |
| + | -webkit-animation: pulse 2s infinite; |
| } | | } |
| | | |
| + | /*.tutorial_button.pulsing:hover { |
| + | -webkit-animation: none; |
| + | }*/ |
| | | |
− | #footer {
| + | @-webkit-keyframes pulse { |
− | position:absolute;
| + | 70% { |
− | bottom: 0px; | + | box-shadow: 0 0 0 50px rgba(90, 153, 212, 0); |
− | left: 0px;
| + | } |
− | width: 100%;
| + | 100% { |
− | margin-top: 0px; | + | box-shadow: 0 0 0 0 rgba(90, 153, 212, 0); |
− | margin-bottom: 20px;
| + | } |
− | background-color: #00CCBC;
| + | |
− | text-align: center;
| + | |
| } | | } |
− | img.makefit{max-width:100%; max-height:max-width}
| |
− | bodyblock{background-color: #00CCBC }
| |
− | page_title{font-family:'Signika',sans-serif; font-size: 40px; padding:1px}
| |
− | project_title{font-family:'Acme',sans-serif; font-size: 70px; padding:1px}
| |
− | project_subtitle{font-family:'Acme',sans-sefif; font-size: 18px; padding:5px}
| |
− | main_text{font-family:'Pontano Sans',sans-serif; font-size:14px; padding:5px}
| |
− | div.sec0{float:left; width:100%;font-family:'Pontano Sans',sans-serif; font-size:16px ; text-align: justify; padding:10px}
| |
− | div.sec1{float:left; width:25%; box-sizing: border-box;font-family: 'Pontano Sans',sans-serif; font-size:14px ; text-align: justify; padding: 7px}
| |
− | div.sectitle{font-family:'Acme',sans-serif; font-size:16px ; text-align: center; padding: 10px}
| |
− | div.sec2{float:left; width:33.3%; box-sizing: border-box;font-family: 'Pontano Sans',sans-serif; font-size:14px ; text-align: justify; padding-top: 10px; padding-bottom:10px; padding-left:10px; padding-right:10px}
| |
| | | |
− | </style>
| + | </style> |
− |
| + | |
− | </head>
| + | <style type="text/css"> |
− |
| + | body { |
− | <iframe id="contentframe" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
| + | color: white; |
| + | font-family: 'Nunito Sans', sans-serif; |
| + | margin: 0; |
| + | padding: 0; |
| + | } |
| + | |
| + | * { |
| + | transition: all 0.5s ease; |
| + | } |
| + | |
| + | .top-menu { |
| + | position: fixed; |
| + | top: 18px; |
| + | left: 0; |
| + | width: 100%; |
| + | height: 50px; |
| + | background: #0096ff; |
| + | overflow: hidden; |
| + | z-index: 2; |
| + | line-height: 100%; |
| + | } |
| + | |
| + | .top-menu .menu-underline { position: absolute; height: 3px; background: white; transition: all 0.3s ease; } |
| + | |
| + | .top-menu .quote { opacity: 0; } |
| + | .top-menu .sections { opacity: 0; pointer-events: none; } |
| + | |
| + | .top-menu.active { |
| + | height: 345px; |
| + | background: #005b9b; |
| + | } |
| + | |
| + | .top-menu.active .quote { opacity: 1; } |
| + | /*.top-menu.active .sections { opacity: 1; display: block; }*/ |
| + | |
| + | .top-menu .sections { position: absolute; |
| + | left: 0; |
| + | margin: 0; |
| + | margin-left: 25px; |
| + | margin-top: 75px; |
| + | width: 100%; |
| + | text-align: center; |
| + | } |
| + | |
| + | .top-menu .section { width: 200px; display: inline-block; padding: 15px; vertical-align: top; } |
| + | /*.top-menu .section:last-of-type { margin-right: 0; }*/ |
| + | .top-menu .section .thumb { width: 100%; height: 100px; background: #00487a; } |
| + | .top-menu .section .text { width: 100%; text-align: center; margin-top: 10px; color: white; } |
| + | .top-menu .section .desc { width: 100%; text-align: center; margin-top: 10px; font-size: 12px; color: white; } |
| + | |
| + | .top-menu .section.active { background: #0075c8; } |
| + | |
| + | .top-menu[data-key='home'] .sections[data-key='home'] { opacity: 1; pointer-events: all; } |
| + | .top-menu[data-key='exp'] .sections[data-key='exp'] { opacity: 1; pointer-events: all; } |
| + | .top-menu[data-key='hp'] .sections[data-key='hp'] { opacity: 1; pointer-events: all; } |
| + | .top-menu[data-key='team'] .sections[data-key='team'] { opacity: 1; pointer-events: all; } |
| + | |
| + | .top-menu ul { |
| + | position: absolute; |
| + | left: calc(50% - 290px); |
| + | margin: 0; |
| + | margin-top: 15px; |
| + | list-style-image: none; |
| + | color: white; |
| + | } |
| + | |
| + | .top-menu li { |
| + | list-style-type: none; |
| + | float: left; |
| + | margin-right: 50px; |
| + | cursor: pointer; |
| + | } |
| + | |
| + | .top-menu ul::after { |
| + | clear: both; |
| + | } |
| + | |
| + | .menu-container { |
| + | position: fixed; |
| + | top: 125px; |
| + | left: 25px; |
| + | line-height: 100%; |
| + | } |
| + | |
| + | .menu-container.active { |
| + | top: 360px; |
| + | } |
| + | |
| + | .menu-container>div { |
| + | height: 25px; |
| + | margin-bottom: 10px; |
| + | color: #a2a2a2; |
| + | font-size: 16px; |
| + | } |
| + | |
| + | .menu-container .active { |
| + | color: #005b9b; |
| + | } |
| + | |
| + | .menu-container .text { |
| + | float: left; |
| + | padding-left: 10px; |
| + | height: 100%; |
| + | } |
| + | |
| + | .menu-container .marker { |
| + | float: left; |
| + | width: 27px; |
| + | height: 100%; |
| + | text-align: center; |
| + | } |
| + | |
| + | .menu-container .marker div { |
| + | display: inline-block; |
| + | background: #0096ff; |
| + | width: 10px; |
| + | height: 10px; |
| + | border-radius: 50%; |
| + | vertical-align: middle; |
| + | } |
| + | |
| + | .menu-container .active .marker div { |
| + | background: #005b9b; |
| + | width: 15px; |
| + | height: 15px; |
| + | } |
| + | |
| + | .page-container { |
| + | position: absolute; |
| + | top: 120px; |
| + | left: 400px; |
| + | line-height: 100%; |
| + | } |
| + | |
| + | .page-container .page-heading { |
| + | font-size: 25px; |
| + | color: #005b9b; |
| + | margin-bottom: 25px; |
| + | } |
| + | |
| + | .page-container .page-content { |
| + | color: black; |
| + | width: 750px; |
| + | text-align: justify; |
| + | line-height: 150%; |
| + | } |
| + | |
| + | /*body[data-key='home'] .menu-container { display: none; }*/ |
| + | |
| + | .tutorial { height: 511px; } |
| + | |
| + | h2 { font-size: 20px; color: #005b9b; margin-bottom: 10px; } |
| + | </style> |
| + | </head> |
| + | <body data-key="home"> |
| + | |
| + | <div class="top-menu" data-key="home"> |
| + | <div> |
| + | <ul class="top-menu-links"> |
| + | <li data-key="home" class="active">Home</li> |
| + | <li data-key="exp">Experimental</li> |
| + | <li data-key="hp">Human practices</li> |
| + | <li data-key="team">Team & Sponsors</li> |
| + | </ul> |
| + | |
| + | <div class="menu-underline"></div> |
| + | |
| + | <div class="quote"></div> |
| + | |
| + | <div class="sections" data-key="home"> |
| + | <br /> |
| + | <br /> |
| + | |
| + | </div> |
| + | |
| + | <div class="sections" data-key="exp"> |
| + | <div class="section"> |
| + | <div class="thumb"></div> |
| + | <div class="text">Cas9 & Cpf1 secretion<br/>and activity</div> |
| + | <div class="desc">Comparison of endonuclease activity for Cas9 and Cpf1 that has been produced in, and excreted by, HEK293 cells.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/b/bc/MESA.png"></div> |
| + | <div class="text">MESA two-component system replication</div> |
| + | <div class="desc">Details on the MESA two-component system, explanation of its relation to our design and the results of its reproduction.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"></div> |
| + | <div class="text">OUTCASST system production</div> |
| + | <div class="desc">Detailed explanation of the OUTCASST mechanism, experimental progress and technical prospects.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/6/6b/Modelling.png"></div> |
| + | <div class="text">Modeling and<br />mathematics</div> |
| + | <div class="desc">Ordinary differential equations, cellular automaton and an object based model for optimal linker-length estimation.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/6/63/Interlab1.png"></div> |
| + | <div class="text">Interlab study participation</div> |
| + | <div class="desc">Results and details of our measurements for the iGEM 2017 Interlab Study.</div> |
| + | </div> |
| + | </div> |
| + | |
| + | <div class="sections" data-key="hp"> |
| + | <div class="section"> |
| + | <div class="thumb"></div> |
| + | <div class="text">Stakeholders & opinions</div> |
| + | <div class="desc">Interviews and dialogues with stakeholders, potential users, third parties and experts relating to pathogen detection or DNA-based diagnostics.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/8/8d/Igemutrecht_safety.png"></div> |
| + | <div class="text">Risks & safety-issues</div> |
| + | <div class="desc">Implications and design considerations relating to safety in the usage and implementation of OUTCASST as a diagnostics tool.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"></div> |
| + | <div class="text">Design & integration</div> |
| + | <div class="desc">OUTCASST toolkit and product design with factors such as bio-safety and user-friendliness taken into account.</div> |
| + | </div> |
| + | </div> |
| + | |
| + | <div class="sections" data-key="team"> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/5/5e/Team_comp.png"></div> |
| + | <div class="text">Meet our team</div> |
| + | <div class="desc">About us, our interests and roles in the team and our supervisors.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"></div> |
| + | <div class="text">Sponsors</div> |
| + | <div class="desc">A listing of our sponsors, how they assisted us and our gratitude for their assistance.</div> |
| + | </div> |
| + | <div class="section"> |
| + | <div class="thumb"><img height="100" src="https://static.igem.org/mediawiki/2017/6/64/Achievements.png"></div> |
| + | <div class="text">Achievements</div> |
| + | <div class="desc">A short description of all that we have achieved during our participation in the iGEM.</div> |
| + | </div> |
| + | </div> |
| + | </div> |
| + | </div> |
| + | <div class="menu-container"> |
| + | <div style="position: absolute; left: 13px; top: 10px; height: 110px; width: 2px; background: #0096ff; z-index: -1;"></div> |
| + | <div class="item active"> |
| + | <div class="marker"><div></div></div> |
| + | <div class="text">The problem</div> |
| + | </div> |
| + | <div class="item"> |
| + | <div class="marker"><div></div></div> |
| + | <div class="text">The system</div> |
| + | </div> |
| + | <div class="item"> |
| + | <div class="marker"><div></div></div> |
| + | <div class="text">Subheading 3</div> |
| + | </div> |
| + | <div class="item"> |
| + | <div class="marker"><div></div></div> |
| + | <div class="text">Subheading 4</div> |
| + | </div> |
| + | </div> |
| + | <div class="page-container"> |
| + | <div class="page-heading">The OUTCASST two-component system</div> |
| + | <div class="page-content"> |
| + | |
| + | This year, Utrecht University participates in the iGEM for the first time. We aim to create a cheap DNA detection kit for disease diagnosis that is easy to use and does not rely on complicated sequencing technologies. |
| + | |
| + | <br /> |
| + | <br /> |
| + | <h2>The problem</h2> |
| + | Disease diagnosis is of great importance for healthcare. In developing countries, diagnoses often have to be made based on limited information, even though accurate disease determination based on pathogen specific DNA sequences is possible through sequencing technologies. These technologies, however, require specialised equipment and expertise that simply is not available everywhere. The OUTCASST two-component system and detection kit hopes to alleviate this problem. |
| + | |
| + | <center> |
| + | <div class="tutorial" style="position: relative; width: 560px; display: inline-block;"> |
| + | <img id="figure-1" style="position: absolute; top: 0; left: 125px; " src="https://static.igem.org/mediawiki/2017/e/e1/Tutorial_1.png"> |
| + | <img id="figure-2" style="position: absolute; top: 0; left: 125px; display: none;" src="https://static.igem.org/mediawiki/2017/5/5b/Tutorial_2.png"> |
| + | <img id="figure-3" style="position: absolute; top: 0; left: 125px; display: none;" src="https://static.igem.org/mediawiki/2017/e/e3/Tutorial_3.png"> |
| + | <img id="figure-4" style="position: absolute; top: 0; left: 125px; display: none;" src="https://static.igem.org/mediawiki/2017/e/ec/Tutorial_4.png"> |
| + | |
| + | <div class="container" style="position: absolute; top: 50px; left: 0; width: 75px;"> |
| + | <span id="link-1" class="tutorial_button selected pulsing" style="font-size: 17px; width: 75px; height: 75px; line-height: 75px;">Start</span> |
| + | </div> |
| + | |
| + | <div class="container" style="position: absolute; top: 50px; left: 500px;"> |
| + | <span id="link-2" class="tutorial_button">2</span> |
| + | </div> |
| + | |
| + | <div class="container" style="position: absolute; top: 300px; left: 0;"> |
| + | <span id="link-3" class="tutorial_button">3</span> |
| + | </div> |
| + | |
| + | <div class="container" style="position: absolute; top: 300px; left: 500px;"> |
| + | <span id="link-4" class="tutorial_button">4</span> |
| + | </div> |
| + | </div> |
| + | </center> |
| + | |
| + | <h2>The system</h2> |
| + | The OUTCASST two-component system consists of two proteins, expressed to the membrane of a dryable cell. One of the proteins is a Cas9-fusion and the other contains Cpf1. Both proteins can be given a guide RNA that makes it bind to a specific, user-chosen, complementary sequence. When both proteins bind a DNA fragment from a sample, they co-localize, so that a transcription factor is released intracellularly which then induces an intracellular reporter mechanism such as a dye or fluorescent signal. |
| + | |
| + | <div id="popover-1"> |
| + | Binding of components with search-specific gRNA sequences. |
| + | <br> |
| + | <br> |
| + | <a href="#" class="btn blue" id="goto-2" style="margin: 0; padding: 10px 25px; font-size: 18px;">Next</a> |
| + | </div> |
| + | |
| + | <div id="popover-2"> |
| + | DNA sample fragment binds to one of the components. |
| + | <br> |
| + | <br> |
| + | <a href="#" class="btn blue" id="goto-3" style="margin: 0; padding: 10px 25px; font-size: 18px;">Next</a> |
| + | </div> |
| + | |
| + | <div id="popover-3"> |
| + | Fragment binding with both components induces co-localization. |
| + | <br> |
| + | <br> |
| + | <a href="#" class="btn blue" id="goto-4" style="margin: 0; padding: 10px 25px; font-size: 18px;">Next</a> |
| + | </div> |
| + | |
| + | <div id="popover-4"> |
| + | Protease cleaves, transcription factor is released from complex. |
| + | <br> |
| + | <br> |
| + | </div> |
| + | |
| + | <style type="text/css"> |
| + | @import url(https://fonts.googleapis.com/css?family=Open+Sans); |
| + | |
| + | /* set global font to Open Sans */ |
| + | body { |
| + | font-family: 'Open Sans', 'sans-serif'; |
| + | } |
| + | |
| + | .btn { |
| + | border-radius: 5px; |
| + | padding: 15px 25px; |
| + | font-size: 22px; |
| + | text-decoration: none; |
| + | margin: 20px; |
| + | color: #fff; |
| + | position: relative; |
| + | display: inline-block; |
| + | } |
| + | |
| + | .btn:active { |
| + | transform: translate(0px, 5px); |
| + | -webkit-transform: translate(0px, 5px); |
| + | box-shadow: 0px 1px 0px 0px; |
| + | } |
| + | |
| + | .blue { |
| + | background-color: #55acee; |
| + | box-shadow: 0px 5px 0px 0px #3C93D5; |
| + | } |
| + | |
| + | .blue:hover { |
| + | background-color: #6FC6FF; |
| + | } |
| + | </style> |
| + | |
| + | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> |
| + | <script src='https://cdn3.devexpress.com/jslib/17.1.3/js/dx.all.js'></script> |
| + | <script type="text/javascript"> |
| + | $.noConflict(); |
| + | |
| + | jQuery(function(){ |
| + | for(var i = 1; i <= 4; i++) |
| + | { |
| + | var position = "left"; |
| + | var showEvent = ""; |
| + | |
| + | if(i == 2 || i == 4) |
| + | { |
| + | position = "right"; |
| + | showEvent = ""; |
| + | } |
| + | |
| + | var title; |
| + | |
| + | if(i == 1) |
| + | title = "Guide RNA"; |
| + | else if(i == 2) |
| + | title = "DNA binding"; |
| + | else if(i == 3) |
| + | title = "Signal transduction"; |
| + | else if(i == 4) |
| + | title = "Signal transduction"; |
| + | |
| + | jQuery("#popover-" + i).dxPopover({ |
| + | target: "#link-" + i, |
| + | showEvent: showEvent, |
| + | hideEvent: "", |
| + | position: position, |
| + | width: 300, |
| + | showTitle: true, |
| + | title: title |
| + | }).dxPopover("instance"); |
| + | } |
| + | |
| + | jQuery("#link-1").click(function() |
| + | { |
| + | jQuery("#popover-1").dxPopover("show"); |
| + | jQuery("#link-1").removeClass("pulsing"); |
| + | }); |
| + | |
| + | jQuery('body').on('click', 'a', function(event) { |
| + | var id = event.target.id; |
| + | |
| + | if(id == "goto-2") |
| + | { |
| + | jQuery("#link-1").removeClass("selected"); |
| + | jQuery("#popover-1").dxPopover("hide"); |
| + | jQuery("#popover-2").dxPopover("show"); |
| + | jQuery("#link-2").addClass("selected"); |
| + | jQuery("#figure-1").fadeOut("5"); |
| + | jQuery("#figure-2").fadeIn("5"); |
| + | } |
| + | else if(id == "goto-3") |
| + | { |
| + | jQuery("#link-2").removeClass("selected"); |
| + | jQuery("#popover-2").dxPopover("hide"); |
| + | jQuery("#popover-3").dxPopover("show"); |
| + | jQuery("#link-3").addClass("selected"); |
| + | jQuery("#figure-2").fadeOut("5"); |
| + | jQuery("#figure-3").fadeIn("5"); |
| + | } |
| + | else if(id == "goto-4") |
| + | { |
| + | jQuery("#link-3").removeClass("selected"); |
| + | jQuery("#popover-3").dxPopover("hide"); |
| + | jQuery("#popover-4").dxPopover("show"); |
| + | jQuery("#link-4").addClass("selected"); |
| + | jQuery("#figure-3").fadeOut("5"); |
| + | jQuery("#figure-4").fadeIn("5"); |
| + | } |
| + | }); |
| + | }); |
| + | </script> |
| + | |
| + | </div> |
| + | </div> |
| + | |
| + | <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js"></script> |
| + | <script src="https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js"></script> |
| | | |
| <script type="text/javascript"> | | <script type="text/javascript"> |
− | window.onload = function()
| + | function move_underline(element) |
| { | | { |
− | var doc = document.getElementById("contentframe").contentWindow.document; | + | var width = element.getWidth(); |
− | doc.open();
| + | var height = element.getHeight(); |
− | var content = "DQo8IURPQ1RZUEUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQoJPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU51bml0bytTYW5zIiByZWw9InN0eWxlc2hlZXQiPg0KCQ0KCTxsaW5rIHJlbD0nc3R5bGVzaGVldCBwcmVmZXRjaCcgaHJlZj0naHR0cHM6Ly9jZG4zLmRldmV4cHJlc3MuY29tL2pzbGliLzE3LjEuMy9jc3MvZHguc3BhLmNzcyc+DQoJPGxpbmsgcmVsPSdzdHlsZXNoZWV0IHByZWZldGNoJyBocmVmPSdodHRwczovL2NkbjMuZGV2ZXhwcmVzcy5jb20vanNsaWIvMTcuMS4zL2Nzcy9keC5jb21tb24uY3NzJz4NCgk8bGluayByZWw9J3N0eWxlc2hlZXQgcHJlZmV0Y2gnIGhyZWY9J2h0dHBzOi8vY2RuMy5kZXZleHByZXNzLmNvbS9qc2xpYi8xNy4xLjMvY3NzL2R4LmxpZ2h0LmNzcyc+DQoJDQoJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCglib2R5LCBodG1sIHsNCiAgaGVpZ2h0OiAxMDAlOw0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KfQ0KDQouY29udGFpbmVyIHsNCiAgd2lkdGg6IDYwcHg7DQogIGhlaWdodDogNjBweDsNCiAgbWFyZ2luOiAwIGF1dG8gMDsNCiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMDsNCiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47DQogIGJhY2tncm91bmQ6ICNmZmY7DQp9DQoNCi5idXR0b24gew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICB3aWR0aDogNjBweDsNCiAgICBoZWlnaHQ6IDYwcHg7DQogICAgZm9udC1zaXplOiAyLjVlbTsNCiAgICBmb250LXdlaWdodDogbGlnaHQ7DQogICAgZm9udC1mYW1pbHk6ICdUcmVidWNoZXQgTVMnLCBzYW5zLXNlcmlmOw0KICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGxpbmUtaGVpZ2h0OiA2MHB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAtMXB4Ow0KICAgIGNvbG9yOiB3aGl0ZTsNCiAgICBib3JkZXI6IG5vbmU7DQogICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgIGJhY2tncm91bmQ6ICNmZjhkMDA7DQogICAgY3Vyc29yOiBwb2ludGVyOw0KCWJvcmRlcjogNXB4IHNvbGlkICNmZmIyNTI7DQoJZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7DQoJdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsNCn0NCg0KLmJ1dHRvbi5zZWxlY3RlZCB7DQoJZmlsdGVyOiBncmF5c2NhbGUoMCUpOw0KfQ0KDQouYnV0dG9uLnB1bHNpbmcgew0KICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDIxMiwgMCwgMC44KTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbjogcHVsc2UgMnMgaW5maW5pdGU7DQp9DQoNCi8qLmJ1dHRvbi5wdWxzaW5nOmhvdmVyIHsNCiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7DQp9Ki8NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHsNCiAgNzAlIHsNCiAgICBib3gtc2hhZG93OiAwIDAgMCA1MHB4IHJnYmEoOTAsIDE1MywgMjEyLCAwKTsNCiAgfQ0KICAxMDAlIHsNCiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoOTAsIDE1MywgMjEyLCAwKTsNCiAgfQ0KfQ0KDQoJPC9zdHlsZT4NCgkNCgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCWJvZHkgew0KCQljb2xvcjogd2hpdGU7DQoJCWZvbnQtZmFtaWx5OiAnTnVuaXRvIFNhbnMnLCBzYW5zLXNlcmlmOw0KCQltYXJnaW46IDA7DQoJCXBhZGRpbmc6IDA7DQoJfQ0KCQ0KCSogew0KCQl0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlOw0KCX0NCgkNCgkudG9wLW1lbnUgew0KCQlwb3NpdGlvbjogZml4ZWQ7DQoJCXRvcDogMDsNCgkJbGVmdDogMDsNCgkJd2lkdGg6IDEwMCU7DQoJCWhlaWdodDogNTBweDsNCgkJYmFja2dyb3VuZDogIzAwOTZmZjsNCgkJb3ZlcmZsb3c6IGhpZGRlbjsNCgkJei1pbmRleDogMjsNCgl9DQoJDQoJLnRvcC1tZW51IC5tZW51LXVuZGVybGluZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAzcHg7IGJhY2tncm91bmQ6IHdoaXRlOyB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9DQoJDQoJLnRvcC1tZW51IC5xdW90ZSB7IG9wYWNpdHk6IDA7IH0NCgkudG9wLW1lbnUgLnNlY3Rpb25zIHsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0NCgkNCgkudG9wLW1lbnUuYWN0aXZlIHsNCgkJaGVpZ2h0OiAzNDVweDsNCgkJYmFja2dyb3VuZDogIzAwNWI5YjsNCgl9DQoJDQoJLnRvcC1tZW51LmFjdGl2ZSAucXVvdGUgeyBvcGFjaXR5OiAxOyB9DQoJLyoudG9wLW1lbnUuYWN0aXZlIC5zZWN0aW9ucyB7IG9wYWNpdHk6IDE7IGRpc3BsYXk6IGJsb2NrOyB9Ki8NCgkNCgkudG9wLW1lbnUgLnNlY3Rpb25zIHsgcG9zaXRpb246IGFic29sdXRlOw0KCQlsZWZ0OiAwOw0KCQltYXJnaW46IDA7DQoJCW1hcmdpbi1sZWZ0OiAyNXB4Ow0KCQltYXJnaW4tdG9wOiA3NXB4Ow0KCQl3aWR0aDogMTAwJTsNCgkJdGV4dC1hbGlnbjogY2VudGVyOw0KCQl9DQoJDQoJLnRvcC1tZW51IC5zZWN0aW9uIHsgd2lkdGg6IDIwMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDE1cHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0NCgkvKi50b3AtbWVudSAuc2VjdGlvbjpsYXN0LW9mLXR5cGUgeyBtYXJnaW4tcmlnaHQ6IDA7IH0qLw0KCS50b3AtbWVudSAuc2VjdGlvbiAudGh1bWIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogIzAwNDg3YTsgfQ0KCS50b3AtbWVudSAuc2VjdGlvbiAudGV4dCB7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDEwcHg7IH0NCgkudG9wLW1lbnUgLnNlY3Rpb24gLmRlc2MgeyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOiAxMHB4OyBmb250LXNpemU6IDEycHg7IH0NCgkNCgkudG9wLW1lbnUgLnNlY3Rpb24uYWN0aXZlIHsgYmFja2dyb3VuZDogIzAwNzVjODsgfQ0KCQ0KCS50b3AtbWVudVtkYXRhLWtleT0naG9tZSddIC5zZWN0aW9uc1tkYXRhLWtleT0naG9tZSddIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfQ0KCS50b3AtbWVudVtkYXRhLWtleT0nZXhwJ10gLnNlY3Rpb25zW2RhdGEta2V5PSdleHAnXSB7IG9wYWNpdHk6IDE7IHBvaW50ZXItZXZlbnRzOiBhbGw7IH0NCgkudG9wLW1lbnVbZGF0YS1rZXk9J2hwJ10gLnNlY3Rpb25zW2RhdGEta2V5PSdocCddIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfQ0KCS50b3AtbWVudVtkYXRhLWtleT0ndGVhbSddIC5zZWN0aW9uc1tkYXRhLWtleT0ndGVhbSddIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfQ0KCQ0KCS50b3AtbWVudSB1bCB7DQoJCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgkJbGVmdDogY2FsYyg1MCUgLSAyOTBweCk7DQoJCW1hcmdpbjogMDsNCgkJbWFyZ2luLXRvcDogMTVweDsNCgl9DQoJDQoJLnRvcC1tZW51IGxpIHsNCgkJbGlzdC1zdHlsZS10eXBlOiBub25lOw0KCQlmbG9hdDogbGVmdDsNCgkJbWFyZ2luLXJpZ2h0OiA1MHB4Ow0KCQljdXJzb3I6IHBvaW50ZXI7DQoJfQ0KCQ0KCS50b3AtbWVudSB1bDo6YWZ0ZXIgIHsNCgkJY2xlYXI6IGJvdGg7DQoJfQ0KCQ0KCS5tZW51LWNvbnRhaW5lciB7DQoJCXBvc2l0aW9uOiBmaXhlZDsNCgkJdG9wOiAxMjVweDsNCgkJbGVmdDogMjVweDsNCgl9DQoJDQoJLm1lbnUtY29udGFpbmVyLmFjdGl2ZSB7DQoJCXRvcDogMzYwcHg7DQoJfQ0KCQ0KCS5tZW51LWNvbnRhaW5lcj5kaXYgew0KCQloZWlnaHQ6IDI1cHg7DQoJCW1hcmdpbi1ib3R0b206IDEwcHg7DQoJCWNvbG9yOiAjYTJhMmEyOw0KCQlmb250LXNpemU6IDE2cHg7DQoJfQ0KCQ0KCS5tZW51LWNvbnRhaW5lciAuYWN0aXZlIHsNCgkJY29sb3I6ICMwMDViOWI7DQoJfQ0KCQ0KCS5tZW51LWNvbnRhaW5lciAudGV4dCB7DQoJCWZsb2F0OiBsZWZ0Ow0KCQlwYWRkaW5nLWxlZnQ6IDEwcHg7DQoJCWhlaWdodDogMTAwJTsNCgl9DQoJDQoJLm1lbnUtY29udGFpbmVyIC5tYXJrZXIgew0KCQlmbG9hdDogbGVmdDsNCgkJd2lkdGg6IDI3cHg7DQoJCWhlaWdodDogMTAwJTsNCgkJdGV4dC1hbGlnbjogY2VudGVyOw0KCX0NCgkNCgkubWVudS1jb250YWluZXIgLm1hcmtlciBkaXYgew0KCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQoJCWJhY2tncm91bmQ6ICMwMDk2ZmY7DQoJCXdpZHRoOiAxMHB4Ow0KCQloZWlnaHQ6IDEwcHg7DQoJCWJvcmRlci1yYWRpdXM6IDUwJTsNCgkJdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCgl9DQoJDQoJLm1lbnUtY29udGFpbmVyIC5hY3RpdmUgLm1hcmtlciBkaXYgew0KCQliYWNrZ3JvdW5kOiAjMDA1YjliOw0KCQl3aWR0aDogMTVweDsNCgkJaGVpZ2h0OiAxNXB4Ow0KCX0NCgkNCgkucGFnZS1jb250YWluZXIgew0KCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCXRvcDogMTIwcHg7DQoJCWxlZnQ6IDQwMHB4Ow0KCX0NCgkNCgkucGFnZS1jb250YWluZXIgLnBhZ2UtaGVhZGluZyB7DQoJCWZvbnQtc2l6ZTogMjVweDsNCgkJY29sb3I6ICMwMDViOWI7DQoJCW1hcmdpbi1ib3R0b206IDI1cHg7CQ0KCX0NCgkNCgkucGFnZS1jb250YWluZXIgLnBhZ2UtY29udGVudCB7DQoJCWNvbG9yOiBibGFjazsNCgkJd2lkdGg6IDc1MHB4Ow0KCQl0ZXh0LWFsaWduOiBqdXN0aWZ5Ow0KCQlsaW5lLWhlaWdodDogMTUwJTsNCgl9DQoJDQoJLypib2R5W2RhdGEta2V5PSdob21lJ10gLm1lbnUtY29udGFpbmVyIHsgZGlzcGxheTogbm9uZTsgfSovDQoJDQoJLnR1dG9yaWFsIHsgaGVpZ2h0OiA1MTFweDsgfQ0KCQ0KCWgyIHsgZm9udC1zaXplOiAyMHB4OyBjb2xvcjogIzAwNWI5YjsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQ0KCTwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keSBkYXRhLWtleT0iaG9tZSI+DQoNCjxkaXYgY2xhc3M9InRvcC1tZW51IiBkYXRhLWtleT0iaG9tZSI+DQoJPGRpdj4NCgkJPHVsIGNsYXNzPSJ0b3AtbWVudS1saW5rcyI+DQoJCQk8bGkgZGF0YS1rZXk9ImhvbWUiIGNsYXNzPSJhY3RpdmUiPkhvbWU8L2xpPg0KCQkJPGxpIGRhdGEta2V5PSJleHAiPkV4cGVyaW1lbnRhbDwvbGk+DQoJCQk8bGkgZGF0YS1rZXk9ImhwIj5IdW1hbiBwcmFjdGljZXM8L2xpPg0KCQkJPGxpIGRhdGEta2V5PSJ0ZWFtIj5UZWFtICYgU3BvbnNvcnM8L2xpPg0KCQk8L3VsPg0KCQkNCgkJPGRpdiBjbGFzcz0ibWVudS11bmRlcmxpbmUiPjwvZGl2Pg0KCQkNCgkJPGRpdiBjbGFzcz0icXVvdGUiPjwvZGl2Pg0KCQkNCgkJPGRpdiBjbGFzcz0ic2VjdGlvbnMiIGRhdGEta2V5PSJob21lIj4NCgkJCTxiciAvPg0KCQkJPGJyIC8+DQoJCQkNCgkJPC9kaXY+DQoJCQ0KCQk8ZGl2IGNsYXNzPSJzZWN0aW9ucyIgZGF0YS1rZXk9ImV4cCI+DQoJCQk8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCgkJCQk8ZGl2IGNsYXNzPSJ0aHVtYiI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+Q2FzOSAmIENwZjEgc2VjcmV0aW9uPGJyLz5hbmQgYWN0aXZpdHk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJkZXNjIj5Db21wYXJpc29uIG9mIGVuZG9udWNsZWFzZSBhY3Rpdml0eSBmb3IgQ2FzOSBhbmQgQ3BmMSB0aGF0IGhhcyBiZWVuIHByb2R1Y2VkIGluLCBhbmQgZXhjcmV0ZWQgYnksIEhFSzI5MyBjZWxscy48L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgaGVpZ2h0PSIxMDAiIHNyYz0iLi9tZW51LXRodW1ibmFpbHMvTUVTQS5wbmciPjwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InRleHQiPk1FU0EgdHdvLWNvbXBvbmVudCBzeXN0ZW0gcmVwbGljYXRpb248L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJkZXNjIj5EZXRhaWxzIG9uIHRoZSBNRVNBIHR3by1jb21wb25lbnQgc3lzdGVtLCBleHBsYW5hdGlvbiBvZiBpdHMgcmVsYXRpb24gdG8gb3VyIGRlc2lnbiBhbmQgdGhlIHJlc3VsdHMgb2YgaXRzIHJlcHJvZHVjdGlvbi48L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InRleHQiPk9VVENBU1NUIHN5c3RlbSBwcm9kdWN0aW9uPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iZGVzYyI+RGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhlIE9VVENBU1NUIG1lY2hhbmlzbSwgZXhwZXJpbWVudGFsIHByb2dyZXNzIGFuZCB0ZWNobmljYWwgcHJvc3BlY3RzLjwvZGl2Pg0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCgkJCQk8ZGl2IGNsYXNzPSJ0aHVtYiI+PGltZyBoZWlnaHQ9IjEwMCIgc3JjPSIuL21lbnUtdGh1bWJuYWlscy9Nb2RlbGxpbmcucG5nIj48L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5Nb2RlbGluZyBhbmQ8YnIgLz5tYXRoZW1hdGljczwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImRlc2MiPk9yZGluYXJ5IGRpZmZlcmVudGlhbCBlcXVhdGlvbnMsIGNlbGx1bGFyIGF1dG9tYXRvbiBhbmQgYW4gb2JqZWN0IGJhc2VkIG1vZGVsIGZvciBvcHRpbWFsIGxpbmtlci1sZW5ndGggZXN0aW1hdGlvbi48L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgaGVpZ2h0PSIxMDAiIHNyYz0iLi9tZW51LXRodW1ibmFpbHMvaW50ZXJsYWIxLnBuZyI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+SW50ZXJsYWIgc3R1ZHkgcGFydGljaXBhdGlvbjwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImRlc2MiPlJlc3VsdHMgYW5kIGRldGFpbHMgb2Ygb3VyIG1lYXN1cmVtZW50cyBmb3IgdGhlIGlHRU0gMjAxNyBJbnRlcmxhYiBTdHVkeS48L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgkJDQoJCTxkaXYgY2xhc3M9InNlY3Rpb25zIiBkYXRhLWtleT0iaHAiPg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InRleHQiPlN0YWtlaG9sZGVycyAmIG9waW5pb25zPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iZGVzYyI+SW50ZXJ2aWV3cyBhbmQgZGlhbG9ndWVzIHdpdGggc3Rha2Vob2xkZXJzLCBwb3RlbnRpYWwgdXNlcnMsIHRoaXJkIHBhcnRpZXMgYW5kIGV4cGVydHMgcmVsYXRpbmcgdG8gcGF0aG9nZW4gZGV0ZWN0aW9uIG9yIEROQS1iYXNlZCBkaWFnbm9zdGljcy48L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgaGVpZ2h0PSIxMDAiIHNyYz0iLi9tZW51LXRodW1ibmFpbHMvc2FmZXR5LnBuZyI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+Umlza3MgJiBzYWZldHktaXNzdWVzPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iZGVzYyI+SW1wbGljYXRpb25zIGFuZCBkZXNpZ24gY29uc2lkZXJhdGlvbnMgcmVsYXRpbmcgdG8gc2FmZXR5IGluIHRoZSB1c2FnZSBhbmQgaW1wbGVtZW50YXRpb24gb2YgT1VUQ0FTU1QgYXMgYSBkaWFnbm9zdGljcyB0b29sLjwvZGl2Pg0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCgkJCQk8ZGl2IGNsYXNzPSJ0aHVtYiI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+RGVzaWduICYgaW50ZWdyYXRpb248L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJkZXNjIj5PVVRDQVNTVCB0b29sa2l0IGFuZCBwcm9kdWN0IGRlc2lnbiB3aXRoIGZhY3RvcnMgc3VjaCBhcyBiaW8tc2FmZXR5IGFuZCB1c2VyLWZyaWVuZGxpbmVzcyB0YWtlbiBpbnRvIGFjY291bnQuPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJCQ0KCQk8ZGl2IGNsYXNzPSJzZWN0aW9ucyIgZGF0YS1rZXk9InRlYW0iPg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgaGVpZ2h0PSIxMDAiIHNyYz0iLi9tZW51LXRodW1ibmFpbHMvdGVhbSBjb21wLnBuZyI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+TWVldCBvdXIgdGVhbTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImRlc2MiPkFib3V0IHVzLCBvdXIgaW50ZXJlc3RzIGFuZCByb2xlcyBpbiB0aGUgdGVhbSBhbmQgb3VyIHN1cGVydmlzb3JzLjwvZGl2Pg0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCgkJCQk8ZGl2IGNsYXNzPSJ0aHVtYiI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+U3BvbnNvcnM8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJkZXNjIj5BIGxpc3Rpbmcgb2Ygb3VyIHNwb25zb3JzLCBob3cgdGhleSBhc3Npc3RlZCB1cyBhbmQgb3VyIGdyYXRpdHVkZSBmb3IgdGhlaXIgYXNzaXN0YW5jZS48L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0ic2VjdGlvbiI+DQoJCQkJPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgaGVpZ2h0PSIxMDAiIHNyYz0iLi9tZW51LXRodW1ibmFpbHMvQWNoaWV2ZW1lbnRzLnBuZyI+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGV4dCI+QWNoaWV2ZW1lbnRzPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iZGVzYyI+QSBzaG9ydCBkZXNjcmlwdGlvbiBvZiBhbGwgdGhhdCB3ZSBoYXZlIGFjaGlldmVkIGR1cmluZyBvdXIgcGFydGljaXBhdGlvbiBpbiB0aGUgaUdFTS48L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPg0KCTxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTNweDsgdG9wOiAxMHB4OyBoZWlnaHQ6IDExMHB4OyB3aWR0aDogMnB4OyBiYWNrZ3JvdW5kOiAjMDA5NmZmOyB6LWluZGV4OiAtMTsiPjwvZGl2Pg0KCTxkaXYgY2xhc3M9Iml0ZW0gYWN0aXZlIj4NCgkJPGRpdiBjbGFzcz0ibWFya2VyIj48ZGl2PjwvZGl2PjwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5UaGUgcHJvYmxlbTwvZGl2Pg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9Iml0ZW0iPg0KCQk8ZGl2IGNsYXNzPSJtYXJrZXIiPjxkaXY+PC9kaXY+PC9kaXY+DQoJCTxkaXYgY2xhc3M9InRleHQiPlRoZSBzeXN0ZW08L2Rpdj4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJpdGVtIj4NCgkJPGRpdiBjbGFzcz0ibWFya2VyIj48ZGl2PjwvZGl2PjwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5TdWJoZWFkaW5nIDM8L2Rpdj4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJpdGVtIj4NCgkJPGRpdiBjbGFzcz0ibWFya2VyIj48ZGl2PjwvZGl2PjwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij5TdWJoZWFkaW5nIDQ8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZS1jb250YWluZXIiPg0KCTxkaXYgY2xhc3M9InBhZ2UtaGVhZGluZyI+VGhlIE9VVENBU1NUIHR3by1jb21wb25lbnQgc3lzdGVtPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZS1jb250ZW50Ij4NCgkNCglUaGlzIHllYXIsIFV0cmVjaHQgVW5pdmVyc2l0eSBwYXJ0aWNpcGF0ZXMgaW4gdGhlIGlHRU0gZm9yIHRoZSBmaXJzdCB0aW1lLiBXZSBhaW0gdG8gY3JlYXRlIGEgY2hlYXAgRE5BIGRldGVjdGlvbiBraXQgZm9yIGRpc2Vhc2UgZGlhZ25vc2lzIHRoYXQgaXMgZWFzeSB0byB1c2UgYW5kIGRvZXMgbm90IHJlbHkgb24gY29tcGxpY2F0ZWQgc2VxdWVuY2luZyB0ZWNobm9sb2dpZXMuDQoJDQoJPGJyIC8+DQoJPGJyIC8+DQoJPGgyPlRoZSBwcm9ibGVtPC9oMj4NCglEaXNlYXNlIGRpYWdub3NpcyBpcyBvZiBncmVhdCBpbXBvcnRhbmNlIGZvciBoZWFsdGhjYXJlLiBJbiBkZXZlbG9waW5nIGNvdW50cmllcywgZGlhZ25vc2VzIG9mdGVuIGhhdmUgdG8gYmUgbWFkZSBiYXNlZCBvbiBsaW1pdGVkIGluZm9ybWF0aW9uLCBldmVuIHRob3VnaCBhY2N1cmF0ZSBkaXNlYXNlIGRldGVybWluYXRpb24gYmFzZWQgb24gcGF0aG9nZW4gc3BlY2lmaWMgRE5BIHNlcXVlbmNlcyBpcyBwb3NzaWJsZSB0aHJvdWdoIHNlcXVlbmNpbmcgdGVjaG5vbG9naWVzLiBUaGVzZSB0ZWNobm9sb2dpZXMsIGhvd2V2ZXIsIHJlcXVpcmUgc3BlY2lhbGlzZWQgZXF1aXBtZW50IGFuZCBleHBlcnRpc2UgdGhhdCBzaW1wbHkgaXMgbm90IGF2YWlsYWJsZSBldmVyeXdoZXJlLiBUaGUgT1VUQ0FTU1QgdHdvLWNvbXBvbmVudCBzeXN0ZW0gYW5kIGRldGVjdGlvbiBraXQgaG9wZXMgdG8gYWxsZXZpYXRlIHRoaXMgcHJvYmxlbS4NCg0KCTxjZW50ZXI+DQoJPGRpdiBjbGFzcz0idHV0b3JpYWwiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiA1NjBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyI+DQoJCTxpbWcgaWQ9ImZpZ3VyZS0xIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDEyNXB4OyAiIHNyYz0idHV0b3JpYWxfMS5wbmciPg0KCQk8aW1nIGlkPSJmaWd1cmUtMiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAxMjVweDsgZGlzcGxheTogbm9uZTsiIHNyYz0idHV0b3JpYWxfMi5wbmciPg0KCQk8aW1nIGlkPSJmaWd1cmUtMyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAxMjVweDsgZGlzcGxheTogbm9uZTsiIHNyYz0idHV0b3JpYWxfMy5wbmciPg0KCQk8aW1nIGlkPSJmaWd1cmUtNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAxMjVweDsgZGlzcGxheTogbm9uZTsiIHNyYz0idHV0b3JpYWxfNC5wbmciPg0KCQkNCgkJPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwcHg7IGxlZnQ6IDA7IHdpZHRoOiA3NXB4OyI+DQoJCQk8c3BhbiBpZD0ibGluay0xIiBjbGFzcz0iYnV0dG9uIHNlbGVjdGVkIHB1bHNpbmciIHN0eWxlPSJmb250LXNpemU6IDE3cHg7IHdpZHRoOiA3NXB4OyBoZWlnaHQ6IDc1cHg7IGxpbmUtaGVpZ2h0OiA3NXB4OyI+U3RhcnQ8L3NwYW4+DQoJCTwvZGl2Pg0KCQkNCgkJPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwcHg7IGxlZnQ6IDUwMHB4OyI+DQoJCQk8c3BhbiBpZD0ibGluay0yIiBjbGFzcz0iYnV0dG9uIj4yPC9zcGFuPg0KCQk8L2Rpdj4JDQoJCQ0KCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMzAwcHg7IGxlZnQ6IDA7Ij4NCgkJCTxzcGFuIGlkPSJsaW5rLTMiIGNsYXNzPSJidXR0b24iPjM8L3NwYW4+DQoJCTwvZGl2Pg0KCQkNCgkJPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDMwMHB4OyBsZWZ0OiA1MDBweDsiPg0KCQkJPHNwYW4gaWQ9ImxpbmstNCIgY2xhc3M9ImJ1dHRvbiI+NDwvc3Bhbj4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPC9jZW50ZXI+DQoJDQoJPGgyPlRoZSBzeXN0ZW08L2gyPg0KCVRoZSBPVVRDQVNTVCB0d28tY29tcG9uZW50IHN5c3RlbSBjb25zaXN0cyBvZiB0d28gcHJvdGVpbnMsIGV4cHJlc3NlZCB0byB0aGUgbWVtYnJhbmUgb2YgYSBkcnlhYmxlIGNlbGwuIE9uZSBvZiB0aGUgcHJvdGVpbnMgaXMgYSBDYXM5LWZ1c2lvbiBhbmQgdGhlIG90aGVyIGNvbnRhaW5zIENwZjEuIEJvdGggcHJvdGVpbnMgY2FuIGJlIGdpdmVuIGEgZ3VpZGUgUk5BIHRoYXQgbWFrZXMgaXQgYmluZCB0byBhIHNwZWNpZmljLCB1c2VyLWNob3NlbiwgY29tcGxlbWVudGFyeSBzZXF1ZW5jZS4gV2hlbiBib3RoIHByb3RlaW5zIGJpbmQgYSBETkEgZnJhZ21lbnQgZnJvbSBhIHNhbXBsZSwgdGhleSBjby1sb2NhbGl6ZSwgc28gdGhhdCBhIHRyYW5zY3JpcHRpb24gZmFjdG9yIGlzIHJlbGVhc2VkIGludHJhY2VsbHVsYXJseSB3aGljaCB0aGVuIGluZHVjZXMgYW4gaW50cmFjZWxsdWxhciByZXBvcnRlciBtZWNoYW5pc20gc3VjaCBhcyBhIGR5ZSBvciBmbHVvcmVzY2VudCBzaWduYWwuDQoJDQoJPGRpdiBpZD0icG9wb3Zlci0xIj4NCgkJQmluZGluZyBvZiBjb21wb25lbnRzIHdpdGggc2VhcmNoLXNwZWNpZmljIGdSTkEgc2VxdWVuY2VzLg0KCQk8YnI+DQoJCTxicj4NCgkJPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBibHVlIiBpZD0iZ290by0yIiBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAxMHB4IDI1cHg7IGZvbnQtc2l6ZTogMThweDsiPk5leHQ8L2E+DQoJPC9kaXY+DQoJDQoJPGRpdiBpZD0icG9wb3Zlci0yIj4NCgkJRE5BIHNhbXBsZSBmcmFnbWVudCBiaW5kcyB0byBvbmUgb2YgdGhlIGNvbXBvbmVudHMuDQoJCTxicj4NCgkJPGJyPg0KCQk8YSBocmVmPSIjIiBjbGFzcz0iYnRuIGJsdWUiIGlkPSJnb3RvLTMiIHN0eWxlPSJtYXJnaW46IDA7IHBhZGRpbmc6IDEwcHggMjVweDsgZm9udC1zaXplOiAxOHB4OyI+TmV4dDwvYT4NCgk8L2Rpdj4NCgkNCgk8ZGl2IGlkPSJwb3BvdmVyLTMiPg0KCQlGcmFnbWVudCBiaW5kaW5nIHdpdGggYm90aCBjb21wb25lbnRzIGluZHVjZXMgY28tbG9jYWxpemF0aW9uLg0KCQk8YnI+DQoJCTxicj4NCgkJPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBibHVlIiBpZD0iZ290by00IiBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAxMHB4IDI1cHg7IGZvbnQtc2l6ZTogMThweDsiPk5leHQ8L2E+DQoJPC9kaXY+DQoJDQoJPGRpdiBpZD0icG9wb3Zlci00Ij4NCgkJUHJvdGVhc2UgY2xlYXZlcywgdHJhbnNjcmlwdGlvbiBmYWN0b3IgaXMgcmVsZWFzZWQgZnJvbSBjb21wbGV4Lg0KCQk8YnI+DQoJCTxicj4NCgk8L2Rpdj4NCgkNCgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCUBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnMpOw0KDQovKiBzZXQgZ2xvYmFsIGZvbnQgdG8gT3BlbiBTYW5zICovDQpib2R5IHsNCiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnc2Fucy1zZXJpZic7DQp9DQoNCi5idG4gew0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIHBhZGRpbmc6IDE1cHggMjVweDsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogIG1hcmdpbjogMjBweDsNCiAgY29sb3I6ICNmZmY7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KfQ0KDQouYnRuOmFjdGl2ZSB7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgNXB4KTsNCiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDVweCk7DQogIGJveC1zaGFkb3c6IDBweCAxcHggMHB4IDBweDsNCn0NCg0KLmJsdWUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVhY2VlOw0KICBib3gtc2hhZG93OiAwcHggNXB4IDBweCAwcHggIzNDOTNENTsNCn0NCg0KLmJsdWU6aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkZDNkZGOw0KfQ0KCTwvc3R5bGU+DQoJDQoJPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzMuMi4xL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgc3JjPSdodHRwczovL2NkbjMuZGV2ZXhwcmVzcy5jb20vanNsaWIvMTcuMS4zL2pzL2R4LmFsbC5qcyc+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCSQubm9Db25mbGljdCgpOw0KCQ0KCWpRdWVyeShmdW5jdGlvbigpew0KCQlmb3IodmFyIGkgPSAxOyBpIDw9IDQ7IGkrKykNCgkJew0KCQkJdmFyIHBvc2l0aW9uID0gImxlZnQiOw0KCQkJdmFyIHNob3dFdmVudCA9ICIiOw0KCQkJDQoJCQlpZihpID09IDIgfHwgaSA9PSA0KQ0KCQkJew0KCQkJCXBvc2l0aW9uID0gInJpZ2h0IjsNCgkJCQlzaG93RXZlbnQgPSAiIjsNCgkJCX0NCgkJCQ0KCQkJdmFyIHRpdGxlOw0KCQkJDQoJCQlpZihpID09IDEpDQoJCQkJdGl0bGUgPSAiR3VpZGUgUk5BIjsNCgkJCWVsc2UgaWYoaSA9PSAyKQ0KCQkJCXRpdGxlID0gIkROQSBiaW5kaW5nIjsNCgkJCWVsc2UgaWYoaSA9PSAzKQ0KCQkJCXRpdGxlID0gIlNpZ25hbCB0cmFuc2R1Y3Rpb24iOw0KCQkJZWxzZSBpZihpID09IDQpDQoJCQkJdGl0bGUgPSAiU2lnbmFsIHRyYW5zZHVjdGlvbiI7DQoJCQkNCgkJCSBqUXVlcnkoIiNwb3BvdmVyLSIgKyBpKS5keFBvcG92ZXIoew0KCQkJCXRhcmdldDogIiNsaW5rLSIgKyBpLA0KCQkJCXNob3dFdmVudDogc2hvd0V2ZW50LA0KCQkJCWhpZGVFdmVudDogIiIsDQoJCQkJcG9zaXRpb246IHBvc2l0aW9uLA0KCQkJCXdpZHRoOiAzMDAsDQoJCQkJc2hvd1RpdGxlOiB0cnVlLA0KCQkJCXRpdGxlOiB0aXRsZQ0KCQkJfSkuZHhQb3BvdmVyKCJpbnN0YW5jZSIpOw0KCQl9DQoJCQ0KCQlqUXVlcnkoIiNsaW5rLTEiKS5jbGljayhmdW5jdGlvbigpDQoJCXsNCgkJCWpRdWVyeSgiI3BvcG92ZXItMSIpLmR4UG9wb3Zlcigic2hvdyIpOw0KCQkJalF1ZXJ5KCIjbGluay0xIikucmVtb3ZlQ2xhc3MoInB1bHNpbmciKTsNCgkJfSk7DQoJCQ0KCQlqUXVlcnkoJ2JvZHknKS5vbignY2xpY2snLCAnYScsIGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQl2YXIgaWQgPSBldmVudC50YXJnZXQuaWQ7DQoJCQkNCgkJCWlmKGlkID09ICJnb3RvLTIiKQ0KCQkJew0KCQkJCWpRdWVyeSgiI2xpbmstMSIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItMSIpLmR4UG9wb3ZlcigiaGlkZSIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItMiIpLmR4UG9wb3Zlcigic2hvdyIpOw0KCQkJCWpRdWVyeSgiI2xpbmstMiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS0xIikuZmFkZU91dCgiNSIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS0yIikuZmFkZUluKCI1Iik7DQoJCQl9DQoJCQllbHNlIGlmKGlkID09ICJnb3RvLTMiKQ0KCQkJew0KCQkJCWpRdWVyeSgiI2xpbmstMiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItMiIpLmR4UG9wb3ZlcigiaGlkZSIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItMyIpLmR4UG9wb3Zlcigic2hvdyIpOw0KCQkJCWpRdWVyeSgiI2xpbmstMyIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS0yIikuZmFkZU91dCgiNSIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS0zIikuZmFkZUluKCI1Iik7DQoJCQl9DQoJCQllbHNlIGlmKGlkID09ICJnb3RvLTQiKQ0KCQkJew0KCQkJCWpRdWVyeSgiI2xpbmstMyIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItMyIpLmR4UG9wb3ZlcigiaGlkZSIpOw0KCQkJCWpRdWVyeSgiI3BvcG92ZXItNCIpLmR4UG9wb3Zlcigic2hvdyIpOw0KCQkJCWpRdWVyeSgiI2xpbmstNCIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS0zIikuZmFkZU91dCgiNSIpOw0KCQkJCWpRdWVyeSgiI2ZpZ3VyZS00IikuZmFkZUluKCI1Iik7DQoJCQl9DQoJCX0pOw0KfSk7DQoJPC9zY3JpcHQ+DQoNCgk8L2Rpdj4NCjwvZGl2Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3Byb3RvdHlwZS8xLjcuMi4wL3Byb3RvdHlwZS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9zY3JpcHRhY3Vsb3VzLzEuOS4wL3NjcmlwdGFjdWxvdXMuanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBtb3ZlX3VuZGVybGluZShlbGVtZW50KQ0Kew0KCXZhciB3aWR0aCA9IGVsZW1lbnQuZ2V0V2lkdGgoKTsNCgl2YXIgaGVpZ2h0ID0gZWxlbWVudC5nZXRIZWlnaHQoKTsNCgl2YXIgb2Zmc2V0ID0gZWxlbWVudC5jdW11bGF0aXZlT2Zmc2V0KCk7DQoJDQoJdmFyIGxpbmUgPSAkJCgiLm1lbnUtdW5kZXJsaW5lIilbMF07DQoJDQoJbGluZS5zdHlsZS50b3AgPSAob2Zmc2V0LnRvcCArIGhlaWdodCkgKyAicHgiOw0KCWxpbmUuc3R5bGUubGVmdCA9IG9mZnNldC5sZWZ0ICsgInB4IjsNCglsaW5lLnN0eWxlLndpZHRoID0gd2lkdGggKyAicHgiOw0KfQ0KDQpkb2N1bWVudC5vYnNlcnZlKCJkb206bG9hZGVkIiwgZnVuY3Rpb24oKQ0Kew0KCW1vdmVfdW5kZXJsaW5lKCQkKCIudG9wLW1lbnUtbGlua3MgbGkiKVswXSk7DQoJDQoJJCQoIi50b3AtbWVudSIpWzBdLm9ic2VydmUoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCkNCgl7DQoJCXRoaXMuYWRkQ2xhc3NOYW1lKCJhY3RpdmUiKTsNCgkJJCQoIi5tZW51LWNvbnRhaW5lciIpWzBdLmFkZENsYXNzTmFtZSgiYWN0aXZlIik7DQoJfSk7DQoJDQoJJCQoIi50b3AtbWVudSIpWzBdLm9ic2VydmUoIm1vdXNlb3V0IiwgZnVuY3Rpb24oKQ0KCXsNCgkJdGhpcy5yZW1vdmVDbGFzc05hbWUoImFjdGl2ZSIpOw0KCQkkJCgiLm1lbnUtY29udGFpbmVyIilbMF0ucmVtb3ZlQ2xhc3NOYW1lKCJhY3RpdmUiKTsNCgl9KTsNCgkNCgkkJCgiLnRvcC1tZW51IilbMF0ub24oIm1vdXNlb3ZlciIsICIuc2VjdGlvbiIsIGZ1bmN0aW9uKGV2ZW50LCBlbGVtZW50KQ0KCXsNCgkJZWxlbWVudC5hZGRDbGFzc05hbWUoImFjdGl2ZSIpOw0KCX0pOw0KCQ0KCSQkKCIudG9wLW1lbnUiKVswXS5vbigibW91c2VvdXQiLCAiLnNlY3Rpb24iLCBmdW5jdGlvbihldmVudCwgZWxlbWVudCkNCgl7DQoJCWVsZW1lbnQucmVtb3ZlQ2xhc3NOYW1lKCJhY3RpdmUiKTsNCgl9KTsNCgkNCgkkJCgiLnRvcC1tZW51LWxpbmtzIilbMF0ub24oIm1vdXNlb3ZlciIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50LCBlbGVtZW50KQ0KCXsNCgkJbW92ZV91bmRlcmxpbmUoZWxlbWVudCk7DQoJCQ0KCQkkJCgiLnRvcC1tZW51IilbMF0uc2V0QXR0cmlidXRlKCJkYXRhLWtleSIsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWtleSIpKTsNCgl9KTsNCgkNCgkkJCgiLm1lbnUtY29udGFpbmVyIilbMF0ub24oIm1vdXNlb3ZlciIsICIuaXRlbSIsIGZ1bmN0aW9uKGV2ZW50LCBlbGVtZW50KQ0KCXsNCgkJZWxlbWVudC5hZGRDbGFzc05hbWUoImFjdGl2ZSIpOw0KCX0pOw0KCQ0KCSQkKCIubWVudS1jb250YWluZXIiKVswXS5vbigibW91c2VvdXQiLCAiLml0ZW0iLCBmdW5jdGlvbihldmVudCwgZWxlbWVudCkNCgl7DQoJCWVsZW1lbnQucmVtb3ZlQ2xhc3NOYW1lKCJhY3RpdmUiKTsNCgl9KTsNCgkNCglFdmVudC5vYnNlcnZlKHdpbmRvdywgInNjcm9sbCIsIGZ1bmN0aW9uKCkNCgl7DQoJCXZhciBwb3NfeSA9IDEyNSAtIHdpbmRvdy5zY3JvbGxZOw0KCQkNCgkJaWYocG9zX3kgPCA3NSkNCgkJCXBvc195ID0gNzU7DQoJCQ0KCQkvLyQkKCIubWVudS1jb250YWluZXIiKVswXS5zdHlsZS50b3AgPSBwb3NfeSArICJweCI7DQoJfSk7DQp9KTsNCjwvc2NyaXB0Pg0KDQo8L2JvZHk+DQo8L2h0bWw+";
| + | var offset = element.cumulativeOffset(); |
− | doc.write(window.atob(content));
| + | |
− | doc.close();
| + | var line = $$(".menu-underline")[0]; |
| + | |
| + | line.style.top = (offset.top + height - 19) + "px"; |
| + | line.style.left = offset.left + "px"; |
| + | line.style.width = width + "px"; |
| } | | } |
| + | |
| + | document.observe("dom:loaded", function() |
| + | { |
| + | move_underline($$(".top-menu-links li")[0]); |
| + | |
| + | $$(".top-menu")[0].observe("mouseover", function() |
| + | { |
| + | this.addClassName("active"); |
| + | $$(".menu-container")[0].addClassName("active"); |
| + | }); |
| + | |
| + | $$(".top-menu")[0].observe("mouseout", function() |
| + | { |
| + | this.removeClassName("active"); |
| + | $$(".menu-container")[0].removeClassName("active"); |
| + | }); |
| + | |
| + | $$(".top-menu")[0].on("mouseover", ".section", function(event, element) |
| + | { |
| + | element.addClassName("active"); |
| + | }); |
| + | |
| + | $$(".top-menu")[0].on("mouseout", ".section", function(event, element) |
| + | { |
| + | element.removeClassName("active"); |
| + | }); |
| + | |
| + | $$(".top-menu-links")[0].on("mouseover", "li", function(event, element) |
| + | { |
| + | move_underline(element); |
| + | |
| + | $$(".top-menu")[0].setAttribute("data-key", element.getAttribute("data-key")); |
| + | }); |
| + | |
| + | $$(".menu-container")[0].on("mouseover", ".item", function(event, element) |
| + | { |
| + | element.addClassName("active"); |
| + | }); |
| + | |
| + | $$(".menu-container")[0].on("mouseout", ".item", function(event, element) |
| + | { |
| + | element.removeClassName("active"); |
| + | }); |
| + | |
| + | Event.observe(window, "scroll", function() |
| + | { |
| + | var pos_y = 125 - window.scrollY; |
| + | |
| + | if(pos_y < 75) |
| + | pos_y = 75; |
| + | |
| + | //$$(".menu-container")[0].style.top = pos_y + "px"; |
| + | }); |
| + | }); |
| </script> | | </script> |
| | | |
| + | </body> |
| </html> | | </html> |