CINXE.COM

Christian Kröher - * ICSE 2018 *

<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="https://conf.researchr.org/favicon.ico?28d37e6d7e5e12d24c39bdba0f4f3cfd" rel="shortcut icon" type="image/x-icon" /> <link href="https://conf.researchr.org/stylesheets/common_.css?d7bcca3579a066193caf560ede9d6399" rel="stylesheet" type="text/css" /> <title>Christian Kröher - * ICSE 2018 *</title> <script type="text/javascript">var show_webdsl_debug=false;</script> <script type="text/javascript">var contextpath="https://conf.researchr.org";</script> <link rel="stylesheet" href="https://conf.researchr.org/stylesheets/bootstrap/css/bootstrap.min.css?7f89537eaf606bff49f5cc1a7c24dbca" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/stylesheets/conf.css?e0c92ee5f52769e04d268b7588469bfe" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/getFile/f87320d6-9a52-4913-9e25-7d47088f28da/logo3-twitter-counter.css?1506880485506" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/stylesheets/theme.bootstrap_3.min.css?6867e70881e6ed2c03b6c9cf9c3152e0" type="text/css" /><script type="text/javascript" src="//code.jquery.com/jquery-3.5.1.min.js"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/jquery.tablesorter.combined.min.js?285b21976326641f8f1b910492e6d5d0"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/jquery.tablesorter.pager.min.js?4551cdfea66f45a11ae5548f3d50a06f"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/tablesorter-init.js?ee6babedf1a6be960e4543a1bb57b421"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/bootstrap/js/bootstrap.min.js?2f34b630ffe30ba2ff2b91e3f3c322a1"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/notify.min.js?e86d399917a84b69a4683f504c7a7813"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/ajax.js?2dbd1cc4f8f2d52ae9c879d7346f4f8a"></script> <script type="text/javascript">$(document).ready( function(){ $('#program-menu a[data-fltr-type]').on('click', function(event){ event.preventDefault(); window.location = $(this).attr('href') + "?" + encodeURIComponent( $(this).data('fltr-type') ) + '=' + encodeURIComponent( $(this).data('fltr-val') ); }) }) </script> <meta prefix='og: http://ogp.me/ns#' property='og:image' content='https://conf.researchr.org/getImage/icse-2018/carousel/gothenburg-sweden.jpg?1447683352000'> <script type="text/javascript">(function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); }); }); })(jQuery); </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4G0QWEKVQS"></script> <script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'G-4G0QWEKVQS', {'cookie_domain': 'auto', 'anonymizeIp': true });gtag('config', 'UA-9607501-2', {'cookie_domain': 'auto', 'anonymizeIp': true });</script> <meta prefix='og: http://ogp.me/ns#' property='og:title' content='Christian Kröher - * ICSE 2018 *'> <script type="text/javascript">function addEventModalLoadOnClick( containerNode ){ $(containerNode).find( "a[data-event-modal]" ).on("click", function(e){ var eventId = $(this).data("event-modal"); var modalElem = $("#modal-" + eventId); if(modalElem.length){ modalElem.modal({ backdrop: 'static', keyboard: true}, 'show'); } else { var loaderElem = $("#event-modal-loader"); loaderElem.find("input.event-id-input").val( eventId ); loaderElem.find("#load-modal-action").click(); } e.preventDefault(); } ); } </script><script type="text/javascript">function addStarredEventOnClick( containerNode ){ $(containerNode).find( "[data-event-star]" ).on("click", function(e){ var eventId = $(this).data("event-star"); var starEventFormElem = $("#event-star-form"); starEventFormElem.find("input.event-id-input").val( eventId ); starEventFormElem.find("#star-event-action").click(); e.preventDefault(); e.stopPropagation(); } ); } </script><script type="text/javascript">function pauseOnCloseModal( modalid ){ //pauses video (only youtube at the moment) when closing modal $('#' + modalid).on('hidden.bs.modal', function () { $(this).find('.embed-container iframe[src*=enablejsapi]').each( function(){ this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*') } ); } ) } </script> <meta name='description' content='The keynote presentations and videos are available on keynote page ICSE2018 in IEEE Software Margaret Hamilton in IEEE Software Some more photos from ICSE 2018 ICSE 2018 on Flickr Goodbye and see you at ICSE 2019 in Montréal! ICSE, the International Conference on Software Engineering, is the premier software engineering conference, providing a forum for researchers, practitioners and educators to present and discuss the most recent innovations, research, experiences, trends and concerns in the field of Software engineering. In 2018 ICSE will celebrate its 40th anniversary, and 50 y ...'> <meta prefix='og: http://ogp.me/ns#' property='og:description' content='The keynote presentations and videos are available on keynote page ICSE2018 in IEEE Software Margaret Hamilton in IEEE Software Some more photos from ICSE 2018 ICSE 2018 on Flickr Goodbye and see you at ICSE 2019 in Montréal! ICSE, the International Conference on Software Engineering, is the premier software engineering conference, providing a forum for researchers, practitioners and educators to present and discuss the most recent innovations, research, experiences, trends and concerns in the field of Software engineering. In 2018 ICSE will celebrate its 40th anniversary, and 50 y ...'> </head> <body id="profile"><div class="frame"><div class="logobar"><div class="container"><a href="https://conf.researchr.org/home/icse-2018" class="navbar-brand navigate"><span class="brand-text">* ICSE 2018 *</span></a><div class="place">Sun 27 May - Sun 3 June 2018 <a href="https://conf.researchr.org/venue/icse-2018/GothiaTowers" class="navigate">Gothenburg, Sweden</a></div></div></div><div class="navbar navbar-default"><div class="container"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navigationbar" class="navbar-toggle"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><div id="navigationbar" class="navigationbar collapse navbar-collapse"><ul class="block nav navbar-nav"><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Attending <span class="caret"></span></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/venue/icse-2018/GothiaTowers" class="navigate">Venue: Congress center Gothia Towers</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Registration" class="navigate">Registration</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/accomodation" class="navigate">Accommodation, Hotels, Sharing rooms</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Gothenburg+and+Travel" class="navigate">Gothenburg</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Travel" class="navigate">Travel</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Travel+and+participation+support" class="navigate">Travel and participation support</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Social+Events" class="navigate">Social Events</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/excursions-and-side-program" class="navigate">Excursions and Side Program</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Support+Opportunities+" class="navigate">Support Opportunities and Exibitions</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/resources" class="navigate">Resources</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/ICSE+Morning+Run" class="navigate">ICSE Morning Run</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/football" class="navigate">Football</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Sponsors+and+Supporters" class="navigate">Sponsors and Supporters</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Lunch+and+Coffee+Break+menus" class="navigate">Lunch and Coffee Break menus</a></li><li><a href="https://conf.researchr.org/attending/icse-2018/Photos" class="navigate">Photos</a></li></ul></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Program <span class="caret"></span></a><ul id="program-menu" class="block dropdown-menu"><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" class="navigate">* ICSE * Program</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="prog" data-fltr-val="Your Program" class="navigate"><span class="glyphicon glyphicon-star"></span> Your Program</a></li><li><a href="https://conf.researchr.org/info/icse-2018/week-overview" class="navigate"> Week Overview</a></li><li><a href="https://conf.researchr.org/info/icse-2018/main-conference" class="navigate">Main Conference</a></li><li><a href="https://conf.researchr.org/info/icse-2018/progam-in-pdf-and-proceedings" class="navigate">Progam in PDF and Proceedings</a></li><li><a href="https://conf.researchr.org/info/icse-2018/keynotes" class="navigate">Keynotes</a></li><li><a href="https://conf.researchr.org/info/icse-2018/industry-forum" class="navigate">Industry Forum</a></li><li><a href="https://conf.researchr.org/info/icse-2018/industry-program" class="navigate">Industry Program</a></li><li><a href="https://conf.researchr.org/info/icse-2018/50-years-of-se" class="navigate">50 years of SE</a></li><li><a href="https://conf.researchr.org/info/icse-2018/posters" class="navigate">Posters</a></li><li><a href="https://conf.researchr.org/info/icse-2018/technical-briefings" class="navigate">Technical briefings</a></li><li><a href="https://conf.researchr.org/info/icse-2018/new-faculty-symposium" class="navigate">New Faculty Symposium</a></li><li><a href="https://conf.researchr.org/info/icse-2018/2001-space-odyssey-symposium" class="navigate">2001: A Space Odyssey Symposium - 50 years celebration</a></li><li><a href="https://conf.researchr.org/info/icse-2018/software-development-day" class="navigate">Lindholmen Software Development Day</a></li><li><a href="https://conf.researchr.org/info/icse-2018/Community+meetings" class="navigate">Community meetings</a></li><li><a href="https://conf.researchr.org/info/icse-2018/social-events" class="navigate">Social Events</a></li><li><a href="https://conf.researchr.org/info/icse-2018/awards" class="navigate">Awards</a></li><li><a href="https://conf.researchr.org/info/icse-2018/livestream" class="navigate">Livestream</a></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>Filter by Day</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Sat 26 May 2018" class="navigate">Sat 26 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Sun 27 May 2018" class="navigate">Sun 27 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Mon 28 May 2018" class="navigate">Mon 28 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Tue 29 May 2018" class="navigate">Tue 29 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Wed 30 May 2018" class="navigate">Wed 30 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Thu 31 May 2018" class="navigate">Thu 31 May</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Fri 1 Jun 2018" class="navigate">Fri 1 Jun</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Sat 2 Jun 2018" class="navigate">Sat 2 Jun</a></li><li><a href="https://conf.researchr.org/program/icse-2018/program-icse-2018/" data-fltr-type="date" data-fltr-val="Sun 3 Jun 2018" class="navigate">Sun 3 Jun</a></li></ul></li></ul></li><li id="tracks-in-navbar" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Tracks <span class="caret"></span></a><ul class="block dropdown-menu multi-column columns-3"><div class="row"><div class="col-sm-5"><ul class="block multi-column-dropdown"><li class="dropdown-header">* ICSE 2018 *</li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Keynotes" class="navigate">Plenary Sessions</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Technical-Papers" class="navigate">Technical Papers </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Journal-first-papers" class="navigate">Journal first papers</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Workshops" class="navigate">Workshops</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-in-Practice" class="navigate">SEIP - Software Engineering in Practice</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-Education-and-Training" class="navigate">SEET - Software Engineering Education and Training </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-in-Society" class="navigate">SEIS - Software Engineering in Society </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-New-Ideas-and-Emerging-Results" class="navigate">NIER - New Ideas and Emerging Results </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Industry-Forum" class="navigate">IF - Industry Forum</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Demonstrations" class="navigate">DEMO - Demonstrations </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Posters" class="navigate">Posters </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Doctoral-Symposium" class="navigate">DS - Doctoral Symposium </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Technical-Briefings" class="navigate">TB - Technical Briefings </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-ACM-Student-Research-Competition" class="navigate">SRC - ACM Student Research Competition </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-SCORE" class="navigate">SCORE</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Student-Volunteers" class="navigate">Student Volunteers </a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Co-located-events" class="navigate">Co-located events</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Double-blind-review" class="navigate">Submitting to ICSE2018: Q&amp;A</a></li><li><a href="https://conf.researchr.org/track/icse-2018/icse-2018-2001-A-Space-Odyssey-Symposium-50-years-celebration" class="navigate">2001: A Space Odyssey Symposium - 50 years celebration</a></li></ul></div><div class="col-sm-7"><ul class="block multi-column-dropdown"><li class="dropdown-header">Co-hosted Conferences</li><li><a href="https://conf.researchr.org/track/icse-2018/Formalise-2018-papers" class="navigate"><strong>FormaliSE</strong> </a></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICGSE</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/home/icgse-2018" class="navigate"><span class="glyphicon glyphicon-home"></span> ICGSE</a></li><li><a href="https://conf.researchr.org/track/icgse-2018/icgse-2018-ICGSE-2018" class="navigate"><strong>ICGSE</strong> </a></li><li><a href="https://conf.researchr.org/track/icgse-2018/icgse-2018-papers" class="navigate"><strong>ICGSE</strong> Research papers</a></li><li><a href="https://conf.researchr.org/track/icgse-2018/icgse-2018-Experience-reports" class="navigate"><strong>ICGSE</strong> Experience reports</a></li><li><a href="https://conf.researchr.org/track/icgse-2018/icgse-2018-Industry-talks" class="navigate"><strong>ICGSE</strong> Industry talks</a></li><li><a href="https://conf.researchr.org/track/icgse-2018/icgse-2018-Doctoral-symposium" class="navigate"><strong>ICGSE</strong> Doctoral Symposium</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICPC</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/home/icpc-2018" class="navigate"><span class="glyphicon glyphicon-home"></span> ICPC</a></li><li><a href="https://conf.researchr.org/track/icpc-2018/icpc-2018-Technical-Research" class="navigate"><strong>ICPC</strong> Technical Research</a></li><li><a href="https://conf.researchr.org/track/icpc-2018/icpc-2018-Early-Research-Achievement" class="navigate"><strong>ICPC</strong> Early Research Achievement</a></li><li><a href="https://conf.researchr.org/track/icpc-2018/icpc-2018-Tool-Demonstration" class="navigate"><strong>ICPC</strong> Tool Demonstration</a></li><li><a href="https://conf.researchr.org/track/icpc-2018/icpc-2018-Industry" class="navigate"><strong>ICPC</strong> Industry</a></li></ul></li><li><a href="https://conf.researchr.org/track/icse-2018/icssp-2018-papers" class="navigate"><strong>ICSSP</strong> </a></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>MSR</strong></a><ul class="block dropdown-menu"><li><a href="https://2018.msrconf.org" class="navigate"><span class="glyphicon glyphicon-home"></span> MSR</a></li><li><a href="https://2018.msrconf.org/track/msr-2018-papers" class="navigate"><strong>MSR</strong> Technical Papers</a></li><li><a href="https://2018.msrconf.org/track/msr-2018-Mining-Challenge" class="navigate"><strong>MSR</strong> Mining Challenge</a></li><li><a href="https://2018.msrconf.org/track/msr-2018-Data-Showcase-Papers" class="navigate"><strong>MSR</strong> Data Showcase</a></li><li><a href="https://2018.msrconf.org/track/msr-2018-FOSS-Award" class="navigate"><strong>MSR</strong> FOSS Award</a></li></ul></li><li><a href="https://conf.researchr.org/track/icse-2018/mobilesoft-2018-papers" class="navigate"><strong>MobileSoft</strong> </a></li><li><a href="https://2018.techdebtconf.org" class="navigate"><strong>TechDebt</strong> </a></li><li class="dropdown-header">Co-hosted Symposia</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>SEAMS</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/home/seams-2018" class="navigate"><span class="glyphicon glyphicon-home"></span> SEAMS</a></li><li><a href="https://conf.researchr.org/track/seams-2018/seams-2018-papers" class="navigate"><strong>SEAMS</strong> </a></li></ul></li><li><a href="https://conf.researchr.org/track/icse-2018/seia-2018-papers" class="navigate"><strong>SEiA</strong> </a></li></ul></div></div></ul></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Organization <span class="caret"></span></a><ul class="block dropdown-menu multi-column columns-2"><div class="row"><div class="col-sm-6"><ul class="block multi-column-dropdown"><li class="dropdown-header">* ICSE 2018 * Committees</li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-organizing-committee" class="navigate">Organizing committee</a></li><li class="dropdown-header">Track Committees </li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>Technical Papers </strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-technical-papers-program-board" class="navigate">Program board</a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-technical-papers-program-committee" class="navigate">Program committee</a></li></ul></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-journal-first-papers-selection-committee" class="navigate"><strong>Journal first papers</strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-workshops-workshops-program-commitee" class="navigate"><strong>Workshops</strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-software-engineering-in-practice-program-committee" class="navigate"><strong>SEIP - Software Engineering in Practice</strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-software-engineering-education-and-training--seet" class="navigate"><strong>SEET - Software Engineering Education and Training </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-software-engineering-in-society-program-committee" class="navigate"><strong>SEIS - Software Engineering in Society </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-new-ideas-and-emerging-results-program-committee" class="navigate"><strong>NIER - New Ideas and Emerging Results </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-industry-forum-organising-committee" class="navigate"><strong>IF - Industry Forum</strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-demonstrations-demonstraions-porgram-committee" class="navigate"><strong>DEMO - Demonstrations </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-posters-posters-program-committee" class="navigate"><strong>Posters </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-doctoral-symposium-program-committee" class="navigate"><strong>DS - Doctoral Symposium </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-technical-briefings-program-committee" class="navigate"><strong>TB - Technical Briefings </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-acm-student-research-competition-program-committee" class="navigate"><strong>SRC - ACM Student Research Competition </strong></a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icse-2018-score-score-program-committee" class="navigate"><strong>SCORE</strong></a></li><li class="dropdown-header">Contributors</li><li><a href="https://conf.researchr.org/people-index/icse-2018" class="navigate"><span class="glyphicon glyphicon-search"></span><sup><span class="glyphicon glyphicon-user"></span></sup> People Index</a></li></ul></div><div class="col-sm-6"><ul class="block multi-column-dropdown"><li class="dropdown-header">Co-hosted Conferences</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>FormaliSE</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icse-2018/formalise-2018-papers-general-chairs" class="navigate">General Chairs</a></li><li><a href="https://conf.researchr.org/committee/icse-2018/formalise-2018-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICGSE</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icgse-2018/icgse-2018-organizing-committee" class="navigate">Organizing Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICPC</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-icpc-2018-organization-committee" class="navigate">ICPC 2018 Organization Committee</a></li><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-steering-committee" class="navigate">ICPC 2018 Steering Committee</a></li><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-technical-research-program-committee" class="navigate"><strong>Technical Research</strong></a></li><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-early-research-achievement-program-committee" class="navigate"><strong>Early Research Achievement</strong></a></li><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-tool-demonstration-program-committee" class="navigate"><strong>Tool Demonstration</strong></a></li><li><a href="https://conf.researchr.org/committee/icpc-2018/icpc-2018-industry-program-committee" class="navigate"><strong>Industry</strong></a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICSSP</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icse-2018/icssp-2018-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li><a href="https://conf.researchr.org/committee/icse-2018/icssp-2018-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>MSR</strong></a><ul class="block dropdown-menu"><li><a href="https://2018.msrconf.org/committee/msr-2018-organizing-committee" class="navigate">Organizing committee</a></li><li><a href="https://2018.msrconf.org/committee/msr-2018-papers-foss-award-committee" class="navigate"><strong>Technical Papers</strong> <small>FOSS Award Committee</small></a></li><li><a href="https://2018.msrconf.org/committee/msr-2018-papers-program-committee" class="navigate"><strong>Technical Papers</strong> <small>Program Committee</small></a></li><li><a href="https://2018.msrconf.org/committee/msr-2018-mining-challenge-mining-challenge-committee" class="navigate"><strong>Mining Challenge</strong></a></li><li><a href="https://2018.msrconf.org/committee/msr-2018-data-showcase-papers-data-showcase-committe" class="navigate"><strong>Data Showcase</strong></a></li><li><a href="https://2018.msrconf.org/committee/msr-2018-foss-award-foss-award" class="navigate"><strong>FOSS Award</strong></a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>MobileSoft</strong></a><ul class="block dropdown-menu"><li class="small"><a href="https://conf.researchr.org/track/icse-2018/mobilesoft-2018-papers" class="navigate"><span class="glyphicon glyphicon-home"></span> N/A - check homepage</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>TechDebt</strong></a><ul class="block dropdown-menu"><li><a href="https://2018.techdebtconf.org/committee/techdebt-2018-papers-organizing-committee" class="navigate">Organizing Committee</a></li></ul></li><li class="dropdown-header">Co-hosted Symposia</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>SEAMS</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/seams-2018/seams-2018-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li><a href="https://conf.researchr.org/committee/seams-2018/seams-2018-papers-program-committee" class="navigate">Program Committee</a></li><li><a href="https://conf.researchr.org/committee/seams-2018/seams-2018-papers-doctoral-projects-committee" class="navigate">Doctoral Projects Program Committee</a></li><li><a href="https://conf.researchr.org/committee/seams-2018/seams-2018-papers-artifact-evaluation-committee" class="navigate">Artifact Evaluation Committee</a></li><li><a href="https://conf.researchr.org/committee/seams-2018/seams-2018-papers-steering-committee" class="navigate">Steering Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>SEiA</strong></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/committee/icse-2018/seia-2018-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li><a href="https://conf.researchr.org/committee/icse-2018/seia-2018-papers-program-committee" class="navigate">Program Committee</a></li></ul></li></ul></div></div></ul></li><li><a href="https://conf.researchr.org/search/icse-2018//all" class="navigate"><span class="glyphicon glyphicon-search"></span><span class="hidden-sm"> Search</span></a></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle"><span class="hidden-sm">Series <span class="caret"></span></span><span title="Series" class="visible-sm"><span class="glyphicon glyphicon-repeat"></span> <span class="caret"></span></span></a><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/series/icse" class="navigate"><span class="glyphicon glyphicon-home"></span> Series</a></li><li><a href="https://conf.researchr.org/home/icse-2025" class="navigate">ICSE 2025</a></li><li><a href="https://conf.researchr.org/home/icse-2024" class="navigate">ICSE 2024</a></li><li><a href="https://conf.researchr.org/home/icse-2023" class="navigate">ICSE 2023</a></li><li><a href="https://conf.researchr.org/home/icse-2022" class="navigate">ICSE 2022</a></li><li><a href="https://2021.icse-conferences.org" class="navigate">ICSE 2021</a></li><li><a href="https://2020.icse-conferences.org" class="navigate">ICSE 2020</a></li><li><a href="https://2019.icse-conferences.org" class="navigate">ICSE 2019</a></li><li><span class="text-muted" style="margin-left: 2px;"><span class="glyphicon glyphicon-hand-right"></span> * ICSE 2018 *</span></li></ul></li></ul><div class="navbar-right"><ul class="block nav navbar-nav"><li><a href="https://conf.researchr.org/signin/icse-2018/https%3A%5Es%5Esconf.researchr.org%5Esprofile%5Esicse-2018%5Eschristiankroher" rel="nofollow" class="navigate">Sign in</a></li><li><a href="https://conf.researchr.org/signup/icse-2018" class="navigate">Sign up</a></li></ul></div></div></div></div><div id="content" class="container"><div class="page-header"><span class="text-muted small"><span class="glyphicon glyphicon-home"></span> <a href="https://conf.researchr.org/home/icse-2018" class="navigate">* ICSE 2018 *</a> (<a href="https://conf.researchr.org/series/icse" class="navigate">series</a>) / </span>Christian Kröher<span class="pull-right"><small><div class="btn-group"><button type="button" data-toggle="dropdown" class="btn btn-primary dropdown-toggle">* ICSE 2018 * profile <span class="caret"></span></button><ul class="block dropdown-menu"><li><a href="https://conf.researchr.org/profile/christiankroher" class="navigate">conf.research.org general profile</a></li><li><a href="https://conf.researchr.org/profile/icse-2023/christiankroher" class="navigate">ICSE 2023 profile</a></li><li><a href="https://2015.splashcon.org/profile/christiankroher" class="navigate">SPLASH 2015 profile</a></li></ul></div></small></span></div><div class="row"><div class="col-sm-4 col-lg-3"><img alt="Christian Kr&ouml;her" src="https://conf.researchr.org/getProfileImage/christiankroher/35848148-15f6-4942-b2a0-00a43354aa4e/small.jpg?1711625053000" class="outputimage thumbnail"/><p><small>Registered user since Thu 25 Jan 2018</small></p></div><div class="col-sm-8 col-lg-9"><div><div class="profile-item"><span class="profile-item-heading">Name:</span>Christian Kröher</div><div class="profile-item"><span class="profile-item-heading">Bio:</span><p><a href="https://sse.uni-hildesheim.de/en/staff/msc-christian-kroeher/" title="SSE Profile Page" rel="nofollow">Christian Kröher</a> is a researcher at the <a href="https://www.uni-hildesheim.de/en/" title="University of Hildesheim Homepage" rel="nofollow">University of Hildesheim</a> where he is a member of the <a href="https://sse.uni-hildesheim.de/en/" title="SSE Homepage" rel="nofollow">Software Systems Engineering (SSE) group</a>. He is active in the area of software product line engineering since 2008. His particular research focus in this area is on product line evolution and change-based variability defect detection. He published at international conferences, like the International Conference on Software Engineering (ICSE) or the Systems and Software Product Line Conference (SPLC), gaining presentation experience to international audience from research and industry. Christian Kröher received a master degree in information management and information technology from the University of Hildesheim.</p></div><div class="profile-item"><span class="profile-item-heading">Country:</span>Germany</div><div class="profile-item"><span class="profile-item-heading">Affiliation:</span>University of Hildesheim</div><div class="profile-item"><span class="profile-item-heading">Personal website:</span><a href="https://sse.uni-hildesheim.de/en/staff/msc-christian-kroeher/" target="_blank" class="navigate"><span class="glyphicon glyphicon-new-window"></span> https://sse.uni-hildesheim.de/en/staff/msc-christian-kroeher/</a></div><div class="profile-item"><span class="profile-item-heading">Research interests:</span>Software Product Line Engineering, Software Product Line Evolution, Variability Modelling, Variability Management</div></div><p><strong>Contributions</strong></p><div id="contributions-timeline"><div><div class="contribution-year"><h3>2018</h3><div><h4>ICSE</h4><ul class="block"><li><small title="Contributed Item" class="text-muted"><span class="label-default label"><span class="glyphicon glyphicon-file"></span></span></small> <a href="#" data-event-modal="3d98f222-630c-461c-ba58-76d291a3c22e">KernelHaven – An Experimentation Workbench for Analyzing Software Product Lines</a></li></ul></div></div></div></div><p><span class="glyphicon glyphicon-new-window"></span> <a href="https://conf.researchr.org/profile/christiankroher" target="_blank" class="navigate">Show activities from other conferences</a></p><div id="embedWidget" class="webdsl-placeholder"><div class="panel-group"><div class="panel"><div class="panel-heading clearfix"><span class="panel-title"><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/profile","embedProfileWidgetProfile_loadWidget1d78b0351177db9cad4bb6f06b7a0b837", [{"name":"context", "value":"icse-2018"},{"name":"pers", "value":"christiankroher"},],"", this.nextSibling, true,"1"); return false;'></button><a submitid="embedProfileWidgetProfile_loadWidget1d78b0351177db9cad4bb6f06b7a0b837" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" class="small btn btn-default"><span class="glyphicon glyphicon-share"></span> Share</a></span></div></div></div></div></div></div><div class="row"><div class="col-sm-12"><span class="pull-right"><span title="You're viewing a conference-specific profile, last updated Tue 19 Jun 2018" class="label-default label"><span class="glyphicon glyphicon-time"></span> * ICSE 2018 *-profile</span><br><small><a href="https://conf.researchr.org/profile/christiankroher" target="_blank" class="navigate">View general profile</a></small></span></div></div><div id="messages-placeholder" class="alert alert-warning" style="display:none;"><a data-dismiss="alert" class="close">x</a><em>Sun 1 Dec 11:46</em></div></div><div id="notifications-ph" class="webdsl-placeholder"></div><div id="event-modal-loader" class="webdsl-placeholder"><form name="form_131600131703c411e65b13378d08eb1f6672b5a0259" id="form_131600131703c411e65b13378d08eb1f6672b5a0259" action="https://conf.researchr.org/eventDetailsModalByAjaxConferenceEdition" accept-charset="UTF-8" method="POST" class="hidden"><input type="hidden" name="form_131600131703c411e65b13378d08eb1f6672b5a0259" value="1" /><input type="hidden" name="context" value="icse-2018" /><input name="ae03f7f6f951d515a297b161e922205d" type="text" value="" class="inputString form-control event-id-input"/><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/eventDetailsModalByAjaxConferenceEdition","eventDetailsModalByAjaxConferenceEdition_ia0_3c411e65b13378d08eb1f6672b5a0259", [{"name":"context", "value":"icse-2018"},],"form_131600131703c411e65b13378d08eb1f6672b5a0259", this.nextSibling, false,"event-modal-loader"); return false;'></button><a submitid="eventDetailsModalByAjaxConferenceEdition_ia0_3c411e65b13378d08eb1f6672b5a0259" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" id="load-modal-action"></a></form></div><div id="event-star-form" class="webdsl-placeholder"><form name="form_509860938088b48fd14544d4239b498a2cf339e02b" id="form_509860938088b48fd14544d4239b498a2cf339e02b" action="https://conf.researchr.org/eventStarByAjaxConferenceEdition" accept-charset="UTF-8" method="POST" class="hidden"><input type="hidden" name="form_509860938088b48fd14544d4239b498a2cf339e02b" value="1" /><input type="hidden" name="context" value="icse-2018" /><input name="a0b55aa29cf9431a9461b359872014e3" type="text" value="" class="inputString form-control event-id-input"/><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/eventStarByAjaxConferenceEdition","eventStarByAjaxConferenceEdition_ia0_88b48fd14544d4239b498a2cf339e02b", [{"name":"context", "value":"icse-2018"},],"form_509860938088b48fd14544d4239b498a2cf339e02b", this.nextSibling, false,"event-star-form"); return false;'></button><a submitid="eventStarByAjaxConferenceEdition_ia0_88b48fd14544d4239b498a2cf339e02b" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" id="star-event-action"></a></form></div><div id="event-modals" class="webdsl-placeholder"></div><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; addEventModalLoadOnClick(node); addStarredEventOnClick(node); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><footer class="footer"><div class="container"><div class="footer-box"><div class="row"><div class="col-sm-3"><h3><a href="https://conf.researchr.org/home/icse-2018" class="navigate"><span class="glyphicon glyphicon-home"></span> * ICSE 2018 *</a></h3><div><a href="https://conf.researchr.org/contact/icse-2018" class="navigate"><span class="glyphicon glyphicon-envelope"></span> contact form</a></div><hr/>using <a href="https://conf.researchr.org" class="navigate">conf.researchr.org</a> (<a href="http://yellowgrass.org/roadmap/conf.researchr.org" class="navigate">v1.67.1</a>)<br/><small><a href="https://conf.researchr.org/support/icse-2018" target="_blank" class="navigate"><span class="glyphicon glyphicon-question-sign"></span> Support page</a></small><br/><small></small></div><div class="col-sm-5"><div class="row"><div class="col-sm-6"><h4>Tracks</h4><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Keynotes" class="navigate">Plenary Sessions</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Technical-Papers" class="navigate">Technical Papers </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Journal-first-papers" class="navigate">Journal first papers</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Workshops" class="navigate">Workshops</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-in-Practice" class="navigate">SEIP - Software Engineering in Practice</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-Education-and-Training" class="navigate">SEET - Software Engineering Education and Training </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Software-Engineering-in-Society" class="navigate">SEIS - Software Engineering in Society </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-New-Ideas-and-Emerging-Results" class="navigate">NIER - New Ideas and Emerging Results </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Industry-Forum" class="navigate">IF - Industry Forum</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Demonstrations" class="navigate">DEMO - Demonstrations </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Posters" class="navigate">Posters </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Doctoral-Symposium" class="navigate">DS - Doctoral Symposium </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Technical-Briefings" class="navigate">TB - Technical Briefings </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-ACM-Student-Research-Competition" class="navigate">SRC - ACM Student Research Competition </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-SCORE" class="navigate">SCORE</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Student-Volunteers" class="navigate">Student Volunteers </a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Co-located-events" class="navigate">Co-located events</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-Double-blind-review" class="navigate">Submitting to ICSE2018: Q&amp;A</a><br/><a href="https://conf.researchr.org/track/icse-2018/icse-2018-2001-A-Space-Odyssey-Symposium-50-years-celebration" class="navigate">2001: A Space Odyssey Symposium - 50 years celebration</a></div><div class="col-sm-6"><h4>Co-hosted Conferences</h4><a href="https://conf.researchr.org/track/icse-2018/Formalise-2018-papers" class="navigate">FormaliSE 2018</a><br/><a href="https://conf.researchr.org/home/icgse-2018" class="navigate">ICGSE 2018</a><br/><a href="https://conf.researchr.org/home/icpc-2018" class="navigate">ICPC 2018</a><br/><a href="https://conf.researchr.org/track/icse-2018/icssp-2018-papers" class="navigate">ICSSP 2018</a><br/><a href="https://2018.msrconf.org" class="navigate">MSR 2018</a><br/><a href="https://conf.researchr.org/track/icse-2018/mobilesoft-2018-papers" class="navigate">MobileSoft 2018</a><br/><a href="https://2018.techdebtconf.org" class="navigate">TechDebt 2018</a><br/><h4>Co-hosted Symposia</h4><a href="https://conf.researchr.org/home/seams-2018" class="navigate">SEAMS 2018</a><br/><a href="https://conf.researchr.org/track/icse-2018/seia-2018-papers" class="navigate">SEiA 2018</a></div></div></div><div class="col-sm-2"><h4>Attending</h4><a href="https://conf.researchr.org/venue/icse-2018/GothiaTowers" class="navigate">Venue: Congress center Gothia Towers</a><br><a href="https://conf.researchr.org/attending/icse-2018/Registration" class="navigate">Registration</a><br><a href="https://conf.researchr.org/attending/icse-2018/accomodation" class="navigate">Accommodation, Hotels, Sharing rooms</a><br><a href="https://conf.researchr.org/attending/icse-2018/Gothenburg+and+Travel" class="navigate">Gothenburg</a><br><a href="https://conf.researchr.org/attending/icse-2018/Travel" class="navigate">Travel</a><br><a href="https://conf.researchr.org/attending/icse-2018/Travel+and+participation+support" class="navigate">Travel and participation support</a><br><a href="https://conf.researchr.org/attending/icse-2018/Social+Events" class="navigate">Social Events</a><br><a href="https://conf.researchr.org/attending/icse-2018/excursions-and-side-program" class="navigate">Excursions and Side Program</a><br><a href="https://conf.researchr.org/attending/icse-2018/Support+Opportunities+" class="navigate">Support Opportunities and Exibitions</a><br><a href="https://conf.researchr.org/attending/icse-2018/resources" class="navigate">Resources</a><br><a href="https://conf.researchr.org/attending/icse-2018/ICSE+Morning+Run" class="navigate">ICSE Morning Run</a><br><a href="https://conf.researchr.org/attending/icse-2018/football" class="navigate">Football</a><br><a href="https://conf.researchr.org/attending/icse-2018/Sponsors+and+Supporters" class="navigate">Sponsors and Supporters</a><br><a href="https://conf.researchr.org/attending/icse-2018/Lunch+and+Coffee+Break+menus" class="navigate">Lunch and Coffee Break menus</a><br><a href="https://conf.researchr.org/attending/icse-2018/Photos" class="navigate">Photos</a></div><div class="col-sm-2"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-9173762662508978", enable_page_level_ads: true }); </script> <style> .session-table em { display: none; } </style> <script> window.addEventListener("DOMContentLoaded", function(){ if(ga){ ga('create', 'UA-99655317-1', 'auto', 'customTracker'); ga('customTracker.send', 'pageview'); } else { (function(i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-99655317-1', 'auto', 'customTracker'); ga('customTracker.send', 'pageview'); } }); </script> <script> var sc_project = 11351328; var sc_invisible = 0; var sc_security = "5a337815"; </script> <script src="https://www.statcounter.com/counter/counter.js"></script> <script> /** * @license * Lo-Dash 2.4.1 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE * Build: `lodash modern -o ./dist/lodash.js` */ ;(function(){function n(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function t(t,e){var r=typeof e;if(t=t.l,"boolean"==r||null==e)return t[e]?0:-1;"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:m+e;return t=(t=t[r])&&t[u],"object"==r?t&&-1<n(t,e)?0:-1:t?0:-1}function e(n){var t=this.l,e=typeof n;if("boolean"==e||null==n)t[n]=true;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:m+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=true }}function r(n){return n.charCodeAt(0)}function u(n,t){for(var e=n.m,r=t.m,u=-1,o=e.length;++u<o;){var i=e[u],a=r[u];if(i!==a){if(i>a||typeof i=="undefined")return 1;if(i<a||typeof a=="undefined")return-1}}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],i=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&i&&typeof i=="object")return false;for(u=f(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=f(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function i(n){return"\\"+U[n] }function a(){return h.pop()||[]}function f(){return g.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}}function l(n){n.length=0,h.length<_&&h.push(n)}function c(n){var t=n.l;t&&c(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,g.length<_&&g.push(n)}function p(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function s(e){function h(n,t,e){if(!n||!V[typeof n])return n; t=t&&typeof e=="undefined"?t:tt(t,e,3);for(var r=-1,u=V[typeof n]&&Fe(n),o=u?u.length:0;++r<o&&(e=u[r],false!==t(n[e],e,n)););return n}function g(n,t,e){var r;if(!n||!V[typeof n])return n;t=t&&typeof e=="undefined"?t:tt(t,e,3);for(r in n)if(false===t(n[r],r,n))break;return n}function _(n,t,e){var r,u=n,o=u;if(!u)return o;for(var i=arguments,a=0,f=typeof e=="number"?2:i.length;++a<f;)if((u=i[a])&&V[typeof u])for(var l=-1,c=V[typeof u]&&Fe(u),p=c?c.length:0;++l<p;)r=c[l],"undefined"==typeof o[r]&&(o[r]=u[r]); return o}function U(n,t,e){var r,u=n,o=u;if(!u)return o;var i=arguments,a=0,f=typeof e=="number"?2:i.length;if(3<f&&"function"==typeof i[f-2])var l=tt(i[--f-1],i[f--],2);else 2<f&&"function"==typeof i[f-1]&&(l=i[--f]);for(;++a<f;)if((u=i[a])&&V[typeof u])for(var c=-1,p=V[typeof u]&&Fe(u),s=p?p.length:0;++c<s;)r=p[c],o[r]=l?l(o[r],u[r]):u[r];return o}function H(n){var t,e=[];if(!n||!V[typeof n])return e;for(t in n)me.call(n,t)&&e.push(t);return e}function J(n){return n&&typeof n=="object"&&!Te(n)&&me.call(n,"__wrapped__")?n:new Q(n) }function Q(n,t){this.__chain__=!!t,this.__wrapped__=n}function X(n){function t(){if(r){var n=p(r);be.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return wt(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return $e(t,n),t}function Z(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!wt(n))return n;var i=ce.call(n);if(!K[i])return n;var f=Ae[i];switch(i){case T:case F:return new f(+n);case W:case P:return new f(n);case z:return o=f(n.source,C.exec(n)),o.lastIndex=n.lastIndex,o }if(i=Te(n),t){var c=!r;r||(r=a()),u||(u=a());for(var s=r.length;s--;)if(r[s]==n)return u[s];o=i?f(n.length):{}}else o=i?p(n):U({},n);return i&&(me.call(n,"index")&&(o.index=n.index),me.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(i?St:h)(n,function(n,i){o[i]=Z(n,t,e,r,u)}),c&&(l(r),l(u)),o):o}function nt(n){return wt(n)?ke(n):{}}function tt(n,t,e){if(typeof n!="function")return Ut;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(De.funcNames&&(r=!n.name),r=r||!De.funcDecomp,!r)){var u=ge.call(n); De.funcNames||(r=!O.test(u)),r||(r=E.test(u),$e(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)}}return Mt(n,t)}function et(n){function t(){var n=f?i:this;if(u){var h=p(u);be.apply(h,arguments)}return(o||c)&&(h||(h=p(arguments)),o&&be.apply(h,o),c&&h.length<a)?(r|=16,et([e,s?r:-4&r,h,null,i,a])):(h||(h=arguments),l&&(e=n[v]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),wt(h)?h:n):e.apply(n,h)) }var e=n[0],r=n[1],u=n[2],o=n[3],i=n[4],a=n[5],f=1&r,l=2&r,c=4&r,s=8&r,v=e;return $e(t,n),t}function rt(e,r){var u=-1,i=st(),a=e?e.length:0,f=a>=b&&i===n,l=[];if(f){var p=o(r);p?(i=t,r=p):f=false}for(;++u<a;)p=e[u],0>i(r,p)&&l.push(p);return f&&c(r),l}function ut(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var i=n[r];if(i&&typeof i=="object"&&typeof i.length=="number"&&(Te(i)||yt(i))){t||(i=ut(i,t,e));var a=-1,f=i.length,l=o.length;for(o.length+=f;++a<f;)o[l++]=i[a]}else e||o.push(i)}return o }function ot(n,t,e,r,u,o){if(e){var i=e(n,t);if(typeof i!="undefined")return!!i}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&V[typeof n]||t&&V[typeof t]))return false;if(null==n||null==t)return n===t;var f=ce.call(n),c=ce.call(t);if(f==D&&(f=q),c==D&&(c=q),f!=c)return false;switch(f){case T:case F:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case z:case P:return n==oe(t)}if(c=f==$,!c){var p=me.call(n,"__wrapped__"),s=me.call(t,"__wrapped__");if(p||s)return ot(p?n.__wrapped__:n,s?t.__wrapped__:t,e,r,u,o); if(f!=q)return false;if(f=n.constructor,p=t.constructor,f!=p&&!(dt(f)&&f instanceof f&&dt(p)&&p instanceof p)&&"constructor"in n&&"constructor"in t)return false}for(f=!u,u||(u=a()),o||(o=a()),p=u.length;p--;)if(u[p]==n)return o[p]==t;var v=0,i=true;if(u.push(n),o.push(t),c){if(p=n.length,v=t.length,(i=v==p)||r)for(;v--;)if(c=p,s=t[v],r)for(;c--&&!(i=ot(n[c],s,e,r,u,o)););else if(!(i=ot(n[v],s,e,r,u,o)))break}else g(t,function(t,a,f){return me.call(f,a)?(v++,i=me.call(n,a)&&ot(n[a],t,e,r,u,o)):void 0}),i&&!r&&g(n,function(n,t,e){return me.call(e,t)?i=-1<--v:void 0 });return u.pop(),o.pop(),f&&(l(u),l(o)),i}function it(n,t,e,r,u){(Te(t)?St:h)(t,function(t,o){var i,a,f=t,l=n[o];if(t&&((a=Te(t))||Pe(t))){for(f=r.length;f--;)if(i=r[f]==t){l=u[f];break}if(!i){var c;e&&(f=e(l,t),c=typeof f!="undefined")&&(l=f),c||(l=a?Te(l)?l:[]:Pe(l)?l:{}),r.push(t),u.push(l),c||it(l,t,e,r,u)}}else e&&(f=e(l,t),typeof f=="undefined"&&(f=t)),typeof f!="undefined"&&(l=f);n[o]=l})}function at(n,t){return n+he(Re()*(t-n+1))}function ft(e,r,u){var i=-1,f=st(),p=e?e.length:0,s=[],v=!r&&p>=b&&f===n,h=u||v?a():s; for(v&&(h=o(h),f=t);++i<p;){var g=e[i],y=u?u(g,i,e):g;(r?!i||h[h.length-1]!==y:0>f(h,y))&&((u||v)&&h.push(y),s.push(g))}return v?(l(h.k),c(h)):u&&l(h),s}function lt(n){return function(t,e,r){var u={};e=J.createCallback(e,r,3),r=-1;var o=t?t.length:0;if(typeof o=="number")for(;++r<o;){var i=t[r];n(u,i,e(i,r,t),t)}else h(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function ct(n,t,e,r,u,o){var i=1&t,a=4&t,f=16&t,l=32&t;if(!(2&t||dt(n)))throw new ie;f&&!e.length&&(t&=-17,f=e=false),l&&!r.length&&(t&=-33,l=r=false); var c=n&&n.__bindData__;return c&&true!==c?(c=p(c),c[2]&&(c[2]=p(c[2])),c[3]&&(c[3]=p(c[3])),!i||1&c[1]||(c[4]=u),!i&&1&c[1]&&(t|=8),!a||4&c[1]||(c[5]=o),f&&be.apply(c[2]||(c[2]=[]),e),l&&we.apply(c[3]||(c[3]=[]),r),c[1]|=t,ct.apply(null,c)):(1==t||17===t?X:et)([n,t,e,r,u,o])}function pt(n){return Be[n]}function st(){var t=(t=J.indexOf)===Wt?n:t;return t}function vt(n){return typeof n=="function"&&pe.test(n)}function ht(n){var t,e;return n&&ce.call(n)==q&&(t=n.constructor,!dt(t)||t instanceof t)?(g(n,function(n,t){e=t }),typeof e=="undefined"||me.call(n,e)):false}function gt(n){return We[n]}function yt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ce.call(n)==D||false}function mt(n,t,e){var r=Fe(n),u=r.length;for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function bt(n){var t=[];return g(n,function(n,e){dt(n)&&t.push(e)}),t.sort()}function _t(n){for(var t=-1,e=Fe(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function dt(n){return typeof n=="function"}function wt(n){return!(!n||!V[typeof n]) }function jt(n){return typeof n=="number"||n&&typeof n=="object"&&ce.call(n)==W||false}function kt(n){return typeof n=="string"||n&&typeof n=="object"&&ce.call(n)==P||false}function xt(n){for(var t=-1,e=Fe(n),r=e.length,u=Xt(r);++t<r;)u[t]=n[e[t]];return u}function Ct(n,t,e){var r=-1,u=st(),o=n?n.length:0,i=false;return e=(0>e?Ie(0,o+e):e)||0,Te(n)?i=-1<u(n,t,e):typeof o=="number"?i=-1<(kt(n)?n.indexOf(t,e):u(n,t,e)):h(n,function(n){return++r<e?void 0:!(i=n===t)}),i}function Ot(n,t,e){var r=true;t=J.createCallback(t,e,3),e=-1; var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&(r=!!t(n[e],e,n)););else h(n,function(n,e,u){return r=!!t(n,e,u)});return r}function Nt(n,t,e){var r=[];t=J.createCallback(t,e,3),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}else h(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function It(n,t,e){t=J.createCallback(t,e,3),e=-1;var r=n?n.length:0;if(typeof r!="number"){var u;return h(n,function(n,e,r){return t(n,e,r)?(u=n,false):void 0}),u}for(;++e<r;){var o=n[e]; if(t(o,e,n))return o}}function St(n,t,e){var r=-1,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),typeof u=="number")for(;++r<u&&false!==t(n[r],r,n););else h(n,t);return n}function Et(n,t,e){var r=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),typeof r=="number")for(;r--&&false!==t(n[r],r,n););else{var u=Fe(n),r=u.length;h(n,function(n,e,o){return e=u?u[--r]:--r,t(o[e],e,o)})}return n}function Rt(n,t,e){var r=-1,u=n?n.length:0;if(t=J.createCallback(t,e,3),typeof u=="number")for(var o=Xt(u);++r<u;)o[r]=t(n[r],r,n); else o=[],h(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function At(n,t,e){var u=-1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Te(n)){e=-1;for(var i=n.length;++e<i;){var a=n[e];a>o&&(o=a)}}else t=null==t&&kt(n)?r:J.createCallback(t,e,3),St(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function Dt(n,t,e,r){if(!n)return e;var u=3>arguments.length;t=J.createCallback(t,r,4);var o=-1,i=n.length;if(typeof i=="number")for(u&&(e=n[++o]);++o<i;)e=t(e,n[o],o,n);else h(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o) });return e}function $t(n,t,e,r){var u=3>arguments.length;return t=J.createCallback(t,r,4),Et(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function Tt(n){var t=-1,e=n?n.length:0,r=Xt(typeof e=="number"?e:0);return St(n,function(n){var e=at(0,++t);r[t]=r[e],r[e]=n}),r}function Ft(n,t,e){var r;t=J.createCallback(t,e,3),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++e<u&&!(r=t(n[e],e,n)););else h(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function Bt(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1; for(t=J.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:v;return p(n,0,Se(Ie(0,r),u))}function Wt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?Ie(0,u+r):r||0}else if(r)return r=zt(t,e),t[r]===e?r:-1;return n(t,e,r)}function qt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;for(t=J.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:Ie(0,t);return p(n,r)}function zt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?J.createCallback(e,r,1):Ut,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r; return u}function Pt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=J.createCallback(e,r,3)),ft(n,t,e)}function Kt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?At(Ve(n,"length")):0,r=Xt(0>e?0:e);++t<e;)r[t]=Ve(n,t);return r}function Lt(n,t){var e=-1,r=n?n.length:0,u={};for(t||!r||Te(n[0])||(t=[]);++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Mt(n,t){return 2<arguments.length?ct(n,17,p(arguments,2),null,t):ct(n,1,null,null,t) }function Vt(n,t,e){function r(){c&&ve(c),i=c=p=v,(g||h!==t)&&(s=Ue(),a=n.apply(l,o),c||i||(o=l=null))}function u(){var e=t-(Ue()-f);0<e?c=_e(u,e):(i&&ve(i),e=p,i=c=p=v,e&&(s=Ue(),a=n.apply(l,o),c||i||(o=l=null)))}var o,i,a,f,l,c,p,s=0,h=false,g=true;if(!dt(n))throw new ie;if(t=Ie(0,t)||0,true===e)var y=true,g=false;else wt(e)&&(y=e.leading,h="maxWait"in e&&(Ie(t,e.maxWait)||0),g="trailing"in e?e.trailing:g);return function(){if(o=arguments,f=Ue(),l=this,p=g&&(c||!y),false===h)var e=y&&!c;else{i||y||(s=f);var v=h-(f-s),m=0>=v; m?(i&&(i=ve(i)),s=f,a=n.apply(l,o)):i||(i=_e(r,v))}return m&&c?c=ve(c):c||t===h||(c=_e(u,t)),e&&(m=true,a=n.apply(l,o)),!m||c||i||(o=l=null),a}}function Ut(n){return n}function Gt(n,t,e){var r=true,u=t&&bt(t);t&&(e||u.length)||(null==e&&(e=t),o=Q,t=n,n=J,u=bt(t)),false===e?r=false:wt(e)&&"chain"in e&&(r=e.chain);var o=n,i=dt(o);St(u,function(e){var u=n[e]=t[e];i&&(o.prototype[e]=function(){var t=this.__chain__,e=this.__wrapped__,i=[e];if(be.apply(i,arguments),i=u.apply(n,i),r||t){if(e===i&&wt(i))return this; i=new o(i),i.__chain__=t}return i})})}function Ht(){}function Jt(n){return function(t){return t[n]}}function Qt(){return this.__wrapped__}e=e?Y.defaults(G.Object(),e,Y.pick(G,A)):G;var Xt=e.Array,Yt=e.Boolean,Zt=e.Date,ne=e.Function,te=e.Math,ee=e.Number,re=e.Object,ue=e.RegExp,oe=e.String,ie=e.TypeError,ae=[],fe=re.prototype,le=e._,ce=fe.toString,pe=ue("^"+oe(ce).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),se=te.ceil,ve=e.clearTimeout,he=te.floor,ge=ne.prototype.toString,ye=vt(ye=re.getPrototypeOf)&&ye,me=fe.hasOwnProperty,be=ae.push,_e=e.setTimeout,de=ae.splice,we=ae.unshift,je=function(){try{var n={},t=vt(t=re.defineProperty)&&t,e=t(n,n,n)&&t }catch(r){}return e}(),ke=vt(ke=re.create)&&ke,xe=vt(xe=Xt.isArray)&&xe,Ce=e.isFinite,Oe=e.isNaN,Ne=vt(Ne=re.keys)&&Ne,Ie=te.max,Se=te.min,Ee=e.parseInt,Re=te.random,Ae={};Ae[$]=Xt,Ae[T]=Yt,Ae[F]=Zt,Ae[B]=ne,Ae[q]=re,Ae[W]=ee,Ae[z]=ue,Ae[P]=oe,Q.prototype=J.prototype;var De=J.support={};De.funcDecomp=!vt(e.a)&&E.test(s),De.funcNames=typeof ne.name=="string",J.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:N,variable:"",imports:{_:J}},ke||(nt=function(){function n(){}return function(t){if(wt(t)){n.prototype=t; var r=new n;n.prototype=null}return r||e.Object()}}());var $e=je?function(n,t){M.value=t,je(n,"__bindData__",M)}:Ht,Te=xe||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ce.call(n)==$||false},Fe=Ne?function(n){return wt(n)?Ne(n):[]}:H,Be={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},We=_t(Be),qe=ue("("+Fe(We).join("|")+")","g"),ze=ue("["+Fe(Be).join("")+"]","g"),Pe=ye?function(n){if(!n||ce.call(n)!=q)return false;var t=n.valueOf,e=vt(t)&&(e=ye(t))&&ye(e);return e?n==e||ye(n)==e:ht(n) }:ht,Ke=lt(function(n,t,e){me.call(n,e)?n[e]++:n[e]=1}),Le=lt(function(n,t,e){(me.call(n,e)?n[e]:n[e]=[]).push(t)}),Me=lt(function(n,t,e){n[e]=t}),Ve=Rt,Ue=vt(Ue=Zt.now)&&Ue||function(){return(new Zt).getTime()},Ge=8==Ee(d+"08")?Ee:function(n,t){return Ee(kt(n)?n.replace(I,""):n,t||0)};return J.after=function(n,t){if(!dt(t))throw new ie;return function(){return 1>--n?t.apply(this,arguments):void 0}},J.assign=U,J.at=function(n){for(var t=arguments,e=-1,r=ut(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Xt(t);++e<t;)u[e]=n[r[e]]; return u},J.bind=Mt,J.bindAll=function(n){for(var t=1<arguments.length?ut(arguments,true,false,1):bt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=ct(n[u],1,null,null,n)}return n},J.bindKey=function(n,t){return 2<arguments.length?ct(t,19,p(arguments,2),null,n):ct(t,3,null,null,n)},J.chain=function(n){return n=new Q(n),n.__chain__=true,n},J.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},J.compose=function(){for(var n=arguments,t=n.length;t--;)if(!dt(n[t]))throw new ie; return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},J.constant=function(n){return function(){return n}},J.countBy=Ke,J.create=function(n,t){var e=nt(n);return t?U(e,t):e},J.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);if("object"!=r)return Jt(n);var u=Fe(n),o=u[0],i=n[o];return 1!=u.length||i!==i||wt(i)?function(t){for(var e=u.length,r=false;e--&&(r=ot(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],i===n&&(0!==i||1/i==1/n) }},J.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,ct(n,4,null,null,null,t)},J.debounce=Vt,J.defaults=_,J.defer=function(n){if(!dt(n))throw new ie;var t=p(arguments,1);return _e(function(){n.apply(v,t)},1)},J.delay=function(n,t){if(!dt(n))throw new ie;var e=p(arguments,2);return _e(function(){n.apply(v,e)},t)},J.difference=function(n){return rt(n,ut(arguments,true,true,1))},J.filter=Nt,J.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Rt(n,e,r)),ut(n,t) },J.forEach=St,J.forEachRight=Et,J.forIn=g,J.forInRight=function(n,t,e){var r=[];g(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},J.forOwn=h,J.forOwnRight=mt,J.functions=bt,J.groupBy=Le,J.indexBy=Me,J.initial=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=J.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return p(n,0,Se(Ie(0,u-r),u))},J.intersection=function(){for(var e=[],r=-1,u=arguments.length,i=a(),f=st(),p=f===n,s=a();++r<u;){var v=arguments[r]; (Te(v)||yt(v))&&(e.push(v),i.push(p&&v.length>=b&&o(r?e[r]:s)))}var p=e[0],h=-1,g=p?p.length:0,y=[];n:for(;++h<g;){var m=i[0],v=p[h];if(0>(m?t(m,v):f(s,v))){for(r=u,(m||s).push(v);--r;)if(m=i[r],0>(m?t(m,v):f(e[r],v)))continue n;y.push(v)}}for(;u--;)(m=i[u])&&c(m);return l(i),l(s),y},J.invert=_t,J.invoke=function(n,t){var e=p(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,i=Xt(typeof o=="number"?o:0);return St(n,function(n){i[++r]=(u?t:n[t]).apply(n,e)}),i},J.keys=Fe,J.map=Rt,J.mapValues=function(n,t,e){var r={}; return t=J.createCallback(t,e,3),h(n,function(n,e,u){r[e]=t(n,e,u)}),r},J.max=At,J.memoize=function(n,t){function e(){var r=e.cache,u=t?t.apply(this,arguments):m+arguments[0];return me.call(r,u)?r[u]:r[u]=n.apply(this,arguments)}if(!dt(n))throw new ie;return e.cache={},e},J.merge=function(n){var t=arguments,e=2;if(!wt(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=p(arguments,1,e),u=-1,o=a(),i=a();++u<e;)it(n,t[u],r,o,i); return l(o),l(i),n},J.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Te(n)){e=-1;for(var i=n.length;++e<i;){var a=n[e];a<o&&(o=a)}}else t=null==t&&kt(n)?r:J.createCallback(t,e,3),St(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)});return o},J.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];g(n,function(n,t){u.push(t)});for(var u=rt(u,ut(arguments,true,false,1)),o=-1,i=u.length;++o<i;){var a=u[o];r[a]=n[a]}}else t=J.createCallback(t,e,3),g(n,function(n,e,u){t(n,e,u)||(r[e]=n) });return r},J.once=function(n){var t,e;if(!dt(n))throw new ie;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)}},J.pairs=function(n){for(var t=-1,e=Fe(n),r=e.length,u=Xt(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u},J.partial=function(n){return ct(n,16,p(arguments,1))},J.partialRight=function(n){return ct(n,32,null,p(arguments,1))},J.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=ut(arguments,true,false,1),i=wt(n)?o.length:0;++u<i;){var a=o[u];a in n&&(r[a]=n[a]) }else t=J.createCallback(t,e,3),g(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},J.pluck=Ve,J.property=Jt,J.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,i=t[e];++o<u;)n[o]===i&&(de.call(n,o--,1),u--);return n},J.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=Ie(0,se((t-n)/(e||1)));for(var u=Xt(t);++r<t;)u[r]=n,n+=e;return u},J.reject=function(n,t,e){return t=J.createCallback(t,e,3),Nt(n,function(n,e,r){return!t(n,e,r) })},J.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=J.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),de.call(n,r--,1),u--);return o},J.rest=qt,J.shuffle=Tt,J.sortBy=function(n,t,e){var r=-1,o=Te(t),i=n?n.length:0,p=Xt(typeof i=="number"?i:0);for(o||(t=J.createCallback(t,e,3)),St(n,function(n,e,u){var i=p[++r]=f();o?i.m=Rt(t,function(t){return n[t]}):(i.m=a())[0]=t(n,e,u),i.n=r,i.o=n}),i=p.length,p.sort(u);i--;)n=p[i],p[i]=n.o,o||l(n.m),c(n);return p},J.tap=function(n,t){return t(n),n },J.throttle=function(n,t,e){var r=true,u=true;if(!dt(n))throw new ie;return false===e?r=false:wt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),L.leading=r,L.maxWait=t,L.trailing=u,Vt(n,t,L)},J.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Xt(n);for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},J.toArray=function(n){return n&&typeof n.length=="number"?p(n):xt(n)},J.transform=function(n,t,e,r){var u=Te(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=J.createCallback(t,r,4),(u?St:h)(n,function(n,r,u){return t(e,n,r,u) })),e},J.union=function(){return ft(ut(arguments,true,true))},J.uniq=Pt,J.values=xt,J.where=Nt,J.without=function(n){return rt(n,p(arguments,1))},J.wrap=function(n,t){return ct(t,16,[n])},J.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var e=arguments[n];if(Te(e)||yt(e))var r=r?ft(rt(r,e).concat(rt(e,r))):e}return r||[]},J.zip=Kt,J.zipObject=Lt,J.collect=Rt,J.drop=qt,J.each=St,J.eachRight=Et,J.extend=U,J.methods=bt,J.object=Lt,J.select=Nt,J.tail=qt,J.unique=Pt,J.unzip=Kt,Gt(J),J.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Z(n,t,typeof e=="function"&&tt(e,r,1)) },J.cloneDeep=function(n,t,e){return Z(n,true,typeof t=="function"&&tt(t,e,1))},J.contains=Ct,J.escape=function(n){return null==n?"":oe(n).replace(ze,pt)},J.every=Ot,J.find=It,J.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=J.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},J.findKey=function(n,t,e){var r;return t=J.createCallback(t,e,3),h(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},J.findLast=function(n,t,e){var r;return t=J.createCallback(t,e,3),Et(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0 }),r},J.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=J.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},J.findLastKey=function(n,t,e){var r;return t=J.createCallback(t,e,3),mt(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},J.has=function(n,t){return n?me.call(n,t):false},J.identity=Ut,J.indexOf=Wt,J.isArguments=yt,J.isArray=Te,J.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ce.call(n)==T||false},J.isDate=function(n){return n&&typeof n=="object"&&ce.call(n)==F||false },J.isElement=function(n){return n&&1===n.nodeType||false},J.isEmpty=function(n){var t=true;if(!n)return t;var e=ce.call(n),r=n.length;return e==$||e==P||e==D||e==q&&typeof r=="number"&&dt(n.splice)?!r:(h(n,function(){return t=false}),t)},J.isEqual=function(n,t,e,r){return ot(n,t,typeof e=="function"&&tt(e,r,2))},J.isFinite=function(n){return Ce(n)&&!Oe(parseFloat(n))},J.isFunction=dt,J.isNaN=function(n){return jt(n)&&n!=+n},J.isNull=function(n){return null===n},J.isNumber=jt,J.isObject=wt,J.isPlainObject=Pe,J.isRegExp=function(n){return n&&typeof n=="object"&&ce.call(n)==z||false },J.isString=kt,J.isUndefined=function(n){return typeof n=="undefined"},J.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?Ie(0,r+e):Se(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},J.mixin=Gt,J.noConflict=function(){return e._=le,this},J.noop=Ht,J.now=Ue,J.parseInt=Ge,J.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Re(),Se(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):at(n,t) },J.reduce=Dt,J.reduceRight=$t,J.result=function(n,t){if(n){var e=n[t];return dt(e)?n[t]():e}},J.runInContext=s,J.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Fe(n).length},J.some=Ft,J.sortedIndex=zt,J.template=function(n,t,e){var r=J.templateSettings;n=oe(n||""),e=_({},e,r);var u,o=_({},e.imports,r.imports),r=Fe(o),o=xt(o),a=0,f=e.interpolate||S,l="__p+='",f=ue((e.escape||S).source+"|"+f.source+"|"+(f===N?x:S).source+"|"+(e.evaluate||S).source+"|$","g");n.replace(f,function(t,e,r,o,f,c){return r||(r=o),l+=n.slice(a,c).replace(R,i),e&&(l+="'+__e("+e+")+'"),f&&(u=true,l+="';"+f+";\n__p+='"),r&&(l+="'+((__t=("+r+"))==null?'':__t)+'"),a=c+t.length,t }),l+="';",f=e=e.variable,f||(e="obj",l="with("+e+"){"+l+"}"),l=(u?l.replace(w,""):l).replace(j,"$1").replace(k,"$1;"),l="function("+e+"){"+(f?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}";try{var c=ne(r,"return "+l).apply(v,o)}catch(p){throw p.source=l,p}return t?c(t):(c.source=l,c)},J.unescape=function(n){return null==n?"":oe(n).replace(qe,gt)},J.uniqueId=function(n){var t=++y;return oe(null==n?"":n)+t },J.all=Ot,J.any=Ft,J.detect=It,J.findWhere=It,J.foldl=Dt,J.foldr=$t,J.include=Ct,J.inject=Dt,Gt(function(){var n={};return h(J,function(t,e){J.prototype[e]||(n[e]=t)}),n}(),false),J.first=Bt,J.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=J.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:v;return p(n,Ie(0,u-r))},J.sample=function(n,t,e){return n&&typeof n.length!="number"&&(n=xt(n)),null==t||e?n?n[at(0,n.length-1)]:v:(n=Tt(n),n.length=Se(Ie(0,t),n.length),n) },J.take=Bt,J.head=Bt,h(J,function(n,t){var e="sample"!==t;J.prototype[t]||(J.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new Q(o,u):o})}),J.VERSION="2.4.1",J.prototype.chain=function(){return this.__chain__=true,this},J.prototype.toString=function(){return oe(this.__wrapped__)},J.prototype.value=Qt,J.prototype.valueOf=Qt,St(["join","pop","shift"],function(n){var t=ae[n];J.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments); return n?new Q(e,n):e}}),St(["push","reverse","sort","unshift"],function(n){var t=ae[n];J.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),St(["concat","slice","splice"],function(n){var t=ae[n];J.prototype[n]=function(){return new Q(t.apply(this.__wrapped__,arguments),this.__chain__)}}),J}var v,h=[],g=[],y=0,m=+new Date+"",b=75,_=40,d=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",w=/\b__p\+='';/g,j=/\b(__p\+=)''\+/g,k=/(__e\(.*?\)|\b__t\))\+'';/g,x=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,C=/\w*$/,O=/^\s*function[ \n\r\t]+\w/,N=/<%=([\s\S]+?)%>/g,I=RegExp("^["+d+"]*0+(?=.$)"),S=/($^)/,E=/\bthis\b/,R=/['\n\r\t\u2028\u2029\\]/g,A="Array Boolean Date Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setTimeout".split(" "),D="[object Arguments]",$="[object Array]",T="[object Boolean]",F="[object Date]",B="[object Function]",W="[object Number]",q="[object Object]",z="[object RegExp]",P="[object String]",K={}; K[B]=false,K[D]=K[$]=K[T]=K[F]=K[W]=K[q]=K[z]=K[P]=true;var L={leading:false,maxWait:0,trailing:false},M={configurable:false,enumerable:false,value:null,writable:false},V={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},U={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},G=V[typeof window]&&window||this,H=V[typeof exports]&&exports&&!exports.nodeType&&exports,J=V[typeof module]&&module&&!module.nodeType&&module,Q=J&&J.exports===H&&H,X=V[typeof global]&&global;!X||X.global!==X&&X.window!==X||(G=X); var Y=s();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(G._=Y, define(function(){return Y})):H&&J?Q?(J.exports=Y)._=Y:H._=Y:G._=Y}).call(this); </script> <script> !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;f<g;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&m<10&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),Math.abs(b)>1?c:d}var f=[],g=[],h={precision:100,elapse:!1,defer:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",d:"daysToWeek",w:"weeks",W:"weeksToMonth",H:"hours",M:"minutes",S:"seconds",D:"totalDays",I:"totalHours",N:"totalMinutes",T:"totalSeconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.options.defer===!1&&this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&b<0?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),weeksToMonth:Math.floor(this.totalSecsLeft/60/60/24/7)%4,months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear()),totalDays:Math.floor(this.totalSecsLeft/60/60/24),totalHours:Math.floor(this.totalSecsLeft/60/60),totalMinutes:Math.floor(this.totalSecsLeft/60),totalSeconds:this.totalSecsLeft},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}}); </script> <script type="text/template" id="countdown-template"> <div class="time <%= label %>"> <span class="count curr top"><%= curr %></span> <span class="count next top"><%= next %></span> <span class="count next bottom"><%= next %></span> <span class="count curr bottom"><%= curr %></span> <span class="label"><%= label %></span> </div> </script> <script type="text/template" id="countdown-container-template"> <div id="icse-2018-countdown"> <label class="next-icse-label">ICSE 2018 starts in: </label> <div class="countdown-container"></div> </div> </script> <script> try { $(window).on('load', function() { if(document.location.href.indexOf("countdown") === -1) { return; } var $targetHeader = $("#content > .row .row h3").first(); if($targetHeader.length !== 1 || $targetHeader.text()){ return; } $targetHeader.after($("#countdown-container-template").text()); var labels = ['months', 'days', 'hours', 'min', 'sec'], targetDate = '2018/05/27', template = _.template($('#countdown-template').html()), currDate = '00:00:00:00:00', nextDate = '00:00:00:00:00', parser = /([0-9]{2})/gi, $example = $('#icse-2018-countdown > .countdown-container'); // Parse countdown string to an object function strfobj(str) { var parsed = str.match(parser), obj = {}; labels.forEach(function(label, i) { obj[label] = parsed[i] }); return obj; } // Return the time components that diffs function diff(obj1, obj2) { var diff = []; labels.forEach(function(key) { if (obj1[key] !== obj2[key]) { diff.push(key); } }); return diff; } // Build the layout var initData = strfobj(currDate); labels.forEach(function(label, i) { $example.append(template({ curr: initData[label], next: initData[label], label: label })); }); // Starts the countdown $example.countdown(targetDate, function(event) { var newDate = event.strftime('%m:%d:%H:%M:%S'), data; if (newDate !== nextDate) { currDate = nextDate; nextDate = newDate; // Setup the data data = { 'curr': strfobj(currDate), 'next': strfobj(nextDate) }; // Apply the new values to each node that changed diff(data.curr, data.next).forEach(function(label) { var selector = '.%s'.replace(/%s/, label), $node = $example.find(selector); // Update the node $node.removeClass('flip'); $node.find('.curr').text(data.curr[label]); $node.find('.next').text(data.next[label]); // Wait for a repaint to then flip _.delay(function($node) { $node.addClass('flip'); }, 50, $node); }); } }); }); } catch(e){ console.log("Error with counter", e); } </script></div></div></div></div></footer></div><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; var defaultplacement = $(document).scrollLeft() > 100 ? 'auto left' : 'auto top'; $(node).find('[title]').tooltip({placement: function(tt, elem){ var attval = elem.getAttribute('data-placement'); return attval ? attval : defaultplacement; }, container: false, sanitize: false}); $('.tooltip.fade.in, .ui-tooltip-content').remove(); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><script type="text/javascript">jQuery(document).ready(function($) { $(".clickable-row").click(function() { var href = $(this).attr("href"); if( window.location.href.indexOf( href ) < 0 ){ if ($(this).hasClass('new-window') ){ window.open( href ); } else { window.document.location = href; } } }); }); </script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10