diff --git a/HEAD/ghpages.sh b/HEAD/ghpages.sh new file mode 100644 index 0000000000..e1063ce328 --- /dev/null +++ b/HEAD/ghpages.sh @@ -0,0 +1,54 @@ +#!/bin/bash -x + +git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'` + +if ! (git remote set-branches --add origin gh-pages && git fetch -q); then + echo "No gh-pages, so not syncing" + exit 0 +fi + +if ! [ -d docs/target/generated-docs ]; then + echo "No gh-pages sources in docs/target/generated-docs, so not syncing" + exit 0 +fi + +# Find name of current branch +################################################################### +branch=$TRAVIS_BRANCH +[ "$branch" == "" ] && branch=`git rev-parse --abbrev-ref HEAD` +target=. +if [ "$branch" != "master" ]; then target=./$branch; mkdir -p $target; fi + +# Stash any outstanding changes +################################################################### +git diff-index --quiet HEAD +dirty=$? +if [ "$dirty" != "0" ]; then git stash; fi + +# Switch to gh-pages branch to sync it with current branch +################################################################### +git checkout gh-pages + +for f in docs/target/generated-docs/*; do + file=${f#docs/target/generated-docs/*} + if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then + # Not ignored... + cp -rf $f $target + git add -A $target/$file + fi +done + +git add -A README.adoc || echo "No change to README.adoc" +git commit -a -m "Sync docs from $branch to gh-pages" || echo "Nothing committed" + +# Uncomment the following push if you want to auto push to +# the gh-pages branch whenever you commit to branch locally. +# This is a little extreme. Use with care! +################################################################### +git push origin gh-pages || echo "Cannot push gh-pages" + +# Finally, switch back to the current branch and exit block +git checkout $branch +if [ "$dirty" != "0" ]; then git stash pop; fi + +exit 0 diff --git a/HEAD/images/Deps.png b/HEAD/images/Deps.png new file mode 100644 index 0000000000..1426814308 Binary files /dev/null and b/HEAD/images/Deps.png differ diff --git a/HEAD/images/Stubs1.png b/HEAD/images/Stubs1.png new file mode 100644 index 0000000000..ebadfdb910 Binary files /dev/null and b/HEAD/images/Stubs1.png differ diff --git a/HEAD/images/Stubs2.png b/HEAD/images/Stubs2.png new file mode 100644 index 0000000000..e4bad24987 Binary files /dev/null and b/HEAD/images/Stubs2.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/complex-content.html b/HEAD/spring-cloud-contract-maven-plugin/complex-content.html new file mode 100644 index 0000000000..63808b715e --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/complex-content.html @@ -0,0 +1,260 @@ + + + + + + + + + Spring Cloud Contract Verifier Maven Plugin – + + + + + + + + + + + + + + + + + Fork me on GitHub + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

More Complex Plugin Configuration

+
+
+

Sample more complex configuration for Java Project with JUnit tests.

+
+
+

Project configuration for Spring Cloud Contract Verifier with JUnit tests and stub publishing

+
+
+
Unresolved directive in <stdin> - include::{root_folder}/src/test/projects/complex-configuration/pom.xml[tags=plugin]
+
+
+
+
+

Base Test class

+
+
+
Unresolved directive in <stdin> - include::{root_folder}/src/test/projects/complex-configuration/src/test/java/com/blogspot/toomuchcoding/frauddetection/BaseAccurest.java[]
+
+
+
+
+

Sample additional matcher

+
+
+
Unresolved directive in <stdin> - include::{root_folder}/src/test/projects/complex-configuration/src/test/java/com/blogspot/toomuchcoding/frauddetection/matchers/CustomMatchers.java[]
+
+
+
+
+

Sample contract using matcher

+
+
+
Unresolved directive in <stdin> - include::{root_folder}/src/test/projects/complex-configuration/src/test/contracts/shouldMarkClientAsNotFraud.groovy[]
+
+
+
+ +
+
+
+
+
+ +
+ + + + diff --git a/HEAD/spring-cloud-contract-maven-plugin/complex.html b/HEAD/spring-cloud-contract-maven-plugin/complex.html new file mode 100644 index 0000000000..bef69f767d --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/complex.html @@ -0,0 +1,393 @@ + + + + + + + + + Spring Cloud Contract Verifier Maven Plugin – + + + + + + + + + + + + + + + + + Fork me on GitHub + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

More Complex Plugin Configuration

+
+
+

Sample more complex configuration for Java Project with JUnit tests.

+
+
+

Project configuration for Spring Cloud Contract Verifier with JUnit tests and stub publishing

+
+
+
            <plugin>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-contract-maven-plugin</artifactId>
+                <version>${spring-cloud-verifier-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>convert</goal>
+                            <goal>generateStubs</goal>
+                            <goal>generateTests</goal>
+                        </goals>
+                        <configuration>
+                            <contractsDirectory>src/test/accurest</contractsDirectory>
+                            <basePackageForTests>com.blogspot.toomuchcoding.frauddetection</basePackageForTests>
+                            <testMode>MOCKMVC</testMode>
+                            <testFramework>JUNIT</testFramework>
+                            <classifier>stubs</classifier>
+                            <nameSuffixForTests>Test</nameSuffixForTests>
+                            <ruleClassForTests>org.junit.rules.ErrorCollector</ruleClassForTests>
+                            <staticImports>
+                                <staticImport>com.blogspot.toomuchcoding.frauddetection.matchers.CustomMatchers.*</staticImport>
+                            </staticImports>
+                            <imports>
+                                <import>com.blogspot.toomuchcoding.frauddetection.matchers.CustomMatchers</import>
+                            </imports>
+                            <ignoredFiles>
+                                <ignoredFile>broken**</ignoredFile>
+                            </ignoredFiles>
+                            <excludedFiles>
+                                <param>shouldMarkClientAsFraud.groovy</param>
+                            </excludedFiles>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <baseClassForTests>com.blogspot.toomuchcoding.frauddetection.BaseAccurest</baseClassForTests>
+                </configuration>
+            </plugin>
+
+
+
+
+

Base Test class

+
+
+
/**
+ *
+ *  Copyright 2013-2016 the original author or authors.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package com.blogspot.toomuchcoding.frauddetection;
+
+import com.jayway.restassured.module.mockmvc.RestAssuredMockMvc;
+
+import org.junit.Before;
+
+public class BaseAccurest {
+
+        @Before
+        public void setup() {
+                RestAssuredMockMvc.standaloneSetup(new FraudDetectionController());
+        }
+
+}
+
+
+
+
+

Sample additional matcher

+
+
+
/**
+ *
+ *  Copyright 2013-2016 the original author or authors.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package com.blogspot.toomuchcoding.frauddetection.matchers;
+
+import org.junit.Assert;
+
+public class CustomMatchers {
+
+        public static void assertThatRejectionReasonIsNull(String rejectionReason) {
+                Assert.assertNull(rejectionReason);
+        }
+
+}
+
+
+
+
+

Sample contract using matcher

+
+
+
/**
+ *
+ *  Copyright 2013-2016 the original author or authors.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+org.springframework.cloud.contract.spec.Contract.make {
+                                request {
+                                        method 'PUT'
+                                        url '/fraudcheck'
+                                        body("""
+                                                {
+                                                "clientPesel":"${value(consumer(regex('[0-9]{10}')), producer('1234567890'))}",
+                                                "loanAmount":123.123
+                                                }
+                                        """
+                                        )
+                                        headers {
+                                                header('Content-Type', 'application/vnd.fraud.v1+json')
+                                        }
+
+                                }
+                        response {
+                                status 200
+                                body(
+                                                fraudCheckStatus: "OK",
+                                                rejectionReason: $(consumer(null), producer(execute('assertThatRejectionReasonIsNull($it)')))
+                                )
+                                headers {
+                                         header('Content-Type': 'application/vnd.fraud.v1+json')
+                                }
+                        }
+
+}
+
+
+
+ +
+
+
+
+
+ +
+ + + + diff --git a/HEAD/spring-cloud-contract-maven-plugin/css/apache-maven-fluido-1.5.min.css b/HEAD/spring-cloud-contract-maven-plugin/css/apache-maven-fluido-1.5.min.css new file mode 100644 index 0000000000..38762711a3 --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/css/apache-maven-fluido-1.5.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eeeeee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #dddddd #eee #eeeeee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eeeeee #eee #dddddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(https://cse.google.com/cse/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.9em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/HEAD/spring-cloud-contract-maven-plugin/css/print.css b/HEAD/spring-cloud-contract-maven-plugin/css/print.css new file mode 100644 index 0000000000..46c5e8109d --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/css/print.css @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* $Id: print.css 1201871 2011-11-14 20:18:24Z simonetripodi $ */ + +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;} +#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important} diff --git a/HEAD/spring-cloud-contract-maven-plugin/css/site.css b/HEAD/spring-cloud-contract-maven-plugin/css/site.css new file mode 100644 index 0000000000..055e7e286a --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.eot b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000..af587a81a8 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.eot differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.svg b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000000..c8f06d9a47 --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.ttf b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000..8681f1ecd1 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.ttf differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.woff b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000000..1e69f48900 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/fonts/glyphicons-halflings-regular.woff differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/accessories-text-editor.png b/HEAD/spring-cloud-contract-maven-plugin/images/accessories-text-editor.png new file mode 100644 index 0000000000..abc3366eda Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/accessories-text-editor.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/add.gif b/HEAD/spring-cloud-contract-maven-plugin/images/add.gif new file mode 100644 index 0000000000..1cb3dbf936 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/add.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/apache-maven-project-2.png b/HEAD/spring-cloud-contract-maven-plugin/images/apache-maven-project-2.png new file mode 100644 index 0000000000..a44db6ed08 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/apache-maven-project-2.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/application-certificate.png b/HEAD/spring-cloud-contract-maven-plugin/images/application-certificate.png new file mode 100644 index 0000000000..cc6aff616f Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/application-certificate.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/contact-new.png b/HEAD/spring-cloud-contract-maven-plugin/images/contact-new.png new file mode 100644 index 0000000000..ebc4316d84 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/contact-new.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/document-properties.png b/HEAD/spring-cloud-contract-maven-plugin/images/document-properties.png new file mode 100644 index 0000000000..34c2409a7c Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/document-properties.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/drive-harddisk.png b/HEAD/spring-cloud-contract-maven-plugin/images/drive-harddisk.png new file mode 100644 index 0000000000..d7ce475f83 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/drive-harddisk.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/fix.gif b/HEAD/spring-cloud-contract-maven-plugin/images/fix.gif new file mode 100644 index 0000000000..b7eb3dc442 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/fix.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/icon_error_sml.gif b/HEAD/spring-cloud-contract-maven-plugin/images/icon_error_sml.gif new file mode 100644 index 0000000000..12e9a01a93 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/icon_error_sml.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/icon_help_sml.gif b/HEAD/spring-cloud-contract-maven-plugin/images/icon_help_sml.gif new file mode 100644 index 0000000000..aaf20e6eea Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/icon_help_sml.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/icon_info_sml.gif b/HEAD/spring-cloud-contract-maven-plugin/images/icon_info_sml.gif new file mode 100644 index 0000000000..b776326703 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/icon_info_sml.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/icon_success_sml.gif b/HEAD/spring-cloud-contract-maven-plugin/images/icon_success_sml.gif new file mode 100644 index 0000000000..0a195279b3 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/icon_success_sml.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/icon_warning_sml.gif b/HEAD/spring-cloud-contract-maven-plugin/images/icon_warning_sml.gif new file mode 100644 index 0000000000..ac6ad6ada3 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/icon_warning_sml.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/image-x-generic.png b/HEAD/spring-cloud-contract-maven-plugin/images/image-x-generic.png new file mode 100644 index 0000000000..ab49efb345 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/image-x-generic.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/internet-web-browser.png b/HEAD/spring-cloud-contract-maven-plugin/images/internet-web-browser.png new file mode 100644 index 0000000000..307d6aca61 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/internet-web-browser.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-black.png b/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-black.png new file mode 100644 index 0000000000..919fd0f66a Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-black.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-white.png b/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-white.png new file mode 100644 index 0000000000..7d44c9c2e5 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/logos/build-by-maven-white.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/logos/maven-feather.png b/HEAD/spring-cloud-contract-maven-plugin/images/logos/maven-feather.png new file mode 100644 index 0000000000..b5ada836e9 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/logos/maven-feather.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/network-server.png b/HEAD/spring-cloud-contract-maven-plugin/images/network-server.png new file mode 100644 index 0000000000..1d12e1938a Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/network-server.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/package-x-generic.png b/HEAD/spring-cloud-contract-maven-plugin/images/package-x-generic.png new file mode 100644 index 0000000000..8b7e9e67b5 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/package-x-generic.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/profiles/pre-release.png b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/pre-release.png new file mode 100644 index 0000000000..d448e850cd Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/pre-release.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/profiles/retired.png b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/retired.png new file mode 100644 index 0000000000..f89f6a29c6 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/retired.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/profiles/sandbox.png b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/sandbox.png new file mode 100644 index 0000000000..f88b362676 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/profiles/sandbox.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/remove.gif b/HEAD/spring-cloud-contract-maven-plugin/images/remove.gif new file mode 100644 index 0000000000..fc65631cad Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/remove.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/rss.png b/HEAD/spring-cloud-contract-maven-plugin/images/rss.png new file mode 100644 index 0000000000..a9850ee2cd Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/rss.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/update.gif b/HEAD/spring-cloud-contract-maven-plugin/images/update.gif new file mode 100644 index 0000000000..b2a6d0bf63 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/update.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/images/window-new.png b/HEAD/spring-cloud-contract-maven-plugin/images/window-new.png new file mode 100644 index 0000000000..0e12ef954c Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/images/window-new.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings-white.png b/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000..3bf6484a29 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings-white.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings.png b/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings.png new file mode 100644 index 0000000000..a996999320 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/img/glyphicons-halflings.png differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/index.html b/HEAD/spring-cloud-contract-maven-plugin/index.html new file mode 100644 index 0000000000..512f053728 --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/index.html @@ -0,0 +1,229 @@ + + + + + + + + + Spring Cloud Contract Verifier Maven Plugin – + + + + + + + + + + + + + + + + + Fork me on GitHub + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +

Spring Cloud Contract Verifier Maven Plugin

+
+

Just to make long story short - Spring Cloud Contract Verifier is a tool that enables Consumer Driven Contract (CDC) development of JVM-based applications.

+
+
+
    +
  • +

    Stubs mappings to be used by WireMock when doing integration testing on the client code (client tests).

    +
  • +
  • +

    Acceptance tests used to verify if server-side implementation of the API is compliant with the contract (server tests).

    +
  • +
+
+
+

Spring Cloud Contract Verifier moves TDD to the level of software architecture.

+
+
+
+
+ +
+ + + + diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchfc.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchfc.gif new file mode 100644 index 0000000000..989b46d304 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchfc.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchnc.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchnc.gif new file mode 100644 index 0000000000..1933e07c37 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchnc.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchpc.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchpc.gif new file mode 100644 index 0000000000..cbf711b703 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/branchpc.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/bundle.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/bundle.gif new file mode 100644 index 0000000000..fca9c53e62 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/bundle.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/class.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/class.gif new file mode 100644 index 0000000000..eb348fb0d4 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/class.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/down.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/down.gif new file mode 100644 index 0000000000..440a14db74 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/down.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/greenbar.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/greenbar.gif new file mode 100644 index 0000000000..0ba6567253 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/greenbar.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/group.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/group.gif new file mode 100644 index 0000000000..a4ea580d27 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/group.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/method.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/method.gif new file mode 100644 index 0000000000..7d24707ee8 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/method.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/package.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/package.gif new file mode 100644 index 0000000000..131c28da40 Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/package.gif differ diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.css b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.css new file mode 100644 index 0000000000..be5166e0fc --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.css @@ -0,0 +1,13 @@ +/* Pretty printing styles. Used with prettify.js. */ + +.str { color: #2A00FF; } +.kwd { color: #7F0055; font-weight:bold; } +.com { color: #3F5FBF; } +.typ { color: #606; } +.lit { color: #066; } +.pun { color: #660; } +.pln { color: #000; } +.tag { color: #008; } +.atn { color: #606; } +.atv { color: #080; } +.dec { color: #606; } diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.js b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.js new file mode 100644 index 0000000000..ab2788211d --- /dev/null +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/prettify.js @@ -0,0 +1,1510 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

+ * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 8;
    +
    +/** Walks the DOM returning a properly escaped version of innerHTML.
    +  * @param {Node} node
    +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    +  */
    +window['PR_normalizedHtml']
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +  = window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    +window['_pr_isIE6'] = function () {
    +  var ieVersion = navigator && navigator.userAgent &&
    +      navigator.userAgent.match(/\bMSIE ([678])\./);
    +  ieVersion = ieVersion ? +ieVersion[1] : false;
    +  window['_pr_isIE6'] = function () { return ieVersion; };
    +  return ieVersion;
    +};
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  // Define regexps here so that the interpreter doesn't have to create an
    +  // object each time the function containing them is called.
    +  // The language spec requires a new object created even if you don't access
    +  // the $1 members.
    +  var pr_amp = /&/g;
    +  var pr_lt = /</g;
    +  var pr_gt = />/g;
    +  var pr_quot = /\"/g;
    +  /** like textToHtml but escapes double quotes to be attribute safe. */
    +  function attribToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;')
    +        .replace(pr_quot, '&quot;');
    +  }
    +
    +  /** escapest html special characters to html. */
    +  function textToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;');
    +  }
    +
    +
    +  var pr_ltEnt = /&lt;/g;
    +  var pr_gtEnt = /&gt;/g;
    +  var pr_aposEnt = /&apos;/g;
    +  var pr_quotEnt = /&quot;/g;
    +  var pr_ampEnt = /&amp;/g;
    +  var pr_nbspEnt = /&nbsp;/g;
    +  /** unescapes html to plain text. */
    +  function htmlToText(html) {
    +    var pos = html.indexOf('&');
    +    if (pos < 0) { return html; }
    +    // Handle numeric entities specially.  We can't use functional substitution
    +    // since that doesn't work in older versions of Safari.
    +    // These should be rare since most browsers convert them to normal chars.
    +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    +      var end = html.indexOf(';', pos);
    +      if (end >= 0) {
    +        var num = html.substring(pos + 3, end);
    +        var radix = 10;
    +        if (num && num.charAt(0) === 'x') {
    +          num = num.substring(1);
    +          radix = 16;
    +        }
    +        var codePoint = parseInt(num, radix);
    +        if (!isNaN(codePoint)) {
    +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    +                  html.substring(end + 1));
    +        }
    +      }
    +    }
    +
    +    return html.replace(pr_ltEnt, '<')
    +        .replace(pr_gtEnt, '>')
    +        .replace(pr_aposEnt, "'")
    +        .replace(pr_quotEnt, '"')
    +        .replace(pr_nbspEnt, ' ')
    +        .replace(pr_ampEnt, '&');
    +  }
    +
    +  /** is the given node's innerHTML normally unescaped? */
    +  function isRawContent(node) {
    +    return 'XMP' === node.tagName;
    +  }
    +
    +  var newlineRe = /[\r\n]/g;
    +  /**
    +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    +   */
    +  function isPreformatted(node, content) {
    +    // PRE means preformatted, and is a very common case, so don't create
    +    // unnecessary computed style objects.
    +    if ('PRE' === node.tagName) { return true; }
    +    if (!newlineRe.test(content)) { return true; }  // Don't care
    +    var whitespace = '';
    +    // For disconnected nodes, IE has no currentStyle.
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      // Firefox makes a best guess if node is disconnected whereas Safari
    +      // returns the empty string.
    +      whitespace = window.getComputedStyle(node, null).whiteSpace;
    +    }
    +    return !whitespace || whitespace === 'pre';
    +  }
    +
    +  function normalizedHtml(node, out, opt_sortAttrs) {
    +    switch (node.nodeType) {
    +      case 1:  // an element
    +        var name = node.tagName.toLowerCase();
    +
    +        out.push('<', name);
    +        var attrs = node.attributes;
    +        var n = attrs.length;
    +        if (n) {
    +          if (opt_sortAttrs) {
    +            var sortedAttrs = [];
    +            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
    +            sortedAttrs.sort(function (a, b) {
    +                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
    +              });
    +            attrs = sortedAttrs;
    +          }
    +          for (var i = 0; i < n; ++i) {
    +            var attr = attrs[i];
    +            if (!attr.specified) { continue; }
    +            out.push(' ', attr.name.toLowerCase(),
    +                     '="', attribToHtml(attr.value), '"');
    +          }
    +        }
    +        out.push('>');
    +        for (var child = node.firstChild; child; child = child.nextSibling) {
    +          normalizedHtml(child, out, opt_sortAttrs);
    +        }
    +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    +          out.push('<\/', name, '>');
    +        }
    +        break;
    +      case 3: case 4: // text
    +        out.push(textToHtml(node.nodeValue));
    +        break;
    +    }
    +  }
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union o the sets o strings matched d by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +
    +      // Expand letters to groupts to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +
    +      return parts.join('');
    +    }
    +
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +  var PR_innerHtmlWorks = null;
    +  function getInnerHtml(node) {
    +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    +    // an html description of well formed XML and the containing tag is a PRE
    +    // tag, so we detect that case and emulate innerHTML.
    +    if (null === PR_innerHtmlWorks) {
    +      var testNode = document.createElement('PRE');
    +      testNode.appendChild(
    +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    +    }
    +
    +    if (PR_innerHtmlWorks) {
    +      var content = node.innerHTML;
    +      // XMP tags contain unescaped entities so require special handling.
    +      if (isRawContent(node)) {
    +        content = textToHtml(content);
    +      } else if (!isPreformatted(node, content)) {
    +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    +      }
    +      return content;
    +    }
    +
    +    var out = [];
    +    for (var child = node.firstChild; child; child = child.nextSibling) {
    +      normalizedHtml(child, out);
    +    }
    +    return out.join('');
    +  }
    +
    +  /** returns a function that expand tabs to spaces.  This function can be fed
    +    * successive chunks of text, and will maintain its own internal state to
    +    * keep track of how tabs are expanded.
    +    * @return {function (string) : string} a function that takes
    +    *   plain text and return the text with tabs expanded.
    +    * @private
    +    */
    +  function makeTabExpander(tabWidth) {
    +    var SPACES = '                ';
    +    var charInLine = 0;
    +
    +    return function (plainText) {
    +      // walk over each character looking for tabs and newlines.
    +      // On tabs, expand them.  On newlines, reset charInLine.
    +      // Otherwise increment charInLine
    +      var out = null;
    +      var pos = 0;
    +      for (var i = 0, n = plainText.length; i < n; ++i) {
    +        var ch = plainText.charAt(i);
    +
    +        switch (ch) {
    +          case '\t':
    +            if (!out) { out = []; }
    +            out.push(plainText.substring(pos, i));
    +            // calculate how much space we need in front of this part
    +            // nSpaces is the amount of padding -- the number of spaces needed
    +            // to move us to the next column, where columns occur at factors of
    +            // tabWidth.
    +            var nSpaces = tabWidth - (charInLine % tabWidth);
    +            charInLine += nSpaces;
    +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    +              out.push(SPACES.substring(0, nSpaces));
    +            }
    +            pos = i + 1;
    +            break;
    +          case '\n':
    +            charInLine = 0;
    +            break;
    +          default:
    +            ++charInLine;
    +        }
    +      }
    +      if (!out) { return plainText; }
    +      out.push(plainText.substring(pos));
    +      return out.join('');
    +    };
    +  }
    +
    +  var pr_chunkPattern = new RegExp(
    +      '[^<]+'  // A run of characters other than '<'
    +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    +      // a probable tag that should not be highlighted
    +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    +      + '|<',  // A '<' that does not begin a larger chunk
    +      'g');
    +  var pr_commentPrefix = /^<\!--/;
    +  var pr_cdataPrefix = /^<!\[CDATA\[/;
    +  var pr_brPrefix = /^<br\b/i;
    +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    +
    +  /** split markup into chunks of html tags (style null) and
    +    * plain text (style {@link #PR_PLAIN}), converting tags which are
    +    * significant for tokenization (<br>) into their textual equivalent.
    +    *
    +    * @param {string} s html where whitespace is considered significant.
    +    * @return {Object} source code and extracted tags.
    +    * @private
    +    */
    +  function extractTags(s) {
    +    // since the pattern has the 'g' modifier and defines no capturing groups,
    +    // this will return a list of all chunks which we then classify and wrap as
    +    // PR_Tokens
    +    var matches = s.match(pr_chunkPattern);
    +    var sourceBuf = [];
    +    var sourceBufLen = 0;
    +    var extractedTags = [];
    +    if (matches) {
    +      for (var i = 0, n = matches.length; i < n; ++i) {
    +        var match = matches[i];
    +        if (match.length > 1 && match.charAt(0) === '<') {
    +          if (pr_commentPrefix.test(match)) { continue; }
    +          if (pr_cdataPrefix.test(match)) {
    +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    +            sourceBuf.push(match.substring(9, match.length - 3));
    +            sourceBufLen += match.length - 12;
    +          } else if (pr_brPrefix.test(match)) {
    +            // <br> tags are lexically significant so convert them to text.
    +            // This is undone later.
    +            sourceBuf.push('\n');
    +            ++sourceBufLen;
    +          } else {
    +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    +              // A <span class="nocode"> will start a section that should be
    +              // ignored.  Continue walking the list until we see a matching end
    +              // tag.
    +              var name = match.match(pr_tagNameRe)[2];
    +              var depth = 1;
    +              var j;
    +              end_tag_loop:
    +              for (j = i + 1; j < n; ++j) {
    +                var name2 = matches[j].match(pr_tagNameRe);
    +                if (name2 && name2[2] === name) {
    +                  if (name2[1] === '/') {
    +                    if (--depth === 0) { break end_tag_loop; }
    +                  } else {
    +                    ++depth;
    +                  }
    +                }
    +              }
    +              if (j < n) {
    +                extractedTags.push(
    +                    sourceBufLen, matches.slice(i, j + 1).join(''));
    +                i = j;
    +              } else {  // Ignore unclosed sections.
    +                extractedTags.push(sourceBufLen, match);
    +              }
    +            } else {
    +              extractedTags.push(sourceBufLen, match);
    +            }
    +          }
    +        } else {
    +          var literalText = htmlToText(match);
    +          sourceBuf.push(literalText);
    +          sourceBufLen += literalText.length;
    +        }
    +      }
    +    }
    +    return { source: sourceBuf.join(''), tags: extractedTags };
    +  }
    +
    +  /** True if the given tag contains a class attribute with the nocode class. */
    +  function isNoCodeTag(tag) {
    +    return !!tag
    +        // First canonicalize the representation of attributes
    +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    +                 ' $1="$2$3$4"')
    +        // Then look for the attribute we want.
    +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    +  }
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    if (options['hashComments']) {
    +      if (options['cStyleComments']) {
    +        // Stop C preprocessor declarations at an unclosed open comment
    +        shortcutStylePatterns.push(
    +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +             null, '#']);
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /** Breaks {@code job.source} around style boundaries in
    +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    +    * and leaves the result in {@code job.prettyPrintedHtml}.
    +    * @param {Object} job like {
    +    *    source: {string} source as plain text,
    +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    +    *                   html preceded by their position in {@code job.source}
    +    *                   in order
    +    *    decorations: {Array.<number|string} an array of style classes preceded
    +    *                 by the position at which they start in job.source in order
    +    * }
    +    * @private
    +    */
    +  function recombineTagsAndDecorations(job) {
    +    var sourceText = job.source;
    +    var extractedTags = job.extractedTags;
    +    var decorations = job.decorations;
    +
    +    var html = [];
    +    // index past the last char in sourceText written to html
    +    var outputIdx = 0;
    +
    +    var openDecoration = null;
    +    var currentDecoration = null;
    +    var tagPos = 0;  // index into extractedTags
    +    var decPos = 0;  // index into decorations
    +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    +
    +    var adjacentSpaceRe = /([\r\n ]) /g;
    +    var startOrSpaceRe = /(^| ) /gm;
    +    var newlineRe = /\r\n?|\n/g;
    +    var trailingSpaceRe = /[ \r\n]$/;
    +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    +
    +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    +    var isIE678 = window['_pr_isIE6']();
    +    var lineBreakHtml = (
    +        isIE678
    +        ? (job.sourceNode.tagName === 'PRE'
    +           // Use line feeds instead of <br>s so that copying and pasting works
    +           // on IE.
    +           // Doing this on other browsers breaks lots of stuff since \r\n is
    +           // treated as two newlines on Firefox.
    +           ? (isIE678 === 6 ? '&#160;\r\n' :
    +              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
    +           // IE collapses multiple adjacent <br>s into 1 line break.
    +           // Prefix every newline with '&#160;' to prevent such behavior.
    +           // &nbsp; is the same as &#160; but works in XML as well as HTML.
    +           : '&#160;<br />')
    +        : '<br />');
    +
    +    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
    +    // number of the first line.
    +    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
    +    var lineBreaker;
    +    if (numberLines) {
    +      var lineBreaks = [];
    +      for (var i = 0; i < 10; ++i) {
    +        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
    +      }
    +      var lineNum = numberLines[1] && numberLines[1].length 
    +          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
    +      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
    +      if (lineNum) {
    +        html.push(' value="', lineNum + 1, '"');
    +      }
    +      html.push('>');
    +      lineBreaker = function () {
    +        var lb = lineBreaks[++lineNum % 10];
    +        // If a decoration is open, we need to close it before closing a list-item
    +        // and reopen it on the other side of the list item.
    +        return openDecoration
    +            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
    +      };
    +    } else {
    +      lineBreaker = lineBreakHtml;
    +    }
    +
    +    // A helper function that is responsible for opening sections of decoration
    +    // and outputing properly escaped chunks of source
    +    function emitTextUpTo(sourceIdx) {
    +      if (sourceIdx > outputIdx) {
    +        if (openDecoration && openDecoration !== currentDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        if (!openDecoration && currentDecoration) {
    +          openDecoration = currentDecoration;
    +          html.push('<span class="', openDecoration, '">');
    +        }
    +        // This interacts badly with some wikis which introduces paragraph tags
    +        // into pre blocks for some strange reason.
    +        // It's necessary for IE though which seems to lose the preformattedness
    +        // of <pre> tags when their innerHTML is assigned.
    +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    +        // and it serves to undo the conversion of <br>s to newlines done in
    +        // chunkify.
    +        var htmlChunk = textToHtml(
    +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    +            .replace(lastWasSpace
    +                     ? startOrSpaceRe
    +                     : adjacentSpaceRe, '$1&#160;');
    +        // Keep track of whether we need to escape space at the beginning of the
    +        // next chunk.
    +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    +        html.push(htmlChunk.replace(newlineRe, lineBreaker));
    +        outputIdx = sourceIdx;
    +      }
    +    }
    +
    +    while (true) {
    +      // Determine if we're going to consume a tag this time around.  Otherwise
    +      // we consume a decoration or exit.
    +      var outputTag;
    +      if (tagPos < extractedTags.length) {
    +        if (decPos < decorations.length) {
    +          // Pick one giving preference to extractedTags since we shouldn't open
    +          // a new style that we're going to have to immediately close in order
    +          // to output a tag.
    +          outputTag = extractedTags[tagPos] <= decorations[decPos];
    +        } else {
    +          outputTag = true;
    +        }
    +      } else {
    +        outputTag = false;
    +      }
    +      // Consume either a decoration or a tag or exit.
    +      if (outputTag) {
    +        emitTextUpTo(extractedTags[tagPos]);
    +        if (openDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        html.push(extractedTags[tagPos + 1]);
    +        tagPos += 2;
    +      } else if (decPos < decorations.length) {
    +        emitTextUpTo(decorations[decPos]);
    +        currentDecoration = decorations[decPos + 1];
    +        decPos += 2;
    +      } else {
    +        break;
    +      }
    +    }
    +    emitTextUpTo(sourceText.length);
    +    if (openDecoration) {
    +      html.push('</span>');
    +    }
    +    if (numberLines) { html.push('</li></ol>'); }
    +    job.prettyPrintedHtml = html.join('');
    +  }
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var sourceCodeHtml = job.sourceCodeHtml;
    +    var opt_langExtension = job.langExtension;
    +
    +    // Prepopulate output in case processing fails with an exception.
    +    job.prettyPrintedHtml = sourceCodeHtml;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndExtractedTags.source;
    +      job.source = source;
    +      job.basePos = 0;
    +
    +      /** Even entries are positions in source in ascending order.  Odd entries
    +        * are tags that were extracted at that position.
    +        * @type {Array.<number|string>}
    +        */
    +      job.extractedTags = sourceAndExtractedTags.tags;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +      // Integrate the decorations and tags back into the source code to produce
    +      // a decorated html string which is left in job.prettyPrintedHtml.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console['log'](e && e['stack'] ? e['stack'] : e);
    +      }
    +    }
    +  }
    +
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    +    var job = {
    +      sourceCodeHtml: sourceCodeHtml,
    +      langExtension: opt_langExtension
    +    };
    +    applyDecorator(job);
    +    return job.prettyPrintedHtml;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    function byTagName(tn) { return document.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        // [JACOCO] 'prettyprint' -> 'source' 
    +        if (cs.className && cs.className.indexOf('source') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR_registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp') &&
    +                // [JACOCO] 'prettyprint' -> 'source' 
    +                p.className && p.className.indexOf('source') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // fetch the content as a snippet of properly escaped HTML.
    +            // Firefox adds newlines at the end.
    +            var content = getInnerHtml(cs);
    +            content = content.replace(/(?:\r\n?|\n)$/, '');
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              sourceCodeHtml: content,
    +              langExtension: langExtension,
    +              sourceNode: cs
    +            };
    +            applyDecorator(prettyPrintingJob);
    +            replaceWithPrettyPrintedHtml();
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    function replaceWithPrettyPrintedHtml() {
    +      var newContent = prettyPrintingJob.prettyPrintedHtml;
    +      if (!newContent) { return; }
    +      var cs = prettyPrintingJob.sourceNode;
    +
    +      // push the prettified html back into the tag.
    +      if (!isRawContent(cs)) {
    +        // just replace the old html with the new
    +        cs.innerHTML = newContent;
    +      } else {
    +        // we need to change the tag to a <pre> since <xmp>s do not allow
    +        // embedded tags such as the span tags used to attach styles to
    +        // sections of source code.
    +        var pre = document.createElement('PRE');
    +        for (var i = 0; i < cs.attributes.length; ++i) {
    +          var a = cs.attributes[i];
    +          if (a.specified) {
    +            var aname = a.name.toLowerCase();
    +            if (aname === 'class') {
    +              pre.className = a.value;  // For IE 6
    +            } else {
    +              pre.setAttribute(a.name, a.value);
    +            }
    +          }
    +        }
    +        pre.innerHTML = newContent;
    +
    +        // remove the old
    +        cs.parentNode.replaceChild(pre, cs);
    +        cs = pre;
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['PR_normalizedHtml'] = normalizedHtml;
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'combinePrefixPatterns': combinePrefixPatterns,
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/redbar.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/redbar.gif
    new file mode 100644
    index 0000000000..c2f71469ba
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/redbar.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.css b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.css
    new file mode 100644
    index 0000000000..08eba79299
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.css
    @@ -0,0 +1,243 @@
    +body, td {
    +  font-family:sans-serif;
    +  font-size:10pt;
    +}
    +
    +h1 {
    +  font-weight:bold;
    +  font-size:18pt;
    +}
    +
    +.breadcrumb {
    +  border:#d6d3ce 1px solid;
    +  padding:2px 4px 2px 4px;
    +}
    +
    +.breadcrumb .info {
    +  float:right;
    +}
    +
    +.breadcrumb .info a {
    +  margin-left:8px;
    +}
    +
    +.el_report {
    +  padding-left:18px;
    +  background-image:url(report.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_group {
    +  padding-left:18px;
    +  background-image:url(group.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_bundle {
    +  padding-left:18px;
    +  background-image:url(bundle.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_package {
    +  padding-left:18px;
    +  background-image:url(package.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_class {
    +  padding-left:18px;
    +  background-image:url(class.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_source {
    +  padding-left:18px;
    +  background-image:url(source.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_method {
    +  padding-left:18px;
    +  background-image:url(method.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_session {
    +  padding-left:18px;
    +  background-image:url(session.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +pre.source {
    +  border:#d6d3ce 1px solid;
    +  font-family:monospace;
    +}
    +
    +pre.source ol {
    +  margin-bottom: 0px;
    +  margin-top: 0px;
    +}
    +
    +pre.source li {
    +  border-left: 1px solid #D6D3CE;
    +  color: #A0A0A0;
    +  padding-left: 0px;
    +}
    +
    +pre.source span.fc {
    +  background-color:#ccffcc;
    +}
    +
    +pre.source span.nc {
    +  background-color:#ffaaaa;
    +}
    +
    +pre.source span.pc {
    +  background-color:#ffffcc;
    +}
    +
    +pre.source span.bfc {
    +  background-image: url(branchfc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bfc:hover {
    +  background-color:#80ff80;
    +}
    +
    +pre.source span.bnc {
    +  background-image: url(branchnc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bnc:hover {
    +  background-color:#ff8080;
    +}
    +
    +pre.source span.bpc {
    +  background-image: url(branchpc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bpc:hover {
    +  background-color:#ffff80;
    +}
    +
    +table.coverage {
    +  empty-cells:show;
    +  border-collapse:collapse; 
    +}
    +
    +table.coverage thead {
    +  background-color:#e0e0e0;
    +}
    +
    +table.coverage thead td {
    +  white-space:nowrap;
    +  padding:2px 14px 0px 6px;
    +  border-bottom:#b0b0b0 1px solid;
    +}
    +
    +table.coverage thead td.bar {
    +  border-left:#cccccc 1px solid;
    +}
    +
    +table.coverage thead td.ctr1 {
    +  text-align:right;
    +  border-left:#cccccc 1px solid;
    +}
    +
    +table.coverage thead td.ctr2 {
    +  text-align:right;
    +  padding-left:2px;
    +}
    +
    +table.coverage thead td.sortable {
    +  cursor:pointer;
    +  background-image:url(sort.gif);
    +  background-position:right center;
    +  background-repeat:no-repeat;
    +}
    +
    +table.coverage thead td.up {
    +  background-image:url(up.gif);
    +}
    +
    +table.coverage thead td.down {
    +  background-image:url(down.gif);
    +}
    +
    +table.coverage tbody td {
    +  white-space:nowrap;
    +  padding:2px 6px 2px 6px;
    +  border-bottom:#d6d3ce 1px solid;
    +}
    +
    +table.coverage tbody tr:hover { 
    +  background: #f0f0d0 !important;
    +}
    +
    +table.coverage tbody td.bar {
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tbody td.ctr1 {
    +  text-align:right;
    +  padding-right:14px;
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tbody td.ctr2 {
    +  text-align:right;
    +  padding-right:14px;
    +  padding-left:2px;
    +}
    +
    +table.coverage tfoot td {
    +  white-space:nowrap;
    +  padding:2px 6px 2px 6px;
    +}
    +
    +table.coverage tfoot td.bar {
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tfoot td.ctr1 {
    +  text-align:right;
    +  padding-right:14px;
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tfoot td.ctr2 {
    +  text-align:right;
    +  padding-right:14px;
    +  padding-left:2px;
    +}
    +
    +.footer {
    +  margin-top:20px;
    +  border-top:#d6d3ce 1px solid;
    +  padding-top:2px;
    +  font-size:8pt;
    +  color:#a0a0a0;
    +}
    +
    +.footer a {
    +  color:#a0a0a0;
    +}
    +
    +.right {
    +  float:right;
    +}
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.gif
    new file mode 100644
    index 0000000000..8547be50bf
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/report.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/session.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/session.gif
    new file mode 100644
    index 0000000000..0151bad8a0
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/session.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.gif
    new file mode 100644
    index 0000000000..6757c2c32b
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.js b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.js
    new file mode 100644
    index 0000000000..511e47cf73
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/sort.js
    @@ -0,0 +1,147 @@
    +/*******************************************************************************
    + * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors
    + * All rights reserved. This program and the accompanying materials
    + * are made available under the terms of the Eclipse Public License v1.0
    + * which accompanies this distribution, and is available at
    + * http://www.eclipse.org/legal/epl-v10.html
    + *
    + * Contributors:
    + *    Marc R. Hoffmann - initial API and implementation
    + *    
    + *******************************************************************************/
    +
    +(function () {
    +
    +  /**
    +   * Sets the initial sorting derived from the hash.
    +   *
    +   * @param linkelementids
    +   *          list of element ids to search for links to add sort inidcator
    +   *          hash links   
    +   */  
    +  function initialSort(linkelementids) {
    +    window.linkelementids = linkelementids;
    +    var hash = window.location.hash;
    +    if (hash) {
    +      var m = hash.match(/up-./);
    +      if (m) {
    +        var header = window.document.getElementById(m[0].charAt(3));
    +        if (header) {
    +          sortColumn(header, true);
    +        }
    +        return;
    +      }
    +      var m = hash.match(/dn-./);
    +      if (m) {
    +        var header = window.document.getElementById(m[0].charAt(3));
    +        if (header) {
    +          sortColumn(header, false);
    +        }
    +        return
    +      }
    +    }
    +  }
    +
    +  /**
    +   * Sorts the columns with the given header dependening on the current sort state.
    +   */  
    +  function toggleSort(header) {
    +    var sortup = header.className.indexOf('down ') == 0;
    +    sortColumn(header, sortup);
    +  }
    +
    +  /**
    +   * Sorts the columns with the given header in the given direction.
    +   */  
    +  function sortColumn(header, sortup) {
    +    var table = header.parentNode.parentNode.parentNode;
    +    var body = table.tBodies[0];
    +    var colidx = getNodePosition(header);
    +    
    +    resetSortedStyle(table);
    +    
    +    var rows = body.rows;
    +    var sortedrows = [];
    +    for (var i = 0; i < rows.length; i++) {
    +      r = rows[i];
    +      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
    +    }
    +    
    +    var hash;
    +    
    +    if (sortup) {
    +      for (var i = sortedrows.length - 1; i >= 0; i--) {
    +        body.appendChild(sortedrows[i]);
    +      }
    +      header.className = 'up ' + header.className;
    +      hash = 'up-' + header.id;
    +    } else {
    +      for (var i = 0; i < sortedrows.length; i++) {
    +        body.appendChild(sortedrows[i]);
    +      }
    +      header.className = 'down ' + header.className;
    +      hash = 'dn-' + header.id;
    +    }
    +    
    +    setHash(hash);
    +  }
    +
    +  /**
    +   * Adds the sort indicator as a hash to the document URL and all links.
    +   */
    +  function setHash(hash) {
    +    window.document.location.hash = hash;
    +    ids = window.linkelementids;
    +    for (var i = 0; i < ids.length; i++) {
    +        setHashOnAllLinks(document.getElementById(ids[i]), hash);
    +    }
    +  }
    +
    +  /**
    +   * Extend all links within the given tag with the given hash.
    +   */
    +  function setHashOnAllLinks(tag, hash) {
    +    links = tag.getElementsByTagName("a");
    +    for (var i = 0; i < links.length; i++) {
    +        var a = links[i];
    +        var href = a.href;
    +        var hashpos = href.indexOf("#");
    +        if (hashpos != -1) {
    +            href = href.substring(0, hashpos);
    +        } 
    +        a.href = href + "#" + hash;
    +    }
    +  }
    +
    +  /**
    +   * Calculates the position of a element within its parent.
    +   */  
    +  function getNodePosition(element) {
    +    var pos = -1;
    +    while (element) {
    +      element = element.previousSibling;
    +      pos++;
    +    }
    +    return pos;
    +  }
    +
    +  /**
    +   * Remove the sorting indicator style from all headers.
    +   */
    +  function resetSortedStyle(table) {
    +    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
    +      if (c.className) {
    +        if (c.className.indexOf('down ') == 0) {
    +          c.className = c.className.slice(5);
    +        }
    +        if (c.className.indexOf('up ') == 0) {
    +          c.className = c.className.slice(3);
    +        }
    +      }
    +    }
    +  }
    +  
    +  window['initialSort'] = initialSort;
    +  window['toggleSort'] = toggleSort;
    +
    +})();
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/source.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/source.gif
    new file mode 100644
    index 0000000000..b226e41c52
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/source.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/up.gif b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/up.gif
    new file mode 100644
    index 0000000000..58ed21660e
    Binary files /dev/null and b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.resources/up.gif differ
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/.sessions.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.sessions.html
    new file mode 100644
    index 0000000000..ef70b7c5c2
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/.sessions.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href=".resources/report.css" type="text/css"/><link rel="shortcut icon" href=".resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href=".sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:25 PM</td><td>Jul 27, 2016 8:24:25 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockFromStubsDirectory</span></td><td>Jul 27, 2016 8:24:25 PM</td><td>Jul 27, 2016 8:24:30 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:30 PM</td><td>Jul 27, 2016 8:24:30 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubsWithMappingsOnly</span></td><td>Jul 27, 2016 8:24:30 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockStubsInDefaultLocation</span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubsWithCustomClassifier</span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:31 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockStubsInSelectedLocation</span></td><td>Jul 27, 2016 8:24:31 PM</td><td>Jul 27, 2016 8:24:32 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:32 PM</td><td>Jul 27, 2016 8:24:32 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsWithCustomImports</span></td><td>Jul 27, 2016 8:24:32 PM</td><td>Jul 27, 2016 8:24:32 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:32 PM</td><td>Jul 27, 2016 8:24:32 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubs</span></td><td>Jul 27, 2016 8:24:32 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldCopyContracts</span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractSpecificationInDefaultLocation</span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session"></span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:33 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsInDefaultLocation</span></td><td>Jul 27, 2016 8:24:33 PM</td><td>Jul 27, 2016 8:24:34 PM</td></tr><tr><td><span class="el_session">org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsInDefaultLocation</span></td><td>Jul 27, 2016 8:24:34 PM</td><td>Jul 27, 2016 8:24:34 PM</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">Messaging</span></td><td><code>b499315fd9b690df</code></td></tr><tr><td><span class="el_class">Messaging._run_closure1</span></td><td><code>3bccaadf22529890</code></td></tr><tr><td><span class="el_class">Messaging._run_closure1._closure2</span></td><td><code>45bd14f2a004e4c4</code></td></tr><tr><td><span class="el_class">Messaging._run_closure1._closure2._closure4</span></td><td><code>c665ed90e0cf0737</code></td></tr><tr><td><span class="el_class">Messaging._run_closure1._closure3</span></td><td><code>519e51f7940d5444</code></td></tr><tr><td><span class="el_class">Messaging._run_closure1._closure3._closure5</span></td><td><code>3b92111e9f6412a8</code></td></tr><tr><td><span class="el_class">Sample</span></td><td><code>43c425de0537acb5</code></td></tr><tr><td><span class="el_class">Sample._run_closure1</span></td><td><code>29a783d30ea13b87</code></td></tr><tr><td><span class="el_class">Sample._run_closure1._closure2</span></td><td><code>40c449e69f5dee97</code></td></tr><tr><td><span class="el_class">Sample._run_closure1._closure2._closure4</span></td><td><code>43c02f06dfca3067</code></td></tr><tr><td><span class="el_class">Sample._run_closure1._closure2._closure5</span></td><td><code>76a9db6763c14f02</code></td></tr><tr><td><span class="el_class">Sample._run_closure1._closure3</span></td><td><code>5a73fdfd3729307c</code></td></tr><tr><td><span class="el_class">Sample._run_closure1._closure3._closure6</span></td><td><code>6661d22e7f824bea</code></td></tr><tr><td><span class="el_class">Script1</span></td><td><code>bf4672260a0c5b83</code></td></tr><tr><td><span class="el_class">Script1._run_closure1</span></td><td><code>d8317709a30efdb4</code></td></tr><tr><td><span class="el_class">Script1._run_closure1</span></td><td><code>bd8b46231d59e340</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure2</span></td><td><code>829aed9ac1757e38</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure2</span></td><td><code>181884f35f7f6661</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure2._closure4</span></td><td><code>3fa67c39c8ef60c8</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure2._closure4</span></td><td><code>341c2fc0f51e53a3</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure2._closure5</span></td><td><code>accbdeb65d7e4733</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure3</span></td><td><code>ee6c7cfc590d3fd3</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure3</span></td><td><code>a1cd878b4a6a206c</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure3._closure5</span></td><td><code>2da14d8fd92dfc54</code></td></tr><tr><td><span class="el_class">Script1._run_closure1._closure3._closure6</span></td><td><code>2b144a23a62eb175</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonAutoDetect.1</span></td><td><code>b176925f5c2a3238</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility</span></td><td><code>cd3984667a2e1610</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonCreator.Mode</span></td><td><code>7e9f12c9749a22dd</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonFormat.Feature</span></td><td><code>bdb87bc8236e653e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonFormat.Features</span></td><td><code>ba7b44fd6cd4d7be</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonFormat.Shape</span></td><td><code>32a76722c2d132a0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonFormat.Value</span></td><td><code>fe25fd2d5c02fa46</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonInclude.Include</span></td><td><code>f4141981d9fcc4ae</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonInclude.Value</span></td><td><code>d41428361eecafa9</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonProperty.Access</span></td><td><code>b0c9173cafce0ad3</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonTypeInfo.As</span></td><td><code>5326a6c44d023f43</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.annotation.JsonTypeInfo.Id</span></td><td><code>226511839388200a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.Base64Variant</span></td><td><code>0959fc15d91359e2</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.Base64Variants</span></td><td><code>6db7b53522975d53</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonFactory</span></td><td><code>e3d3855617ab24f7</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonFactory.Feature</span></td><td><code>5ae3c2cc264d5a9c</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonGenerator</span></td><td><code>ed1990e927cb356a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonGenerator.Feature</span></td><td><code>e420cde3114baa7a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonParser.Feature</span></td><td><code>b6a81f5f0e5182f4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonParser.NumberType</span></td><td><code>76de6d99f3caa302</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.JsonStreamContext</span></td><td><code>5bc77315bbf6e638</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.ObjectCodec</span></td><td><code>b7d0edab549779d4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.TreeCodec</span></td><td><code>5c6baba1964782c4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.base.GeneratorBase</span></td><td><code>510074088e5a8f80</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.CharTypes</span></td><td><code>a02666331fde95a0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.IOContext</span></td><td><code>882c14c3672753d9</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.JsonStringEncoder</span></td><td><code>31b9a5875c0e5809</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.NumberOutput</span></td><td><code>c670a0a841baa0f4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.SegmentedStringWriter</span></td><td><code>a15f1c6cb61929da</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.io.SerializedString</span></td><td><code>bd4908f7387a7a3a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.json.JsonGeneratorImpl</span></td><td><code>1a30ef244406acc6</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.json.JsonWriteContext</span></td><td><code>fd5bef944fe3d206</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.json.WriterBasedJsonGenerator</span></td><td><code>dc3d4558f8ff79bc</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer</span></td><td><code>ad6c88406ecef1fb</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfo</span></td><td><code>ad70540735a36f2f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer</span></td><td><code>25c250b17c3906e7</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.type.ResolvedType</span></td><td><code>7a88a566c49ef7eb</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.BufferRecycler</span></td><td><code>6d3cde0e154bb6ca</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.DefaultIndenter</span></td><td><code>1cf9f971d125421f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.DefaultPrettyPrinter</span></td><td><code>aa08eb4bb01bf400</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter</span></td><td><code>c1affb244ffd2ff0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter</span></td><td><code>a5f6b804b4a3cca4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.InternCache</span></td><td><code>5cff7c635f084486</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.MinimalPrettyPrinter</span></td><td><code>41f44746b94df776</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.core.util.TextBuffer</span></td><td><code>978a9a16f18572ba</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.AnnotationIntrospector</span></td><td><code>b5d16d7433a1ce47</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.BeanDescription</span></td><td><code>280761e450c9228e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.BeanProperty.Std</span></td><td><code>04f464c1951fe677</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.DatabindContext</span></td><td><code>9e15c8daf177b9da</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.DeserializationConfig</span></td><td><code>90b01442e2bf1448</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.DeserializationContext</span></td><td><code>746c6ead9db7a8db</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.DeserializationFeature</span></td><td><code>585e78f8215377d0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.JavaType</span></td><td><code>533a3223591c69fe</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.JsonSerializer</span></td><td><code>1676d26026913307</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.MapperFeature</span></td><td><code>c5f680d336c71d86</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.MappingJsonFactory</span></td><td><code>d4fd6a63787fdded</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ObjectMapper</span></td><td><code>2b7b52055cd0579d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ObjectWriter</span></td><td><code>3b9bc6c232afcde3</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ObjectWriter.GeneratorSettings</span></td><td><code>a72f40ec6a630d57</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ObjectWriter.Prefetch</span></td><td><code>3c4c02275486c82e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.PropertyMetadata</span></td><td><code>3cfab0bac3f37c1e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.PropertyName</span></td><td><code>001152587844659d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.SerializationConfig</span></td><td><code>fc7acf659992bfad</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.SerializationFeature</span></td><td><code>f08471977133f166</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.SerializerProvider</span></td><td><code>ee339c9c8fdd74d2</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion</span></td><td><code>a4244a73b0ddd370</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.annotation.JsonSerialize.Typing</span></td><td><code>26acf92f2ff31a58</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.BaseSettings</span></td><td><code>2cd3d7aa7831cd76</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.ContextAttributes</span></td><td><code>476e98ef21d36443</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.ContextAttributes.Impl</span></td><td><code>9529621d09404516</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig</span></td><td><code>529e3a9905393795</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.MapperConfig</span></td><td><code>4b6ee0165f06d013</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.MapperConfigBase</span></td><td><code>f0dc3048e59d3fd8</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.cfg.SerializerFactoryConfig</span></td><td><code>8ccf64cb9282fefa</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.BasicDeserializerFactory</span></td><td><code>cdc5b580d105c88a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.BeanDeserializerFactory</span></td><td><code>8475392f77eead97</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.DefaultDeserializationContext</span></td><td><code>994fa89f9916bd28</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl</span></td><td><code>61ed1e2ff3bc556c</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.DeserializerCache</span></td><td><code>5504798e6a0b6b7b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.DeserializerFactory</span></td><td><code>738c8de672dad894</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers</span></td><td><code>1bd96b8bfcc12766</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ext.OptionalHandlerFactory</span></td><td><code>67a2a9b6aae021b9</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.Annotated</span></td><td><code>f98e45ba3141489a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedClass</span></td><td><code>475afb36e2621142</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedConstructor</span></td><td><code>0d1aec478d33b159</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedField</span></td><td><code>a7c50e98c9c2a870</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedMember</span></td><td><code>b8d2f57d11ad0599</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedMethod</span></td><td><code>90cde668beffc628</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedMethodMap</span></td><td><code>3b6c2faffc98d848</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedParameter</span></td><td><code>4f1f4600592799d2</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotatedWithParams</span></td><td><code>9a1c84e00784ae5f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.AnnotationMap</span></td><td><code>298cab9ad1bf0364</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.BasicBeanDescription</span></td><td><code>2aa600cd17b2cf35</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.BasicClassIntrospector</span></td><td><code>dfeffb9def72d464</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition</span></td><td><code>c16aa6789cc710be</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.ClassIntrospector</span></td><td><code>11a567f4f7d10020</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase</span></td><td><code>58bd067355efca2a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector</span></td><td><code>1d8215962b7900cf</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector.Java7Support</span></td><td><code>e936d4d3287e5b62</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.MemberKey</span></td><td><code>9eb3680f67ddab3e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector</span></td><td><code>fa22e79c820ac894</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder</span></td><td><code>f0e3223ee6113347</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1</span></td><td><code>bfadf29628aed37a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.10</span></td><td><code>2137bffb3b77624b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2</span></td><td><code>787dda915c43efc4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.3</span></td><td><code>a20fe2730d276acc</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4</span></td><td><code>85c540faff012130</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.5</span></td><td><code>9f29b6b7e3383aac</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6</span></td><td><code>f2a253991b5f0f7f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.7</span></td><td><code>64c82c1100c1a831</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.9</span></td><td><code>e366148d5b53f1b3</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linked</span></td><td><code>e8e84464fef397c0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.SimpleMixInResolver</span></td><td><code>c9ca0fa1716d69c4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic</span></td><td><code>8559b48a767ae63e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std</span></td><td><code>77c2f653cdcf2e62</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.NamedType</span></td><td><code>dbda7f08e416d231</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.SubtypeResolver</span></td><td><code>704d41d1a1b4d7da</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.TypeSerializer</span></td><td><code>c3cdeb44c2d409f8</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeSerializer</span></td><td><code>2145cda791846275</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeSerializer</span></td><td><code>c1b81056047384b6</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver</span></td><td><code>d02d94f48ba50cec</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder</span></td><td><code>9806dd06c3d86bda</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder.1</span></td><td><code>b91ba6d103157266</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase</span></td><td><code>b6126c8c00138073</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.TypeNameIdResolver</span></td><td><code>0021c56a505b89cc</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.jsontype.impl.TypeSerializerBase</span></td><td><code>80efd78e6c1183d5</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.node.JsonNodeFactory</span></td><td><code>30398f165ccd1536</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BasicSerializerFactory</span></td><td><code>72731dbff91e091a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BasicSerializerFactory.1</span></td><td><code>69b03ed72a65c83a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BeanPropertyWriter</span></td><td><code>cc469da563d6700b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BeanSerializer</span></td><td><code>37c23dc975798682</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BeanSerializerBuilder</span></td><td><code>f6db049e85570020</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.BeanSerializerFactory</span></td><td><code>17c496c94bdaf2ac</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.ContainerSerializer</span></td><td><code>8f104fb1bc93003e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.DefaultSerializerProvider</span></td><td><code>1b36702fb1a29c8b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl</span></td><td><code>f86d51b7424f3552</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.PropertyBuilder</span></td><td><code>ceadd04c63d91649</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.PropertyBuilder.1</span></td><td><code>48f666244c656b69</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.PropertyWriter</span></td><td><code>fd7fbc6a276daeaf</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.SerializerCache</span></td><td><code>636a742aff0a0f91</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.SerializerFactory</span></td><td><code>f3f5cf81f2267519</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.FailingSerializer</span></td><td><code>22ec32a2b2a696f3</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer</span></td><td><code>e6e17f79a91eacfa</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap</span></td><td><code>3607d33dc3294c61</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Empty</span></td><td><code>c160b84d8997058f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult</span></td><td><code>55383d9ed83eee53</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Single</span></td><td><code>8314d257bab58def</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap</span></td><td><code>a47f8ae64928948e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap.Bucket</span></td><td><code>9a7648b88798b5f5</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.impl.UnknownSerializer</span></td><td><code>e997148777466e1f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase</span></td><td><code>b1167cbe22a03429</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.BeanSerializerBase</span></td><td><code>e599d227e92d311e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.BooleanSerializer</span></td><td><code>adbb3ca010605a3b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.CalendarSerializer</span></td><td><code>813f7978dc4128da</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.DateSerializer</span></td><td><code>d1e641c4eef34e68</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBase</span></td><td><code>e1e538aeb9c47599</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.JsonValueSerializer</span></td><td><code>1d49c517f33d3f1b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.MapSerializer</span></td><td><code>08a535dc2055d7eb</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NonTypedScalarSerializerBase</span></td><td><code>ff686295f47092ac</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NullSerializer</span></td><td><code>d0b61a55ae5629d8</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializer</span></td><td><code>232af5aa9c55ad00</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers</span></td><td><code>aa027372e00db270</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base</span></td><td><code>488a4ac31166ef1d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer</span></td><td><code>aa958af1cd7c4634</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer</span></td><td><code>acde5571a7d83391</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer</span></td><td><code>c65581cff4416a99</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer</span></td><td><code>ade1a9553b2ba3d9</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer</span></td><td><code>ac5847b48bf674a1</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializer</span></td><td><code>ea806da73db2fb1e</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdJdkSerializers</span></td><td><code>0f5194a6f7075774</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdKeySerializer</span></td><td><code>7048c8743b69c417</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdKeySerializers</span></td><td><code>0af9a59055cbe215</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdKeySerializers.StringKeySerializer</span></td><td><code>2295d6a7e009a913</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdScalarSerializer</span></td><td><code>aade94e4edb64d90</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StdSerializer</span></td><td><code>5b47174bcfc35809</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.StringSerializer</span></td><td><code>ba509e266df8900b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.ToStringSerializer</span></td><td><code>cd216cd509f083e0</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.ser.std.UUIDSerializer</span></td><td><code>8c8f8731888d746d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.ArrayType</span></td><td><code>64279a1eb372f76d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.ClassStack</span></td><td><code>3990e8002f2e10a4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.CollectionLikeType</span></td><td><code>c12799930fd89485</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.CollectionType</span></td><td><code>5fa523cade2864fa</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.MapLikeType</span></td><td><code>a2cff1543c3529d8</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.MapType</span></td><td><code>0dc23397b7fc712b</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.ResolvedRecursiveType</span></td><td><code>8de843c180b7afd7</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.SimpleType</span></td><td><code>072c1408bf2a41f7</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.TypeBase</span></td><td><code>5b1c06f48e34502f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.TypeBindings</span></td><td><code>b32103c8a41593f4</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStash</span></td><td><code>037704dc1d22ca1f</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.TypeFactory</span></td><td><code>dcf9679f3d58717a</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.type.TypeParser</span></td><td><code>3ccac74f9c6e672d</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.ArrayIterator</span></td><td><code>bd541d45acf30f94</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.BeanUtil</span></td><td><code>11f40cd499bc7b89</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.ClassUtil</span></td><td><code>084d51cdcd9f15cf</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.ClassUtil.ClassMetadata</span></td><td><code>35f720b3be49e5fd</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.ClassUtil.Ctor</span></td><td><code>b002cbffb5ec6a94</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.ClassUtil.EmptyIterator</span></td><td><code>2c4a219cd335cee9</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.LRUMap</span></td><td><code>84d59682f640a462</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.RootNameLookup</span></td><td><code>c87a8a0c71e8f2e8</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.StdDateFormat</span></td><td><code>6562c81cbd4d8781</code></td></tr><tr><td><span class="el_class">com.fasterxml.jackson.databind.util.TypeKey</span></td><td><code>8ab384b02b4e64d9</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder</span></td><td><code>7bac3af16aba1f94</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder.build.0</span></td><td><code>b22300051d73de76</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder.withHeaders</span></td><td><code>6353b42ab16cbfef</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.WireMock</span></td><td><code>969be669d0597a9f</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.WireMock.1</span></td><td><code>af1ec00a46bdcf2b</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.WireMock.equalTo.0</span></td><td><code>83056af348eaefd8</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.WireMock.matchingJsonPath.1</span></td><td><code>ca457f054fb8a761</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo</span></td><td><code>0ce43226a7dd17c1</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.common.Encoding</span></td><td><code>7210f5f59fe046bd</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.common.Json</span></td><td><code>37d45b1d48cdc89f</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.extension.Parameters</span></td><td><code>fa5a725becbd0a6e</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.Body</span></td><td><code>b299b5860aaf7d20</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.CaseInsensitiveKey</span></td><td><code>eddfa32359de3be8</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.CaseInsensitiveKey.1</span></td><td><code>6814e253f9b64d08</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.HttpHeader</span></td><td><code>ad864eca30f554c9</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.HttpHeaders</span></td><td><code>4d9314f074885ee5</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.HttpHeadersJsonSerializer</span></td><td><code>935d0e847f3ed0c9</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.MultiValue</span></td><td><code>4dda066d8f1ceb99</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.RequestMethod</span></td><td><code>0ed45d8406fbb517</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.RequestMethod.fromString</span></td><td><code>e143d4590d66e386</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.http.ResponseDefinition</span></td><td><code>7a3be8d01025eb04</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.EqualToPattern</span></td><td><code>f8fd99f6d2092a7b</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.MatchesJsonPathPattern</span></td><td><code>edc730a3cbf559f7</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.MultiValuePattern</span></td><td><code>bd7fb2659feb4a38</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestMatcher</span></td><td><code>423c0e1a02ca0b50</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPattern</span></td><td><code>a9d661e1ed0ef04a</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPattern.1</span></td><td><code>fe3e5c1779f2eb6c</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPatternBuilder</span></td><td><code>5d717c085624c9b7</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPatternBuilder.build.2</span></td><td><code>992725e1b532b53a</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPatternBuilder.newRequestPattern</span></td><td><code>585bade15b4512b1</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPatternBuilder.withHeader.0</span></td><td><code>a5ac9a23446aaa53</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.RequestPatternBuilder.withRequestBody.1</span></td><td><code>9e5f1d0000ccd43b</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.StringValuePattern</span></td><td><code>aec20764fea4269b</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.StringValuePattern.1</span></td><td><code>44308ad68925dcd2</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.matching.UrlPattern</span></td><td><code>1ee1e3ff9104e030</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.stubbing.StubMapping</span></td><td><code>db292265599aee12</code></td></tr><tr><td><span class="el_class">com.github.tomakehurst.wiremock.stubbing.StubMapping.buildJsonStringFor</span></td><td><code>e7a66f34f2fbf141</code></td></tr><tr><td><span class="el_class">com.google.common.base.Equivalence</span></td><td><code>f07c09091655f8e9</code></td></tr><tr><td><span class="el_class">com.google.common.base.Equivalence.Equals</span></td><td><code>412c831f4d773835</code></td></tr><tr><td><span class="el_class">com.google.common.base.Equivalence.Identity</span></td><td><code>647f8ceae872661d</code></td></tr><tr><td><span class="el_class">com.google.common.base.Joiner</span></td><td><code>0bd002a70ee2699d</code></td></tr><tr><td><span class="el_class">com.google.common.base.Joiner.1</span></td><td><code>4a0e8f33b9a034af</code></td></tr><tr><td><span class="el_class">com.google.common.base.Joiner.MapJoiner</span></td><td><code>40bc5fd74db3f8ad</code></td></tr><tr><td><span class="el_class">com.google.common.base.MoreObjects</span></td><td><code>18ea4cd683b53c87</code></td></tr><tr><td><span class="el_class">com.google.common.base.Objects</span></td><td><code>f4a5661ec90f8024</code></td></tr><tr><td><span class="el_class">com.google.common.base.Platform</span></td><td><code>5f9c0deec1877e6b</code></td></tr><tr><td><span class="el_class">com.google.common.base.Preconditions</span></td><td><code>246161908abeef7f</code></td></tr><tr><td><span class="el_class">com.google.common.base.Stopwatch</span></td><td><code>e1e3f95dc6dd86a3</code></td></tr><tr><td><span class="el_class">com.google.common.base.Suppliers</span></td><td><code>8397ed77841636a7</code></td></tr><tr><td><span class="el_class">com.google.common.base.Suppliers.MemoizingSupplier</span></td><td><code>fe3fdb3940841b54</code></td></tr><tr><td><span class="el_class">com.google.common.base.Suppliers.SupplierOfInstance</span></td><td><code>1a7c7185715847f6</code></td></tr><tr><td><span class="el_class">com.google.common.base.Ticker</span></td><td><code>25d75af21f8ca064</code></td></tr><tr><td><span class="el_class">com.google.common.base.Ticker.1</span></td><td><code>5b50ca3853d1c372</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder</span></td><td><code>f1660a9ba59d92d2</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder.1</span></td><td><code>a2adbc974fe4e89e</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder.2</span></td><td><code>ea96fc27e9acf655</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder.3</span></td><td><code>2ad66707bd30eb5b</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder.NullListener</span></td><td><code>8134c452c4b37d0f</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheBuilder.OneWeigher</span></td><td><code>67335815a6b56c5a</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheLoader</span></td><td><code>9cf1d77aaeecb5bf</code></td></tr><tr><td><span class="el_class">com.google.common.cache.CacheStats</span></td><td><code>94361afc387116f0</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache</span></td><td><code>191f6de5d591ff25</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.1</span></td><td><code>d20f9801fbdfe953</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.2</span></td><td><code>c6bdd5aaf1cadfb1</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.AbstractReferenceEntry</span></td><td><code>3da43ff057fa0bdb</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory</span></td><td><code>1aafee82bf90cd26</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.1</span></td><td><code>997ae8adc1f4da7f</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.2</span></td><td><code>d022500cd08b145a</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.3</span></td><td><code>edc27614a9df2e1a</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.4</span></td><td><code>906e162de1b8ef07</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.5</span></td><td><code>81066f3ba4378983</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.6</span></td><td><code>5a7bcfa9d5fc5f7d</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.7</span></td><td><code>b6687467a411db85</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.EntryFactory.8</span></td><td><code>d5f3fbdccd1574e5</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.LoadingValueReference</span></td><td><code>ca45a0cbb8854757</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.LocalLoadingCache</span></td><td><code>10376c0f74711e65</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.LocalManualCache</span></td><td><code>670381361b448ea4</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.Segment</span></td><td><code>b75c47fcbc21436b</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.Strength</span></td><td><code>17ce38b85476b4de</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.Strength.1</span></td><td><code>902a24f2d2534b07</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.Strength.2</span></td><td><code>b81dd62f432c3ea1</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.Strength.3</span></td><td><code>a55f8b8a14b71288</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.StrongEntry</span></td><td><code>c583abb3608d08d0</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.StrongValueReference</span></td><td><code>44e770e2ef250b59</code></td></tr><tr><td><span class="el_class">com.google.common.cache.LocalCache.WeakEntry</span></td><td><code>0f73f7d28d0ab82b</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractIndexedListIterator</span></td><td><code>f9e8989cf82a86b6</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractListMultimap</span></td><td><code>2363897e56db87a9</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap</span></td><td><code>f87d9ff2fd83e020</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.AsMap</span></td><td><code>326d6747fb7b43d5</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapEntries</span></td><td><code>34ddb1f63f6ed3ba</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapIterator</span></td><td><code>5dec6aacb168ebb8</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.RandomAccessWrappedList</span></td><td><code>df5a45cf05d17a9f</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection</span></td><td><code>02a87cba20cac43f</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection.WrappedIterator</span></td><td><code>c95ace5c2d2b86e7</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapBasedMultimap.WrappedList</span></td><td><code>9f54740d418f72c7</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMapEntry</span></td><td><code>077cc4d433e54ed6</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractMultimap</span></td><td><code>bc7c82dc2e3fa194</code></td></tr><tr><td><span class="el_class">com.google.common.collect.AbstractSetMultimap</span></td><td><code>039aab02ef3cd1e0</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ArrayListMultimap</span></td><td><code>d02164b3da92de06</code></td></tr><tr><td><span class="el_class">com.google.common.collect.CollectPreconditions</span></td><td><code>c288d77ae2b2a2e3</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Collections2</span></td><td><code>f395392763fa15c8</code></td></tr><tr><td><span class="el_class">com.google.common.collect.EmptyImmutableSet</span></td><td><code>962d3458a406b859</code></td></tr><tr><td><span class="el_class">com.google.common.collect.FluentIterable</span></td><td><code>4c979d362325cdfe</code></td></tr><tr><td><span class="el_class">com.google.common.collect.GenericMapMaker</span></td><td><code>b1836e54be006603</code></td></tr><tr><td><span class="el_class">com.google.common.collect.HashMultimap</span></td><td><code>a2102bdd87c1d493</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Hashing</span></td><td><code>a5aad0748d560e9b</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableBiMap</span></td><td><code>086cfaa6be5f409d</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableCollection</span></td><td><code>50c34fd19d86a41a</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableCollection.ArrayBasedBuilder</span></td><td><code>d612332db542d0a0</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableCollection.Builder</span></td><td><code>7d98fbec6e698b0c</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableEntry</span></td><td><code>4755968f33c5dbcc</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableList</span></td><td><code>fe7d6d76a1b46dda</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableList.Builder</span></td><td><code>4773610851157856</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableListMultimap</span></td><td><code>a7be92e1879cd179</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMap</span></td><td><code>41e9336d3fc93be6</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMap.Builder</span></td><td><code>06ffa34df04658eb</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMapEntry</span></td><td><code>b011ffdc7d28a60f</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMapEntry.TerminalEntry</span></td><td><code>e935b4aaed1e9b22</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMultimap</span></td><td><code>7ca567e1d598d98e</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMultimap.Builder</span></td><td><code>5dc376a6adc2dc20</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableMultimap.BuilderMultimap</span></td><td><code>e3523a1f47557e5f</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableSet</span></td><td><code>dec80b4b555693fa</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ImmutableSet.Builder</span></td><td><code>107ef19b899efd4b</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterables</span></td><td><code>42aa523df6efa38d</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterables.2</span></td><td><code>eeb9ce30fd0e4438</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterables.3</span></td><td><code>a810fa6703bb070a</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators</span></td><td><code>098dd219f760d115</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators.1</span></td><td><code>0380884e0a6c97c3</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators.11</span></td><td><code>8a96953dc0a5e1d0</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators.12</span></td><td><code>142a6a00139da565</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators.2</span></td><td><code>db60acb97a0f22ed</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Iterators.5</span></td><td><code>51c6ea7e40c79f70</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ListMultimap.asMap</span></td><td><code>7641fe498ec5007c</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Lists</span></td><td><code>c2dabaaa01948d95</code></td></tr><tr><td><span class="el_class">com.google.common.collect.MapMaker</span></td><td><code>a61a17ead3c41656</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Maps</span></td><td><code>f18a00d4e29f1e95</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Maps.EntrySet</span></td><td><code>b7cec16fa822e215</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Maps.ImprovedAbstractMap</span></td><td><code>37c8d93a5600135f</code></td></tr><tr><td><span class="el_class">com.google.common.collect.ObjectArrays</span></td><td><code>5cfab90c60dac3b6</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Platform</span></td><td><code>e67789390e091788</code></td></tr><tr><td><span class="el_class">com.google.common.collect.RegularImmutableList</span></td><td><code>651459bc8679db41</code></td></tr><tr><td><span class="el_class">com.google.common.collect.RegularImmutableMap</span></td><td><code>aac4a5a18756a0a4</code></td></tr><tr><td><span class="el_class">com.google.common.collect.RegularImmutableMap.NonTerminalMapEntry</span></td><td><code>11cded19acc83320</code></td></tr><tr><td><span class="el_class">com.google.common.collect.RegularImmutableSet</span></td><td><code>d13930495f7cd7e3</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Sets</span></td><td><code>0c87b8bdba277e94</code></td></tr><tr><td><span class="el_class">com.google.common.collect.Sets.ImprovedAbstractSet</span></td><td><code>b23369af6d794cdc</code></td></tr><tr><td><span class="el_class">com.google.common.collect.SingletonImmutableBiMap</span></td><td><code>1616e7be739fed34</code></td></tr><tr><td><span class="el_class">com.google.common.collect.SingletonImmutableList</span></td><td><code>061e007492d55731</code></td></tr><tr><td><span class="el_class">com.google.common.collect.SingletonImmutableSet</span></td><td><code>60fb89970339f5c1</code></td></tr><tr><td><span class="el_class">com.google.common.collect.TransformedIterator</span></td><td><code>720545f5b1349950</code></td></tr><tr><td><span class="el_class">com.google.common.collect.UnmodifiableIterator</span></td><td><code>951e39c223c816e6</code></td></tr><tr><td><span class="el_class">com.google.common.collect.UnmodifiableListIterator</span></td><td><code>9373caaa0fb7ca46</code></td></tr><tr><td><span class="el_class">com.google.common.util.concurrent.AbstractFuture</span></td><td><code>fda5bc45e7aa7164</code></td></tr><tr><td><span class="el_class">com.google.common.util.concurrent.AbstractFuture.Sync</span></td><td><code>8f6950346178a7e9</code></td></tr><tr><td><span class="el_class">com.google.common.util.concurrent.ExecutionList</span></td><td><code>edf0d81fe05f017c</code></td></tr><tr><td><span class="el_class">com.google.common.util.concurrent.SettableFuture</span></td><td><code>0882681f4eb956d2</code></td></tr><tr><td><span class="el_class">com.google.common.util.concurrent.Uninterruptibles</span></td><td><code>87e1f0ea8dd85db0</code></td></tr><tr><td><span class="el_class">com.google.inject.AbstractModule</span></td><td><code>ca3503975a4cac31</code></td></tr><tr><td><span class="el_class">com.google.inject.Guice</span></td><td><code>3b387b0ca6da265f</code></td></tr><tr><td><span class="el_class">com.google.inject.Key</span></td><td><code>d6df2cd909f470a8</code></td></tr><tr><td><span class="el_class">com.google.inject.Key.1</span></td><td><code>9770445645d0e0f0</code></td></tr><tr><td><span class="el_class">com.google.inject.Key.AnnotationInstanceStrategy</span></td><td><code>781bc8a417a7d003</code></td></tr><tr><td><span class="el_class">com.google.inject.Key.AnnotationTypeStrategy</span></td><td><code>aeab8fdb426440e0</code></td></tr><tr><td><span class="el_class">com.google.inject.Key.NullAnnotationStrategy</span></td><td><code>4204fd635b68bc13</code></td></tr><tr><td><span class="el_class">com.google.inject.Scopes</span></td><td><code>dc85c5d7a94e02e8</code></td></tr><tr><td><span class="el_class">com.google.inject.Scopes.1</span></td><td><code>4edd79f5160c9b2a</code></td></tr><tr><td><span class="el_class">com.google.inject.Scopes.1.1</span></td><td><code>80401e419d4b7cb0</code></td></tr><tr><td><span class="el_class">com.google.inject.Scopes.2</span></td><td><code>5c0fe67e8187853f</code></td></tr><tr><td><span class="el_class">com.google.inject.Scopes.3</span></td><td><code>3fb5a9ce9247e79d</code></td></tr><tr><td><span class="el_class">com.google.inject.Stage</span></td><td><code>f2372251e265ea46</code></td></tr><tr><td><span class="el_class">com.google.inject.TypeLiteral</span></td><td><code>0d53252f4a1d3d36</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.AbstractBindingBuilder</span></td><td><code>d33378053db9c07c</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.AbstractBindingProcessor</span></td><td><code>6fe29cd7acf916a8</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.AbstractBindingProcessor.Processor</span></td><td><code>b8fa04d3b6b34bb4</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.AbstractBindingProcessor.Processor.1</span></td><td><code>a106b21aa01e88ea</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.AbstractProcessor</span></td><td><code>222e38faf6f71a8f</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Annotations</span></td><td><code>7477a9fb47fef945</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Annotations.1</span></td><td><code>b7b2977ae1f0e87e</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Annotations.3</span></td><td><code>39ca8d865024c860</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Annotations.AnnotationChecker</span></td><td><code>1253eb7b24b09658</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Annotations.AnnotationChecker.1</span></td><td><code>ae637ae3d0a29fe6</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.BindingBuilder</span></td><td><code>b5e73d452173efcd</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.BindingImpl</span></td><td><code>6387bfdfcac86f44</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.BindingProcessor</span></td><td><code>f5b1f6e6d2ea8c9d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.BindingProcessor.1</span></td><td><code>50f4ad5ab1d66336</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.BoundProviderFactory</span></td><td><code>7653f92b4b8099ac</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstantFactory</span></td><td><code>ce5c82d37cb89c52</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructionContext</span></td><td><code>997e4e66e1b6ad90</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorBindingImpl</span></td><td><code>6ce459268a7ce071</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorBindingImpl.Factory</span></td><td><code>57064e4dc7562243</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorInjector</span></td><td><code>470b2400a982559c</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorInjector.1</span></td><td><code>e52b4e90711cd4b2</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorInjectorStore</span></td><td><code>2bb59d99b29b84c6</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ConstructorInjectorStore.1</span></td><td><code>3ecba3a3d5c5cde9</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.DefaultConstructionProxyFactory</span></td><td><code>60c02c3ad8002ca0</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.DefaultConstructionProxyFactory.1</span></td><td><code>366456473bd89416</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.DeferredLookups</span></td><td><code>4fb05040a5055a3d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.EncounterImpl</span></td><td><code>551bd2bd3cb0cf1a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Errors</span></td><td><code>1edf18f845b7d36b</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Errors.2</span></td><td><code>ded14295d2c06d00</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Errors.3</span></td><td><code>d82c1f7dbf620b48</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Errors.4</span></td><td><code>4b150a8d1b9e7aff</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Errors.Converter</span></td><td><code>c0be48d65465252a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.FactoryProxy</span></td><td><code>7e35a0c9401ba3af</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.FailableCache</span></td><td><code>63e97bf82b5f4cff</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.FailableCache.1</span></td><td><code>4319186c32a1255d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InheritingState</span></td><td><code>514667adc0b39ee4</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Initializables</span></td><td><code>474038060479dbfe</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Initializables.1</span></td><td><code>bdf7d5fe09191017</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Initializer</span></td><td><code>da06c01982d17740</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Initializer.InjectableReference</span></td><td><code>4513782bb065e50e</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectionRequestProcessor</span></td><td><code>052cda46a8db73df</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl</span></td><td><code>8f9e836f77b700d0</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.1</span></td><td><code>9b8e9b6387e45dff</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.2</span></td><td><code>c1e8a59b33fa2c53</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.2.1</span></td><td><code>61b8a95cbc105c42</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.BindingsMultimap</span></td><td><code>e25770bcd1631962</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.InjectorOptions</span></td><td><code>2221d3b08a15c339</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.JitLimitation</span></td><td><code>ffe257fc7afde44d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.ProviderBindingImpl</span></td><td><code>22494140e6703f5a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorImpl.ProviderBindingImpl.1</span></td><td><code>3033d6071c20ce54</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorOptionsProcessor</span></td><td><code>4bc13ae37c60e773</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell</span></td><td><code>34af46f45093f0f1</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell.Builder</span></td><td><code>40c919d9d2d406cd</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell.InjectorFactory</span></td><td><code>a0087b2b78ba50db</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell.LoggerFactory</span></td><td><code>f15ce8be73456ec4</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell.RootModule</span></td><td><code>84655aef1671d644</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InjectorShell.SLF4JLoggerFactory</span></td><td><code>f00b6376d14f7cd3</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InstanceBindingImpl</span></td><td><code>441b8dd4e4ec6be3</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalContext</span></td><td><code>72bfb1e91b666b48</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalFactoryToInitializableAdapter</span></td><td><code>276830b2d2ba591e</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalFactoryToProviderAdapter</span></td><td><code>db17e85cf2e12641</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalFlags</span></td><td><code>c98b79a277c3f354</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalFlags.IncludeStackTraceOption</span></td><td><code>8f5186e0f567f92a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalInjectorCreator</span></td><td><code>4b5ea820da9d906f</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.InternalInjectorCreator.1</span></td><td><code>e343fa1b4d89a131</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.LinkedBindingImpl</span></td><td><code>d3063740c1243552</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.LinkedProviderBindingImpl</span></td><td><code>4eb910e633bb5dd6</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ListenerBindingProcessor</span></td><td><code>3240f9991d6ad572</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.LookupProcessor</span></td><td><code>b92a316cbecc98fe</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MembersInjectorImpl</span></td><td><code>87c5173ca241eb20</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MembersInjectorImpl.1</span></td><td><code>09cd34e66ebaa46b</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MembersInjectorImpl.1.1</span></td><td><code>dd953a74815125b0</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MembersInjectorStore</span></td><td><code>d41e48c4b0e0d3f0</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MembersInjectorStore.1</span></td><td><code>e7243b2d094d01b4</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MessageProcessor</span></td><td><code>6b7f0d27e00d728b</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MoreTypes</span></td><td><code>20402d193f1d6146</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MoreTypes.GenericArrayTypeImpl</span></td><td><code>6b0fc939747b6c78</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MoreTypes.ParameterizedTypeImpl</span></td><td><code>bc3a73e34d8beb4d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.MoreTypes.WildcardTypeImpl</span></td><td><code>bf66aae1f92d2b45</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Nullability</span></td><td><code>6d2c02900761802d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.PrivateElementProcessor</span></td><td><code>8f2b55be2ac4d30a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProcessedBindingData</span></td><td><code>b5f2385523fd11d2</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderInstanceBindingImpl</span></td><td><code>40a14f4553a03f01</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderInternalFactory</span></td><td><code>0308559c2458639b</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderInternalFactory.1</span></td><td><code>acbf6469d81943f2</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderMethodsModule</span></td><td><code>cc11b54811b89a72</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderMethodsModule.Signature</span></td><td><code>864086fdadb903c9</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderToInternalFactoryAdapter</span></td><td><code>2baf06d3b9c78290</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProviderToInternalFactoryAdapter.1</span></td><td><code>9f3883d68e056d5d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProvisionListenerCallbackStore</span></td><td><code>21f80d4718f5db29</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProvisionListenerCallbackStore.1</span></td><td><code>e2efefcc29a8e206</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProvisionListenerCallbackStore.KeyBinding</span></td><td><code>fa2dc35e91e3eb41</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProvisionListenerStackCallback</span></td><td><code>b2f08b4dd40f0284</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ProvisionListenerStackCallback.Provision</span></td><td><code>6072eb42097b4aae</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.ScopeBindingProcessor</span></td><td><code>12cbf39d484ef75c</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping</span></td><td><code>b4ec185403aa3ac8</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.1</span></td><td><code>91b7d289dc6ba179</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.2</span></td><td><code>6c96a3a6bd447073</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.3</span></td><td><code>fad75cc44a07f8af</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.4</span></td><td><code>14a9aa6a70229b4a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.5</span></td><td><code>90eefc428b9902fb</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.Scoping.6</span></td><td><code>e92b4281c35261a9</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.SingleFieldInjector</span></td><td><code>4ede6fdd2d514621</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.SingleMethodInjector</span></td><td><code>0e67018e9763a843</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.SingleMethodInjector.1</span></td><td><code>d7a516def93f0561</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.SingleParameterInjector</span></td><td><code>9665ecd3d35adc3d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.State</span></td><td><code>c745f0ffe10c7490</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.State.1</span></td><td><code>7b5ae133af31351c</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor</span></td><td><code>ca1698932593ee5d</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.1</span></td><td><code>e7f6178e1893b5bd</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.2</span></td><td><code>cfb3471af532ce44</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.3</span></td><td><code>83671198dec411c0</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.4</span></td><td><code>e6c657bc58dc1dad</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.5</span></td><td><code>b072f10504c33b57</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.TypeConverterBindingProcessor.6</span></td><td><code>3d6c329d0da395ae</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.UntargettedBindingImpl</span></td><td><code>5676acea1beeae57</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.UntargettedBindingProcessor</span></td><td><code>a5f32eae2d07bb42</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.UntargettedBindingProcessor.1</span></td><td><code>1928543ccd6929c4</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.WeakKeySet</span></td><td><code>d940537a575989f2</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.WeakKeySet.1</span></td><td><code>10c9d49dff015b09</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.util.Classes</span></td><td><code>23715e7591f1f6ff</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.util.SourceProvider</span></td><td><code>0fcebaf9502bfa7a</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.util.StackTraceElements</span></td><td><code>0ebe540211f26a45</code></td></tr><tr><td><span class="el_class">com.google.inject.internal.util.Stopwatch</span></td><td><code>516206e081f29525</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.AbstractMatcher</span></td><td><code>1932d985c3857427</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.Matchers</span></td><td><code>a160c61887827fd4</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.Matchers.Any</span></td><td><code>7435a6ae33c9641e</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.Matchers.IdenticalTo</span></td><td><code>ff6e516d3cc09471</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.Matchers.Only</span></td><td><code>e41b141b45b4a369</code></td></tr><tr><td><span class="el_class">com.google.inject.matcher.Matchers.SubclassesOf</span></td><td><code>653b6a36223d19e8</code></td></tr><tr><td><span class="el_class">com.google.inject.name.NamedImpl</span></td><td><code>54862cd90e77fa29</code></td></tr><tr><td><span class="el_class">com.google.inject.name.Names</span></td><td><code>3067b84218034520</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.DefaultBindingTargetVisitor</span></td><td><code>fe1176b855562ad6</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.DefaultElementVisitor</span></td><td><code>be219d13229c86b2</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.Dependency</span></td><td><code>ee22e1ca189971a0</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ElementSource</span></td><td><code>79d89bf3930ffbe9</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.Elements</span></td><td><code>80caae85bc53701c</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.Elements.1</span></td><td><code>32bb6aa2821c7ba1</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.Elements.RecordingBinder</span></td><td><code>ffa99f80487d261b</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint</span></td><td><code>fa7dc8cd8d22e5e2</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.InjectableField</span></td><td><code>4cc388fb7047da34</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.InjectableMember</span></td><td><code>7a5f33134d17c4cf</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.InjectableMembers</span></td><td><code>7295a91d8d2ea5a3</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.InjectableMethod</span></td><td><code>016a21434709e3cd</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.OverrideIndex</span></td><td><code>7f14e81e6a7073d3</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionPoint.Position</span></td><td><code>50a79f8daf31f0d6</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.InjectionRequest</span></td><td><code>e58cc4cb659fb422</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ModuleSource</span></td><td><code>b7b15b3593fd4889</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ProviderLookup</span></td><td><code>766bbd342466da07</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ProviderLookup.1</span></td><td><code>e13497401bc5de37</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ProvisionListener.ProvisionInvocation</span></td><td><code>2a09fbb744f7e500</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ProvisionListenerBinding</span></td><td><code>a801ae342301a29d</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.ScopeBinding</span></td><td><code>2ff65dbf848e7a34</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.TypeConverterBinding</span></td><td><code>8e2fe98d090189ad</code></td></tr><tr><td><span class="el_class">com.google.inject.spi.TypeListenerBinding</span></td><td><code>d88ddc8c27efefbc</code></td></tr><tr><td><span class="el_class">com.google.inject.util.Modules</span></td><td><code>9b92694da94f309c</code></td></tr><tr><td><span class="el_class">com.google.inject.util.Modules.EmptyModule</span></td><td><code>b9d1d75a30d67bd7</code></td></tr><tr><td><span class="el_class">com.google.inject.util.Providers</span></td><td><code>86125fca53a9b46d</code></td></tr><tr><td><span class="el_class">com.google.inject.util.Providers.ConstantProvider</span></td><td><code>da6b5b3e32e44a41</code></td></tr><tr><td><span class="el_class">com.google.inject.util.Types</span></td><td><code>4c1ebd720c6541ce</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.Configuration</span></td><td><code>fdfdf4c771b2efd4</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.Configuration.ConfigurationBuilder</span></td><td><code>f52b0faae2d1a518</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.JsonPath</span></td><td><code>0f944dab0ef13b0c</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.Option</span></td><td><code>ffceb1749c64578b</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.internal.DefaultsImpl</span></td><td><code>14191ee4a43a8236</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.internal.JsonContext</span></td><td><code>7e9d12faf35b05b8</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.internal.Utils</span></td><td><code>a5127932f36e9ed2</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.json.AbstractJsonProvider</span></td><td><code>bd6a27811f1d2037</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.json.JsonSmartJsonProvider</span></td><td><code>4e7957a27cdf8de4</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider</span></td><td><code>a089160a47ef7f47</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.1</span></td><td><code>76c11f0860c4c0cd</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.BigDecimalReader</span></td><td><code>681c051a6111daf0</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.DateReader</span></td><td><code>53fed090e95d02e1</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.DoubleReader</span></td><td><code>8d7fe2d3f3b3447f</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.FloatReader</span></td><td><code>a62d93212df947d8</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.IntegerReader</span></td><td><code>b59cf6e2b5340bc3</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.LongReader</span></td><td><code>5f0a725e32cdc25f</code></td></tr><tr><td><span class="el_class">com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider.StringReader</span></td><td><code>1904e5fcd71d08d1</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.FieldAssertion</span></td><td><code>5e7ee3fb87ce0193</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.IteratingOverArray.isAssertingAValueInArray</span></td><td><code>f6b9e42a17730daf</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonAsserter</span></td><td><code>4f5c9973179a9bf0</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonAsserterConfiguration</span></td><td><code>59b77db03c737a5c</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonAssertion</span></td><td><code>cf1bc5652f4f1c58</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonAssertion.assertThat</span></td><td><code>75a0b20274091e51</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonVerifiable.jsonPath.0</span></td><td><code>4087b6fed6392c95</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.JsonVerifiable.withoutThrowingException</span></td><td><code>4abab5427e06ecc5</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.NamelessArrayHavingFieldAssertion</span></td><td><code>11281d0c5cc7332b</code></td></tr><tr><td><span class="el_class">com.toomuchcoding.jsonassert.ReadyToCheckAsserter</span></td><td><code>9dee44314fd56861</code></td></tr><tr><td><span class="el_class">groovy.grape.GrabAnnotationTransformation</span></td><td><code>07ee91221cd00f7b</code></td></tr><tr><td><span class="el_class">groovy.json.JsonException</span></td><td><code>11182c7a98aaf580</code></td></tr><tr><td><span class="el_class">groovy.json.JsonOutput</span></td><td><code>fb4971688caca005</code></td></tr><tr><td><span class="el_class">groovy.json.JsonOutput.toJson</span></td><td><code>01dfe9ff819ce313</code></td></tr><tr><td><span class="el_class">groovy.json.JsonOutput.toJson.0</span></td><td><code>62c220c409f1c155</code></td></tr><tr><td><span class="el_class">groovy.json.JsonParserType</span></td><td><code>bec0347c677dabb8</code></td></tr><tr><td><span class="el_class">groovy.json.JsonSlurper</span></td><td><code>d5a4d44a5992d420</code></td></tr><tr><td><span class="el_class">groovy.json.JsonSlurper.1</span></td><td><code>315d4c139571d676</code></td></tr><tr><td><span class="el_class">groovy.json.JsonSlurper.parseText</span></td><td><code>98cc488a78a9e2ae</code></td></tr><tr><td><span class="el_class">groovy.json.StringEscapeUtils</span></td><td><code>a0005c57cc4e4359</code></td></tr><tr><td><span class="el_class">groovy.json.StringEscapeUtils.escapeJava.0</span></td><td><code>18e58b6539cac9c0</code></td></tr><tr><td><span class="el_class">groovy.json.StringEscapeUtils.unescapeJavaScript</span></td><td><code>0b21e0db8361d2b9</code></td></tr><tr><td><span class="el_class">groovy.json.internal.BaseJsonParser</span></td><td><code>25077a55021a083e</code></td></tr><tr><td><span class="el_class">groovy.json.internal.CharBuf</span></td><td><code>0769315bf018f217</code></td></tr><tr><td><span class="el_class">groovy.json.internal.CharScanner</span></td><td><code>467e5eb7fd47c1e9</code></td></tr><tr><td><span class="el_class">groovy.json.internal.Chr</span></td><td><code>5e375a20fabcdeb4</code></td></tr><tr><td><span class="el_class">groovy.json.internal.FastStringUtils</span></td><td><code>f8668bd40612c83f</code></td></tr><tr><td><span class="el_class">groovy.json.internal.FastStringUtils.StringImplementation</span></td><td><code>898afc08ec6fc781</code></td></tr><tr><td><span class="el_class">groovy.json.internal.FastStringUtils.StringImplementation.1</span></td><td><code>f5c1e518b2515b79</code></td></tr><tr><td><span class="el_class">groovy.json.internal.FastStringUtils.StringImplementation.2</span></td><td><code>18bc648eef80d2b1</code></td></tr><tr><td><span class="el_class">groovy.json.internal.FastStringUtils.StringImplementation.3</span></td><td><code>7ccd0be5234ef0df</code></td></tr><tr><td><span class="el_class">groovy.json.internal.JsonParserCharArray</span></td><td><code>839614a369d47266</code></td></tr><tr><td><span class="el_class">groovy.json.internal.LazyMap</span></td><td><code>f2058599c6093c13</code></td></tr><tr><td><span class="el_class">groovy.json.internal.Sys</span></td><td><code>c02d13b8e9e8d124</code></td></tr><tr><td><span class="el_class">groovy.lang.Binding</span></td><td><code>d6f13b13d4f1ae9c</code></td></tr><tr><td><span class="el_class">groovy.lang.Closure</span></td><td><code>7f7dc2faff824998</code></td></tr><tr><td><span class="el_class">groovy.lang.Closure.1</span></td><td><code>249dc1ab920c8ffb</code></td></tr><tr><td><span class="el_class">groovy.lang.GString</span></td><td><code>f5c001a55cac3c62</code></td></tr><tr><td><span class="el_class">groovy.lang.GString.1</span></td><td><code>e86c05cea036b648</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader</span></td><td><code>d78af0dfcdb67675</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.1</span></td><td><code>5a059d32a1407a40</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.1.1</span></td><td><code>fdd9e7e9eaaa1384</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.4</span></td><td><code>d9b5d3cf0ec797f5</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.5</span></td><td><code>2ad7c35cfcee95d1</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.ClassCollector</span></td><td><code>24d7b23e64de4cb6</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyClassLoader.InnerLoader</span></td><td><code>ccb837b508638080</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyCodeSource</span></td><td><code>f3557b0d03f9f84d</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyCodeSource.1</span></td><td><code>56c16cb3f364438f</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyObjectSupport</span></td><td><code>b152f70aec12bf4e</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyRuntimeException</span></td><td><code>5a4c590ddc11a589</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyShell</span></td><td><code>8f929abb1738358b</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyShell.1</span></td><td><code>7d7852c818ac304d</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovyShell.5</span></td><td><code>d5efcb54dfb65289</code></td></tr><tr><td><span class="el_class">groovy.lang.GroovySystem</span></td><td><code>bec3534da9e1c7c4</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaArrayLengthProperty</span></td><td><code>79fba590cecd3406</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaBeanProperty</span></td><td><code>e88bc07236d9473d</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl</span></td><td><code>5842a02718035870</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.1</span></td><td><code>80e7c7bf37bed984</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.15</span></td><td><code>b0140c7362dbeb58</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.16</span></td><td><code>e0e319b1272cb830</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.17</span></td><td><code>95941c8ea970ea43</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.1MOPIter</span></td><td><code>c712311b69edae24</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.2</span></td><td><code>34a5d7a03dce45af</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.8</span></td><td><code>8304e4a894c7f0af</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.DummyMetaMethod</span></td><td><code>fcc49420d2ee0f24</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.Index</span></td><td><code>488ebf81b0127a4d</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.MethodIndex</span></td><td><code>29bf6914a66b9b2e</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassImpl.MethodIndexAction</span></td><td><code>f573535663c1df31</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaClassRegistry.MetaClassCreationHandle</span></td><td><code>f8531c9d4b28ba8a</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaMethod</span></td><td><code>e8ca809c7030056e</code></td></tr><tr><td><span class="el_class">groovy.lang.MetaProperty</span></td><td><code>52faf21238838205</code></td></tr><tr><td><span class="el_class">groovy.lang.MissingMethodException</span></td><td><code>1fac87807cb4a8c5</code></td></tr><tr><td><span class="el_class">groovy.lang.Reference</span></td><td><code>049e14e4f4c00818</code></td></tr><tr><td><span class="el_class">groovy.lang.Script</span></td><td><code>6e8188b174954617</code></td></tr><tr><td><span class="el_class">groovy.util.CharsetToolkit</span></td><td><code>737109de74334b3a</code></td></tr><tr><td><span class="el_class">groovy.util.MapEntry</span></td><td><code>ea5f99c9f7b7d3e9</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ANTLRException</span></td><td><code>a51edf06bde19225</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ANTLRHashString</span></td><td><code>1412a48f82edfb7d</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ANTLRStringBuffer</span></td><td><code>329947117fbe91be</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ASTFactory</span></td><td><code>f2aa8c9b867ba79d</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ASTPair</span></td><td><code>e18b895a4a382824</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.BaseAST</span></td><td><code>e3322e37e72f5d97</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.CharBuffer</span></td><td><code>86cd39478f431d42</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.CharQueue</span></td><td><code>73b5d12d6df09706</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.CharScanner</span></td><td><code>9a13dc582f1f093d</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.CommonAST</span></td><td><code>e4bdf5748d356afa</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.InputBuffer</span></td><td><code>7c67b9e312c4c983</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.LLkParser</span></td><td><code>6bbe6cecf55878a8</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.LexerSharedInputState</span></td><td><code>1592d29f2c01cff7</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.MismatchedCharException</span></td><td><code>5447ab532a5590f8</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.MismatchedTokenException</span></td><td><code>a7d5efd21ff8251c</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.NoViableAltException</span></td><td><code>50813a860469e4f9</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.Parser</span></td><td><code>8933089dad346c11</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.ParserSharedInputState</span></td><td><code>ec40015946c7c665</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.RecognitionException</span></td><td><code>2eea52a7fb9a1ee3</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.SemanticException</span></td><td><code>07d5cbd15485fdbe</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.Token</span></td><td><code>435cd9c6fe653884</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.TokenBuffer</span></td><td><code>e9b670413aefe18d</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.TokenQueue</span></td><td><code>259b51a4f3a41229</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.Utils</span></td><td><code>1b823c7e1e49b51a</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.collections.impl.ASTArray</span></td><td><code>038f1cf34ba644c4</code></td></tr><tr><td><span class="el_class">groovyjarjarantlr.collections.impl.BitSet</span></td><td><code>984fefb0767c8494</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.ByteVector</span></td><td><code>c08173292fa23375</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.ClassVisitor</span></td><td><code>e12cf50f8525ad52</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.ClassWriter</span></td><td><code>a647b18133b85719</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Edge</span></td><td><code>b729073112db2d6d</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.FieldVisitor</span></td><td><code>ec9e5a6068b55cf3</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.FieldWriter</span></td><td><code>7eea4de7289a9039</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Frame</span></td><td><code>2b7a2ffca4ef8df0</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Handler</span></td><td><code>fd3caa71d4c46704</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Item</span></td><td><code>f374d04cf13143f7</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Label</span></td><td><code>be8f5d3ebb1192ae</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.MethodVisitor</span></td><td><code>c481ebfea924f98f</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.MethodWriter</span></td><td><code>30dc2e9c651bd3d5</code></td></tr><tr><td><span class="el_class">groovyjarjarasm.asm.Type</span></td><td><code>ef500b1e0aa9349a</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.Maven30xRuntime</span></td><td><code>cbcca12c3a225ff8</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.Maven311Runtime</span></td><td><code>21ad01de2b9378c6</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.Maven321Runtime</span></td><td><code>f8a76447bc6eee31</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.Maven325Runtime</span></td><td><code>d886be29d4835965</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime</span></td><td><code>dab8a1a9084dee20</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.1</span></td><td><code>c8e9a4f70e00b198</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.2</span></td><td><code>9b8313e28b094ffd</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.3</span></td><td><code>8dd1308d39057370</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.4</span></td><td><code>73f1e6f12ea9888f</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.5</span></td><td><code>e60325b444af0e31</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestMavenRuntime.6</span></td><td><code>db76a20233be5076</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestProperties</span></td><td><code>bd8b58cba824344c</code></td></tr><tr><td><span class="el_class">io.takari.maven.testing.TestResources</span></td><td><code>363619e1bcd4c749</code></td></tr><tr><td><span class="el_class">javax.annotation.meta.When</span></td><td><code>7f00808554248c49</code></td></tr><tr><td><span class="el_class">net.minidev.json.JSONStyle</span></td><td><code>279104f8cc80449d</code></td></tr><tr><td><span class="el_class">net.minidev.json.JSONValue</span></td><td><code>a04e442d8109a467</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj</span></td><td><code>83b32e181f3ac06d</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj.Escape4Web</span></td><td><code>89c6fd3c4602c3e0</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj.EscapeLT</span></td><td><code>188425156135a3a0</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj.MPAgressive</span></td><td><code>6f90410f57f31fb9</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj.MPSimple</span></td><td><code>9fbda35e8f8a67ea</code></td></tr><tr><td><span class="el_class">net.minidev.json.JStylerObj.MPTrue</span></td><td><code>9d1d4c7c6ee93599</code></td></tr><tr><td><span class="el_class">net.minidev.json.parser.JSONParser</span></td><td><code>0e85b438c73e6848</code></td></tr><tr><td><span class="el_class">net.minidev.json.parser.JSONParserBase</span></td><td><code>4b0f8fc59514f0c7</code></td></tr><tr><td><span class="el_class">net.minidev.json.parser.JSONParserBase.MSB</span></td><td><code>57964e9b0c1c9bd5</code></td></tr><tr><td><span class="el_class">net.minidev.json.parser.JSONParserMemory</span></td><td><code>09df7b32d81814c9</code></td></tr><tr><td><span class="el_class">net.minidev.json.parser.JSONParserString</span></td><td><code>4b904ac9ddc089ac</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.ArrayWriter</span></td><td><code>fe179dde916df724</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.BeansWriter</span></td><td><code>3342849a6d8b02e0</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.BeansWriterASM</span></td><td><code>1d5a0d55fd832bd5</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter</span></td><td><code>4d8d62a6f85dc3b9</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.1</span></td><td><code>c210eb9ed2a6ed71</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.10</span></td><td><code>18d1543370c46d69</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.11</span></td><td><code>e7815053dab7fd22</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.12</span></td><td><code>9902520881197359</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.13</span></td><td><code>271684a4f279d383</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.14</span></td><td><code>8196de3253a85595</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.15</span></td><td><code>6823e6cdbd10ca39</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.16</span></td><td><code>b91f26b23538eb7a</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.17</span></td><td><code>6d74e9a1c403f691</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.18</span></td><td><code>368018bf2da1f005</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.2</span></td><td><code>67385d4af0b7bab3</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.3</span></td><td><code>42eefdf2168eb933</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.4</span></td><td><code>d9d5cbf33bcd511b</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.5</span></td><td><code>6625c035dca61356</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.6</span></td><td><code>ea16d3ef3e8456c0</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.7</span></td><td><code>2ba9ff826ab216dc</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.8</span></td><td><code>11edd09c6ec5ab8e</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.9</span></td><td><code>7f856af21c9d5005</code></td></tr><tr><td><span class="el_class">net.minidev.json.reader.JsonWriter.WriterByInterface</span></td><td><code>dbb9f047dbb05a10</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper</span></td><td><code>b42a8c9b71ffc260</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.1</span></td><td><code>369f05296c2e5970</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.10</span></td><td><code>899ff71c53aa12dc</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.11</span></td><td><code>a19d7f358aea188f</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.12</span></td><td><code>7b04b25d565de082</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.13</span></td><td><code>c780c964ee44d9c0</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.14</span></td><td><code>3ce8032a165e35c5</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.15</span></td><td><code>a95082834a1ac698</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.16</span></td><td><code>d095907ed1c146df</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.2</span></td><td><code>2777dd19164909a6</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.3</span></td><td><code>bb17e1b62817837a</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.4</span></td><td><code>c526f02a0efa461c</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.5</span></td><td><code>86ab8a265baa23a2</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.6</span></td><td><code>32aa1e1e5538719b</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.7</span></td><td><code>185f51401c9c4455</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.8</span></td><td><code>b248a614865c3479</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.ArraysMapper.9</span></td><td><code>24fd81f963dc769a</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.BeansMapper</span></td><td><code>081b1e58bcbee5e8</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.BeansMapper.1</span></td><td><code>b74d5dc3d6be44dc</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.DefaultMapper</span></td><td><code>ed9bffa8278f3b5a</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.DefaultMapperOrdered</span></td><td><code>259add810cc9602f</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.JsonReader</span></td><td><code>575fcae6fdee09f8</code></td></tr><tr><td><span class="el_class">net.minidev.json.writer.JsonReaderI</span></td><td><code>07f56021bbdd2f0e</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.ArchiveOutputStream</span></td><td><code>d2bbb03c29ac405e</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.AbstractUnicodeExtraField</span></td><td><code>6e8511b518f6fd8b</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.AsiExtraField</span></td><td><code>ce11c7a448a9e0d3</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ExtraFieldUtils</span></td><td><code>a8c727cded066fc6</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.FallbackZipEncoding</span></td><td><code>8fd73e0ef9269728</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.GeneralPurposeBit</span></td><td><code>5034f206ce1e19cd</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.JarMarker</span></td><td><code>a167a636ccf6fe38</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator</span></td><td><code>ff87abc0e799ae60</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.1</span></td><td><code>1c631d6d968eeac8</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.2</span></td><td><code>cc4b1c8b4ed73def</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ScatterZipOutputStream</span></td><td><code>aab86f3c480c6646</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ScatterZipOutputStream.CompressedEntry</span></td><td><code>ec107021b15fd330</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.StreamCompressor</span></td><td><code>811b29b690d680c2</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.StreamCompressor.OutputStreamCompressor</span></td><td><code>8abaa0f4040998c5</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.StreamCompressor.ScatterGatherBackingStoreCompressor</span></td><td><code>d24cb57339fda4fa</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField</span></td><td><code>2a58701aa0259996</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.UnicodePathExtraField</span></td><td><code>2b835ea2ada6a7f7</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp</span></td><td><code>8d2091b732ef9eaa</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.X7875_NewUnix</span></td><td><code>e11adc0e19ced076</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField</span></td><td><code>8e86195db41a1d67</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.Zip64Mode</span></td><td><code>b3bdf6f142cade9a</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipArchiveEntry</span></td><td><code>dd2e5200a90b9e83</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipArchiveEntryRequest</span></td><td><code>827086b35b009312</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream</span></td><td><code>71b887eb357c9f42</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.CurrentEntry</span></td><td><code>4e96cf033972e3d6</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.UnicodeExtraFieldPolicy</span></td><td><code>5256633abbc40587</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipEncodingHelper</span></td><td><code>d7326c08346dcabe</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipEncodingHelper.SimpleEncodingHolder</span></td><td><code>64de5e0ddf0c7eba</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipLong</span></td><td><code>d7bb1a2cad999445</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipMethod</span></td><td><code>72a2bfa280c45fa1</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipShort</span></td><td><code>ef87ce4c51801eb2</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.archivers.zip.ZipUtil</span></td><td><code>e253187fbde67148</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.utils.BoundedInputStream</span></td><td><code>e94460a0b8577772</code></td></tr><tr><td><span class="el_class">org.apache.commons.compress.utils.Charsets</span></td><td><code>9ddc92ca67cefaaf</code></td></tr><tr><td><span class="el_class">org.apache.commons.io.input.ClosedInputStream</span></td><td><code>a3b5c6039b36b68a</code></td></tr><tr><td><span class="el_class">org.apache.commons.io.output.ThresholdingOutputStream</span></td><td><code>bb1924e574a4ce60</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.ArrayUtils</span></td><td><code>ea0686b852a914a2</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.StringEscapeUtils</span></td><td><code>d44faef39aa1a262</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.StringEscapeUtils.CsvEscaper</span></td><td><code>845495d46b1bc84c</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.StringEscapeUtils.CsvUnescaper</span></td><td><code>ba8586f7ed5b4d11</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.StringUtils</span></td><td><code>0846497e2832e6b1</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.StringUtils.isBlank</span></td><td><code>2806b5460e49620b</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.Validate</span></td><td><code>97a55d1e6b03bde9</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.AggregateTranslator</span></td><td><code>b4c53c10f2a073fc</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.CharSequenceTranslator</span></td><td><code>13de9c2c0165e9d3</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.CodePointTranslator</span></td><td><code>8d0c33a3d30f9e9d</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.EntityArrays</span></td><td><code>3ffbe3de2452b654</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.JavaUnicodeEscaper</span></td><td><code>b2ad5c98d478d64f</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.LookupTranslator</span></td><td><code>8d33e3d91c7599b9</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.NumericEntityEscaper</span></td><td><code>b4729e83590e3824</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.NumericEntityUnescaper</span></td><td><code>32dd73ee0fe81093</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.NumericEntityUnescaper.OPTION</span></td><td><code>687d69402a0775b7</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.OctalUnescaper</span></td><td><code>15de9c51dc777615</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.UnicodeEscaper</span></td><td><code>eadf1241d7d6d1da</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.UnicodeUnescaper</span></td><td><code>8df6b732900822a5</code></td></tr><tr><td><span class="el_class">org.apache.commons.lang3.text.translate.UnicodeUnpairedSurrogateRemover</span></td><td><code>a86c2408cfdd2153</code></td></tr><tr><td><span class="el_class">org.apache.maven.DefaultArtifactFilterManager</span></td><td><code>e215606c23130308</code></td></tr><tr><td><span class="el_class">org.apache.maven.DefaultMaven</span></td><td><code>aa023905b334cdd4</code></td></tr><tr><td><span class="el_class">org.apache.maven.LoggingRepositoryListener</span></td><td><code>33e7a0da10fc56cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.RepositoryUtils</span></td><td><code>f3c936413ff58342</code></td></tr><tr><td><span class="el_class">org.apache.maven.RepositoryUtils.MavenArtifactTypeRegistry</span></td><td><code>7f3f6e0fcdbccc0e</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.Artifact</span></td><td><code>4a85486c84072db1</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.DefaultArtifact</span></td><td><code>406231b7de03b283</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.factory.DefaultArtifactFactory</span></td><td><code>2f8355f6311b2629</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.handler.DefaultArtifactHandler</span></td><td><code>14622be40009fa66</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager</span></td><td><code>2fc6887cf62086d8</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.ArtifactRepositoryPolicy</span></td><td><code>e12465d3c22bab3d</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.LegacyLocalRepositoryManager</span></td><td><code>9e3454a3c796c6d0</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.MavenArtifactRepository</span></td><td><code>7a76c73f15598507</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout</span></td><td><code>fb6c46841de2f685</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager</span></td><td><code>f84a9fef0d9cf1a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.repository.metadata.io.DefaultMetadataReader</span></td><td><code>43dc8635efaafd39</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.resolver.DefaultArtifactCollector</span></td><td><code>a61f7de26ea47fbb</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.resolver.DefaultArtifactResolver</span></td><td><code>a622c3c247f30b62</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.resolver.DefaultArtifactResolver.DaemonThreadCreator</span></td><td><code>1bb60c237be05504</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.resolver.DefaultResolutionErrorHandler</span></td><td><code>edf2915c9cc51cd5</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.ComparableVersion</span></td><td><code>df082ef2533dc24f</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.ComparableVersion.IntegerItem</span></td><td><code>358a5b11e8c8d173</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.ComparableVersion.ListItem</span></td><td><code>810c2b27d647a4cc</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.ComparableVersion.StringItem</span></td><td><code>20a2ddef72a703be</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.DefaultArtifactVersion</span></td><td><code>c685bd51c411c0f6</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.Restriction</span></td><td><code>daea81511469e6e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.artifact.versioning.VersionRange</span></td><td><code>9e6152e35058248d</code></td></tr><tr><td><span class="el_class">org.apache.maven.bridge.MavenRepositorySystem</span></td><td><code>b952ea980b9dc4ae</code></td></tr><tr><td><span class="el_class">org.apache.maven.classrealm.DefaultClassRealmManager</span></td><td><code>0ad0839dca18119c</code></td></tr><tr><td><span class="el_class">org.apache.maven.eventspy.internal.EventSpyDispatcher</span></td><td><code>df3a296ef365715c</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.DefaultMavenExecutionRequest</span></td><td><code>53abb44a7d2b5d11</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.DefaultMavenExecutionRequestPopulator</span></td><td><code>f015c599604a4e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.DefaultMavenExecutionResult</span></td><td><code>872af31f35dc9112</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.MavenSession</span></td><td><code>b0eaa2f199210bdb</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.MojoExecutionEvent</span></td><td><code>a27bdcb1c2399f7a</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.SettingsAdapter</span></td><td><code>b407d311efbd62e4</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScope</span></td><td><code>324eed7081b2aec3</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScope.1</span></td><td><code>caf13dfac1343e7a</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScope.2</span></td><td><code>fe2da188847bb601</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScope.ScopeState</span></td><td><code>639aebf0e43e695e</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScopeCoreModule</span></td><td><code>e52baae6dff20885</code></td></tr><tr><td><span class="el_class">org.apache.maven.execution.scope.internal.MojoExecutionScopeModule</span></td><td><code>dbd4b5de3f010c9b</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.DefaultLifecycles</span></td><td><code>e91fdc5a87902e15</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.Lifecycle</span></td><td><code>d6b29bd07fd94402</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.BuildListCalculator</span></td><td><code>0f34b4243c9d2ed9</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult</span></td><td><code>2275b1f446263f62</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer</span></td><td><code>58f11ee8be9d3991</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.1</span></td><td><code>282b79432794c360</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.GoalSpec</span></td><td><code>5fd96dda25a6c056</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator</span></td><td><code>f1e90e76a6313908</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.LifecycleDebugLogger</span></td><td><code>62bd6f87545345ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.LifecyclePluginResolver</span></td><td><code>10ce0b467d83eaf8</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.LifecycleStarter</span></td><td><code>58666d99f828aaae</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.internal.MojoDescriptorCreator</span></td><td><code>cb9559631c390288</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</span></td><td><code>69c83f295cdb6422</code></td></tr><tr><td><span class="el_class">org.apache.maven.lifecycle.mapping.Lifecycle</span></td><td><code>73e7230f329073c3</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Activation</span></td><td><code>83ddfbf1ac86ca7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.ActivationProperty</span></td><td><code>808187c25ce310c2</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Build</span></td><td><code>e0cf5a570bfbfb3e</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.BuildBase</span></td><td><code>21d9f24fcc359e55</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.ConfigurationContainer</span></td><td><code>4a70cb7771bb8bcd</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.FileSet</span></td><td><code>58b64af0a46091f6</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.InputLocation</span></td><td><code>551b1fa882e18968</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.InputSource</span></td><td><code>1f91e3059a218951</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Model</span></td><td><code>5c735c4440b47e81</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.ModelBase</span></td><td><code>ddbe736891094dfa</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.PatternSet</span></td><td><code>21897b6b9e66cff4</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Plugin</span></td><td><code>1877386dcd323e6f</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.PluginConfiguration</span></td><td><code>e340018c607f9ed1</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.PluginContainer</span></td><td><code>94b3ac607db9c889</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.PluginExecution</span></td><td><code>f89dbed63a84918d</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.PluginManagement</span></td><td><code>69d9305595d18ab7</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Profile</span></td><td><code>bf51d8594db662d1</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Reporting</span></td><td><code>2acf58775d6c22fe</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Repository</span></td><td><code>a9054876e2c6698f</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.RepositoryBase</span></td><td><code>09f1ebd01e445526</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.RepositoryPolicy</span></td><td><code>0f2188129ce3dbb3</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.Resource</span></td><td><code>4e368bd08ab0d1eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.AbstractModelBuildingListener</span></td><td><code>e84b1dd773208f18</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelBuilder</span></td><td><code>d92ebec55c6ef638</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelBuildingEvent</span></td><td><code>2eefe43406f273fc</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelBuildingRequest</span></td><td><code>b0dc3770765abb4f</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelBuildingResult</span></td><td><code>e0409430d440e374</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelProblem</span></td><td><code>84141d1ef902db23</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelProblemCollector</span></td><td><code>1799d74cf8ece685</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.DefaultModelProcessor</span></td><td><code>eb454a85a1f406ac</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.FileModelSource</span></td><td><code>829b44ca36716fd7</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelBuildingEventCatapult</span></td><td><code>434b8928ab754a87</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelBuildingEventCatapult.1</span></td><td><code>c2c48df5963dc6d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelData</span></td><td><code>e89c20eabad97187</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelProblem.Severity</span></td><td><code>1b5c5a842b519188</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelProblem.Version</span></td><td><code>131d658f9dc23861</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelProblemCollectorRequest</span></td><td><code>ea39d44202b9cf38</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.building.ModelProblemUtils</span></td><td><code>12296ccf3d1f05dc</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.composition.DefaultDependencyManagementImporter</span></td><td><code>8ee29b3597ca8da3</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.inheritance.DefaultInheritanceAssembler</span></td><td><code>0119c88a7fc09609</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.inheritance.DefaultInheritanceAssembler.InheritanceModelMerger</span></td><td><code>460e70f59024bb47</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator</span></td><td><code>b6a75280e85376a6</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.1</span></td><td><code>44a1df138e6074e9</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.2</span></td><td><code>dea1afae478f1877</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.3</span></td><td><code>f7915e94c69c69a4</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.BuildTimestampValueSource</span></td><td><code>383c0fb77b7f3c54</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.MavenBuildTimestamp</span></td><td><code>adbd99b874a8d1d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.PathTranslatingPostProcessor</span></td><td><code>65021c11808cfdb8</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.ProblemDetectingValueSource</span></td><td><code>5039eb1cc54a08fe</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator</span></td><td><code>1f3dec180ba8ff00</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction</span></td><td><code>8876d7e5bd35aaaa</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.CacheField</span></td><td><code>4b9c4627a0140326</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.CacheItem</span></td><td><code>a85ab2a7f3d307e0</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.ListField</span></td><td><code>0bb5ed9c96947441</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.MapField</span></td><td><code>961d01fc2fd4d3ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.ObjectField</span></td><td><code>45d236603b013493</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.StringSearchModelInterpolator.InterpolateObjectAction.StringField</span></td><td><code>c7a7e634e15eb725</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.interpolation.UrlNormalizingPostProcessor</span></td><td><code>4d320070d00099ac</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.io.DefaultModelReader</span></td><td><code>a85afb8cfeb01416</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.io.xpp3.MavenXpp3Reader</span></td><td><code>577a66113492cdde</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx</span></td><td><code>7fd570952336f756</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.locator.DefaultModelLocator</span></td><td><code>90f63444922ae84e</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.management.DefaultDependencyManagementInjector</span></td><td><code>91b724b6b93f9edb</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.management.DefaultDependencyManagementInjector.ManagementModelMerger</span></td><td><code>2809491d3547777d</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.management.DefaultPluginManagementInjector</span></td><td><code>b9e5c000a3399547</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.management.DefaultPluginManagementInjector.ManagementModelMerger</span></td><td><code>2f47fc0364ec454e</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.merge.MavenModelMerger</span></td><td><code>e481fa0d4218769a</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.merge.ModelMerger</span></td><td><code>2d19dba1adcc328a</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.normalization.DefaultModelNormalizer</span></td><td><code>4919b064a2d0ec45</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.normalization.DefaultModelNormalizer.DuplicateMerger</span></td><td><code>e91634dde7c0b52e</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.path.DefaultModelPathTranslator</span></td><td><code>73d1d1b8692ca3da</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.path.DefaultModelUrlNormalizer</span></td><td><code>22bc1f10a802b73b</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.path.DefaultPathTranslator</span></td><td><code>364d69f938a9e9f2</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.path.DefaultUrlNormalizer</span></td><td><code>e0dbffeb2fa9964e</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.plugin.DefaultLifecycleBindingsInjector</span></td><td><code>ba40b1ec1acd14e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.plugin.DefaultLifecycleBindingsInjector.LifecycleBindingsMerger</span></td><td><code>3cbeb0f7ca57c8dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.plugin.DefaultPluginConfigurationExpander</span></td><td><code>5c76ef8a895bdba2</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.plugin.DefaultReportConfigurationExpander</span></td><td><code>2158301ba4ab710a</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.plugin.DefaultReportingConverter</span></td><td><code>5317c56abe079040</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.DefaultProfileActivationContext</span></td><td><code>86f1c0613c1762d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.DefaultProfileInjector</span></td><td><code>ffcde2eb0d83486c</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.DefaultProfileInjector.ProfileModelMerger</span></td><td><code>052889f67cf8ce14</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.DefaultProfileSelector</span></td><td><code>47a9736432166355</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.activation.FileProfileActivator</span></td><td><code>6075630dfca4e183</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.activation.JdkVersionProfileActivator</span></td><td><code>737ee0c655afc7a6</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.activation.OperatingSystemProfileActivator</span></td><td><code>455c222911ca62f2</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.profile.activation.PropertyProfileActivator</span></td><td><code>0e10cf282bc9f0d9</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.superpom.DefaultSuperPomProvider</span></td><td><code>24baf101fd9d64b9</code></td></tr><tr><td><span class="el_class">org.apache.maven.model.validation.DefaultModelValidator</span></td><td><code>159de71ba821586a</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.AbstractMojo</span></td><td><code>e53d7073eeb68542</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.CompoundMojoExecutionListener</span></td><td><code>1599b44b2e382280</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.DefaultBuildPluginManager</span></td><td><code>547cc0db2c956b92</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.DefaultExtensionRealmCache</span></td><td><code>7889a3e36129adfb</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.DefaultPluginArtifactsCache</span></td><td><code>d5a29017f93f0a99</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.DefaultPluginDescriptorCache</span></td><td><code>e49df3c13497244e</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.DefaultPluginRealmCache</span></td><td><code>28e8ba28259047e1</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.Mojo</span></td><td><code>814301918a88e5b5</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.MojoExecution</span></td><td><code>857bf254f9293786</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.MojoExecution.Source</span></td><td><code>5dd911ce66014eec</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.PluginParameterExpressionEvaluator</span></td><td><code>b5609bf3ee9ed1f3</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.descriptor.MojoDescriptor</span></td><td><code>0635d6b2e5a942df</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.descriptor.Parameter</span></td><td><code>0d27cdaf44b1923b</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.descriptor.PluginDescriptor</span></td><td><code>324ab09b2f2b947b</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.descriptor.PluginDescriptorBuilder</span></td><td><code>569c706dae6305f2</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.internal.DefaultLegacySupport</span></td><td><code>f75ce44c5e3ec7e8</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.internal.DefaultMavenPluginManager</span></td><td><code>507f52d7a50975b1</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver</span></td><td><code>0e39c43e0b42c166</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.logging.SystemStreamLog</span></td><td><code>5e292633f8e94b3d</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver</span></td><td><code>efd6bc231e980a93</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver</span></td><td><code>759b36762091230b</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultMavenProjectHelper</span></td><td><code>69e0631223f423a8</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultModelBuildingListener</span></td><td><code>0a2ae8801f22c961</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectBuilder</span></td><td><code>67ed808978d208ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectBuilder.InternalConfig</span></td><td><code>eb4bf2979b60f57c</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectBuildingHelper</span></td><td><code>b34485817f2c6d46</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectBuildingRequest</span></td><td><code>91cc08ffda0bfa82</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectBuildingResult</span></td><td><code>1b54e1c34551749c</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectDependenciesResolver</span></td><td><code>57a4815a38bd0200</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.DefaultProjectRealmCache</span></td><td><code>e3f3dc7b86c70dae</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ExtensionDescriptorBuilder</span></td><td><code>7c217c16d1808a75</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.MavenProject</span></td><td><code>f14f775b95c63322</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ProjectBuildingRequest.RepositoryMerging</span></td><td><code>5564337fcb3a8426</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ProjectModelResolver</span></td><td><code>0c4d084f5588ea9b</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ProjectModelResolver.1</span></td><td><code>243eac5a7e624449</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ProjectRealmCache.CacheRecord</span></td><td><code>c26fc1d3551b629f</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.ReactorModelCache</span></td><td><code>8f0bdafcfe8f550a</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.artifact.AttachedArtifact</span></td><td><code>47787c15ef99c737</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.artifact.DefaultMavenMetadataCache</span></td><td><code>6815a4f252065ede</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.artifact.DefaultMetadataSource</span></td><td><code>3ad55364841ef1b6</code></td></tr><tr><td><span class="el_class">org.apache.maven.project.artifact.MavenMetadataSource</span></td><td><code>bdcd579bbe35b6af</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.DefaultMirrorSelector</span></td><td><code>40f516b4fcbca983</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.RepositorySystem</span></td><td><code>edd3e22de68d8f6a</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.internal.ArtifactDescriptorUtils</span></td><td><code>cc6628834531895a</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.internal.DefaultArtifactDescriptorReader</span></td><td><code>7c7a252ede825ca7</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.internal.DefaultVersionRangeResolver</span></td><td><code>02dcb74fc54827b9</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.internal.DefaultVersionResolver</span></td><td><code>c108ea78aea501ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.internal.MavenRepositorySystemUtils</span></td><td><code>862de3ca6036f4f3</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.DefaultUpdateCheckManager</span></td><td><code>65f23c06e365b29d</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.DefaultWagonManager</span></td><td><code>57d7edbd27214233</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.LegacyRepositorySystem</span></td><td><code>ef6a0de81db3f1ac</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.repository.DefaultArtifactRepositoryFactory</span></td><td><code>b974406a93b51401</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector</span></td><td><code>2dcb425fb151f411</code></td></tr><tr><td><span class="el_class">org.apache.maven.repository.legacy.resolver.conflict.NearestConflictResolver</span></td><td><code>f2042ec40b34885d</code></td></tr><tr><td><span class="el_class">org.apache.maven.rtinfo.internal.DefaultRuntimeInformation</span></td><td><code>6dfee2b43688f50c</code></td></tr><tr><td><span class="el_class">org.apache.maven.session.scope.internal.SessionScope</span></td><td><code>f0dc6bf9c3a0a2e0</code></td></tr><tr><td><span class="el_class">org.apache.maven.session.scope.internal.SessionScope.1</span></td><td><code>d739e604c7310a44</code></td></tr><tr><td><span class="el_class">org.apache.maven.session.scope.internal.SessionScope.2</span></td><td><code>212ab9db5ee40ad6</code></td></tr><tr><td><span class="el_class">org.apache.maven.session.scope.internal.SessionScope.ScopeState</span></td><td><code>bf3234013ccc059e</code></td></tr><tr><td><span class="el_class">org.apache.maven.session.scope.internal.SessionScopeModule</span></td><td><code>6065547c318148b4</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.Activation</span></td><td><code>7cfa359e8646fa29</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.IdentifiableBase</span></td><td><code>6636e0acf994bb6f</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.Profile</span></td><td><code>dac57f3d0c249999</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.Repository</span></td><td><code>bc606161e3818912</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.RepositoryBase</span></td><td><code>885e8e5de3b6af03</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.RepositoryPolicy</span></td><td><code>e442f29fd9c9becd</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.RuntimeInfo</span></td><td><code>407939fb44173566</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.Server</span></td><td><code>8e4746bc4d5d5a94</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.Settings</span></td><td><code>2d3a5776e0c1b6c6</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.SettingsUtils</span></td><td><code>a3dcf80bd89dc81a</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.TrackableBase</span></td><td><code>82fa25cba5df5d5a</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.DefaultSettingsBuilder</span></td><td><code>e8b60126b5715f03</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.DefaultSettingsBuilder.1</span></td><td><code>933e342a65898942</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.DefaultSettingsBuildingRequest</span></td><td><code>0b0fed55c50c7af2</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.DefaultSettingsBuildingResult</span></td><td><code>71e47b65b39abd99</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.DefaultSettingsProblemCollector</span></td><td><code>bbd4c9306c66d5d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.FileSettingsSource</span></td><td><code>5ff3d6b8fc395fb9</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.building.SettingsProblem.Severity</span></td><td><code>4f9a088952539866</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.crypto.DefaultSettingsDecrypter</span></td><td><code>25d59ca9db24d95e</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest</span></td><td><code>f99d0d680d74f976</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.crypto.DefaultSettingsDecryptionResult</span></td><td><code>1e0f87ff6dde6bed</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.io.DefaultSettingsReader</span></td><td><code>c89b1f887c445df8</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.io.DefaultSettingsWriter</span></td><td><code>d5cf88aaebc2282d</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.io.xpp3.SettingsXpp3Reader</span></td><td><code>5b8000c1688b6a89</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.io.xpp3.SettingsXpp3Writer</span></td><td><code>9718a878e1d27f49</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.merge.MavenSettingsMerger</span></td><td><code>061e91b5c24703fc</code></td></tr><tr><td><span class="el_class">org.apache.maven.settings.validation.DefaultSettingsValidator</span></td><td><code>ae7f1531f1af45d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.AbstractMavenFilteringRequest</span></td><td><code>b32b75979e0fe3fe</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.BaseFilter</span></td><td><code>83e8840ddb9525a9</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.DefaultMavenFileFilter</span></td><td><code>c19d7e0fa0d881ef</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.DefaultMavenReaderFilter</span></td><td><code>4558d0e342b89c19</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering</span></td><td><code>d9a07e7630da5921</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.filtering.MavenResourcesExecution</span></td><td><code>84a3595d3f1179a0</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.utils.StringUtils</span></td><td><code>506f253b43045212</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.utils.io.FileUtils</span></td><td><code>9e5d8c1cba800747</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.utils.io.IOUtil</span></td><td><code>d3295c8d108885f9</code></td></tr><tr><td><span class="el_class">org.apache.maven.shared.utils.io.Java7Support</span></td><td><code>26cff34cc54decf8</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.NonAbstractClassFilter</span></td><td><code>1e5a6074e0969c3f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>7ba29961dfebc4ba</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>442f429c26b69928</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>6e06a3a75082a947</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>e71f884825972c25</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>b4f746df2629957b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>812225234cbb3325</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>bdfcde0181550217</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076c5152b5fb9c11</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>b96d9f327ffdaaf4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.IsolatedClassLoader</span></td><td><code>ae0066301f45e487</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.JdkReflector</span></td><td><code>d6f5d6728272255a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>e77715f3c27548eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d735e73a98b2dd3b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderFactory</span></td><td><code>10eaa6c74a289a7c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderFactory.ProviderProxy</span></td><td><code>7a176b1eaeb3c61e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>b4437ea6e48d2360</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SurefireReflector</span></td><td><code>073f35a652554917</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>586f8b734e8457bd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>520e6294ac61be38</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.common.junit3.JUnit3TestChecker</span></td><td><code>7102b454a4fc6b40</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.common.junit4.JUnit4Reflector</span></td><td><code>6be9a9a787b76734</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.common.junit4.JUnit4RunListener</span></td><td><code>b6d5ab51bf0a9446</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory</span></td><td><code>fc6a4376532e9afe</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.common.junit4.JUnit4TestChecker</span></td><td><code>db394de547f23665</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junit4.JUnit4Provider</span></td><td><code>bd99b88d79022720</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>41999770f94bdbc3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>8698f1f1b0d3d1ac</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>07ce062280b3f566</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>af3c1ea7f8012a4f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>c4fe7d3fd77a7f9f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>4f4ef8baf9a9eaed</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>dfed7046a1155a37</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>0c8e07ddcfeb0d3f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>3385503f66e44602</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>c341fc8ac6d6267e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>6eae8682ccf1a30a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>61b36318792d6986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>f3750af81644d0aa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d922f6bc92e209d9</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>0f98b18d5c7c18ab</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.UrlUtils</span></td><td><code>1ff98da53c689785</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ByteBuffer</span></td><td><code>ee465046a50e3fa4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>517a9dd6a335139c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.AntlrASTProcessSnippets</span></td><td><code>d8be1a46f90e3675</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.AntlrParserPlugin</span></td><td><code>85e6cee738d2e74a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.AntlrParserPlugin.1</span></td><td><code>3769d10da023ad0f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.AntlrParserPluginFactory</span></td><td><code>e663489cf89df68d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.GroovySourceAST</span></td><td><code>0ca9f7af1e3db546</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.GroovySourceToken</span></td><td><code>cdb5a6bf1d8a384c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.LineColumn</span></td><td><code>b4558aab1aad64d3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.SourceBuffer</span></td><td><code>469aa74240be9bb3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.UnicodeEscapingReader</span></td><td><code>f8ef44d848526ebd</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.UnicodeEscapingReader.DummyLexer</span></td><td><code>7d7498458a959aee</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.UnicodeLexerSharedInputState</span></td><td><code>bb504c72ae02123a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.parser.GroovyLexer</span></td><td><code>40780a5ffca0d095</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.parser.GroovyLexer.1</span></td><td><code>cedb36db131dd388</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.antlr.parser.GroovyRecognizer</span></td><td><code>52fbda5a7b930f4c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ASTNode</span></td><td><code>70b6e04ed583b8a5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.AnnotatedNode</span></td><td><code>4d813e73da878e46</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.AnnotationNode</span></td><td><code>107fec29fd7e2028</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassCodeExpressionTransformer</span></td><td><code>20df8f793c2f27fb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassCodeVisitorSupport</span></td><td><code>7634eaff195dfc49</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassHelper</span></td><td><code>aeb4db047c07a11f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassHelper.ClassHelperCache</span></td><td><code>1d16d8a0ae1b8be8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassNode</span></td><td><code>043b088c03929964</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ClassNode.MapOfLists</span></td><td><code>3049451d92cc1020</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.CodeVisitorSupport</span></td><td><code>d824c5cf6b09f673</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.CompileUnit</span></td><td><code>9513ba11f85e3603</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ConstructorNode</span></td><td><code>3d8e5061361e3240</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.DynamicVariable</span></td><td><code>7f7ab2a62958105a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.FieldNode</span></td><td><code>8243eede9556e3b5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.GenericsType</span></td><td><code>d332ed8a17533fd1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.InnerClassNode</span></td><td><code>d2f7594db7ab1dc8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.MethodNode</span></td><td><code>fb85ac2caca4bfc5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.MixinNode</span></td><td><code>5c2244558ba8fee2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.ModuleNode</span></td><td><code>e25c618c4375f581</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.Parameter</span></td><td><code>cd48f37d683749fe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.VariableScope</span></td><td><code>82579ce771574572</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.builder.AstBuilderTransformation</span></td><td><code>7f77d18d9d146fb8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.builder.AstBuilderTransformation.AstBuilderInvocationTrap</span></td><td><code>ed088e08005efd05</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.ArgumentListExpression</span></td><td><code>e45eeacbd530427e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.CastExpression</span></td><td><code>2a682410b52740be</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.ClassExpression</span></td><td><code>840387ef74589a77</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.ClosureExpression</span></td><td><code>c2f148c18bdb7379</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.ConstantExpression</span></td><td><code>08c4c312e7f88a9b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.ConstructorCallExpression</span></td><td><code>ab026f6db4bb1980</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.Expression</span></td><td><code>be27d4806fbda942</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.MapEntryExpression</span></td><td><code>128e6e635302a0e2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.MapExpression</span></td><td><code>4ee7b3dc7d4baa09</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.MethodCallExpression</span></td><td><code>e8e6cb82969046dd</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.NamedArgumentListExpression</span></td><td><code>5577df74efd8b5f0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.PropertyExpression</span></td><td><code>184a5892aa8224ca</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.TupleExpression</span></td><td><code>67fa492b398c20fe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.expr.VariableExpression</span></td><td><code>b7bea1e9b09e7d5b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.stmt.BlockStatement</span></td><td><code>0f8294ed97e489f3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.stmt.ExpressionStatement</span></td><td><code>7c4f32d9a3255dc7</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.stmt.ReturnStatement</span></td><td><code>beacdb8f0401d162</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.stmt.Statement</span></td><td><code>1cff5e8911814bf3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.tools.ClassNodeUtils</span></td><td><code>25a06c6e59bb411f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.tools.GeneralUtils</span></td><td><code>e8b9a4fd64d41331</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.tools.GenericsUtils</span></td><td><code>0900826d004ab5fd</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.ast.tools.ParameterUtils</span></td><td><code>2d0a558387965cee</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.AsmClassGenerator</span></td><td><code>7504ce3284442a2d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.BytecodeInstruction</span></td><td><code>07051767cd1853b4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.BytecodeSequence</span></td><td><code>af10989ff01c684f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.ClassCompletionVerifier</span></td><td><code>ab011109c58a6e48</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.ClassGenerator</span></td><td><code>1a3e22dff1589211</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.EnumCompletionVisitor</span></td><td><code>9346d7873b6efe85</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.EnumVisitor</span></td><td><code>a9e2d31e0cc1843d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.ExtendedVerifier</span></td><td><code>5dc1cdc04610395b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.GeneratorContext</span></td><td><code>358769c53f48096e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.InnerClassCompletionVisitor</span></td><td><code>691c132f2c0c4537</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.InnerClassVisitor</span></td><td><code>1416ac51e697d091</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.InnerClassVisitorHelper</span></td><td><code>4bc7258d522b5e70</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.ReturnAdder</span></td><td><code>ee4cd8038725497f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.ReturnAdder.1</span></td><td><code>8a85a80aa771809c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.VariableScopeVisitor</span></td><td><code>2f675fd48f64b90e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.VariableScopeVisitor.StateStackElement</span></td><td><code>cecb8f2e78c6c5ba</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier</span></td><td><code>4069ab8e50b46996</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.10</span></td><td><code>608e3b18d313ce4f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.11</span></td><td><code>280fc5a8555ef53b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.2</span></td><td><code>011ee20d9033a649</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.8</span></td><td><code>450d4c6aadcb3836</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.9</span></td><td><code>5225d04eb68f6299</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.SwapInitStatement</span></td><td><code>df7daa847fc8e1e5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.Verifier.SwapInitStatement.SwapInitInstruction</span></td><td><code>40cb5488c49904c9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.VerifierCodeVisitor</span></td><td><code>3a859478eb66147f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.AssertionWriter</span></td><td><code>1ff4adfc26e74df5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryBooleanExpressionHelper</span></td><td><code>24d00acf6c19f006</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryDoubleExpressionHelper</span></td><td><code>8ec258a912387e21</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionHelper</span></td><td><code>0f8007084402b1c9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher</span></td><td><code>9fccdf45d658092c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.BinaryByteExpressionHelper</span></td><td><code>a0273242108acf1d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.BinaryCharExpressionHelper</span></td><td><code>531cf4aa0c8ec854</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.BinaryShortExpressionHelper</span></td><td><code>cebb66a95cc26c1f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryExpressionWriter</span></td><td><code>b0b03d08dd522f37</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryFloatExpressionHelper</span></td><td><code>bc4b102bcd777303</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryIntExpressionHelper</span></td><td><code>2dca890505695b25</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryLongExpressionHelper</span></td><td><code>490ba012a11534cb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BinaryObjectExpressionHelper</span></td><td><code>09db9300d9f89ecf</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BytecodeHelper</span></td><td><code>7801664808327b60</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.BytecodeVariable</span></td><td><code>bb052867b5a73e9d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.CallSiteWriter</span></td><td><code>5c34201bb031a512</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.ClosureWriter</span></td><td><code>bd052ef464566205</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.ClosureWriter.1</span></td><td><code>bd0c502e9a27c5a8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.ClosureWriter.2</span></td><td><code>1a9bd84797dcacc2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.CompileStack</span></td><td><code>9050f2051315ddb9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.CompileStack.StateStackElement</span></td><td><code>1f29464d05674c80</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.InvocationWriter</span></td><td><code>d9b3639478d11cba</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.InvocationWriter.1</span></td><td><code>fd8a7ed4855827e5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.MethodCaller</span></td><td><code>96783df0cb42c930</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.MethodCallerMultiAdapter</span></td><td><code>45b9207d8011b1f6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.MopWriter</span></td><td><code>c1a3879977779856</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.MopWriter.1</span></td><td><code>91231a07c9b05f7a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.MopWriter.MopKey</span></td><td><code>021e2d31c56016d0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.OperandStack</span></td><td><code>07759e2da50ae99a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.OptimizingStatementWriter</span></td><td><code>bc5e86c319d6af8e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.OptVisitor</span></td><td><code>e45baaad18a1736b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.OptimizeFlagsCollector</span></td><td><code>43ec5f2402cf05ce</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.OptimizeFlagsCollector.OptimizeFlagsEntry</span></td><td><code>099ba3e390be29ed</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.StatementMetaTypeChooser</span></td><td><code>1eb150305ba40578</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.StatementWriter</span></td><td><code>f456eae1ae346eb6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.UnaryExpressionHelper</span></td><td><code>42acb280d0211afa</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.classgen.asm.WriterController</span></td><td><code>4267f7676342f5c6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ASTTransformationsContext</span></td><td><code>c5da32437a8a55f9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.AnnotationConstantsVisitor</span></td><td><code>daa06292a7528043</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ClassNodeResolver</span></td><td><code>57d050a5b3cb9547</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ClassNodeResolver.1</span></td><td><code>34fcbda83fe531cc</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ClassNodeResolver.LookupResult</span></td><td><code>de0a252a5081308d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit</span></td><td><code>5d0eb8869b2084de</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.1</span></td><td><code>76b088b8e6e72337</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.11</span></td><td><code>b2789b40d20a3610</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.12</span></td><td><code>18e9572393a12391</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.13</span></td><td><code>d3f7589831346002</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.14</span></td><td><code>c24cf2e25eb2dbbe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.15</span></td><td><code>d6588145f2e05681</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.16</span></td><td><code>c78fe68f668d91b7</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.17</span></td><td><code>1b95169bfd9f495a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.18</span></td><td><code>aa882c80ed65530d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.2</span></td><td><code>dcc71171999d2be6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.3</span></td><td><code>4d53dd96fcf3e5e2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.4</span></td><td><code>4f72cd8383534ae4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.5</span></td><td><code>76c056c7132d6e96</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.6</span></td><td><code>94c928cdeb46a196</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.7</span></td><td><code>e3a1f7108059ed23</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.8</span></td><td><code>699f98719e693cf2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.ClassgenCallback</span></td><td><code>0e44548ca5638f50</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.GroovyClassOperation</span></td><td><code>f87728806abcad33</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.PrimaryClassNodeOperation</span></td><td><code>dda38ff82c68ede3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilationUnit.SourceUnitOperation</span></td><td><code>2c2c82ffd8010775</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilePhase</span></td><td><code>8f4613fbb4c38bf1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.CompilerConfiguration</span></td><td><code>eecb2ecf95cccdad</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ErrorCollector</span></td><td><code>bd59d49cffbd0c72</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.GenericsVisitor</span></td><td><code>7c38d636897a8bf3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.LabelVerifier</span></td><td><code>0bab7f7231e673e6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.OptimizerVisitor</span></td><td><code>95d4ba0b063ec1ef</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ParserPluginFactory</span></td><td><code>a3d51c14963046d3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ProcessingUnit</span></td><td><code>96beb1f8350ba82a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ResolveVisitor</span></td><td><code>05cfcd67cf43bb32</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ResolveVisitor.ConstructedClassWithPackage</span></td><td><code>478fc84abce69317</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ResolveVisitor.ConstructedNestedClass</span></td><td><code>c6bf15c4319c7a39</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.ResolveVisitor.LowerCaseClass</span></td><td><code>9c73f88d018edfa2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.SourceExtensionHandler</span></td><td><code>bf4ba83b3f779a6b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.SourceUnit</span></td><td><code>b6f3ee69864bdb82</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.SourceUnit.1</span></td><td><code>40ad78536fe9c56a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.StaticImportVisitor</span></td><td><code>fb3afeb242476d73</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.StaticVerifier</span></td><td><code>775f16fe67cb47a9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.io.AbstractReaderSource</span></td><td><code>10fd2e80d254cec0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.io.FileReaderSource</span></td><td><code>025e659b84f2e0a2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.io.NullWriter</span></td><td><code>e7765765c380c0cc</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.control.io.StringReaderSource</span></td><td><code>e0659d19ac836b2a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass</span></td><td><code>1e351ef39e79824b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.1</span></td><td><code>b1ac629fb22cb2e6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.1.1</span></td><td><code>4352b8dbea3dfd6f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.2</span></td><td><code>9d99b465723646d0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.2.1</span></td><td><code>e1f00ae920f88ae6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.3</span></td><td><code>7543e9657d01605f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.3.1</span></td><td><code>43a11ac1d989be55</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.4</span></td><td><code>4b3f335b7a5d186e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.5</span></td><td><code>2f056e960337b677</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.5.1</span></td><td><code>740fb06e06fb7572</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.6</span></td><td><code>2e4565b11e41237d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.7</span></td><td><code>e6a8698a069da116</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.8</span></td><td><code>21681ae145d902f0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.CachedMethodComparatorByName</span></td><td><code>6f360f336089c98f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedClass.CachedMethodComparatorWithString</span></td><td><code>6ed272c38a10a73d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedConstructor</span></td><td><code>88844eed7f04a2c6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedConstructor.1</span></td><td><code>98bfcaa7bf3c62c4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedField</span></td><td><code>ef88aaeff198346c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedMethod</span></td><td><code>58725d7ebe8fdbe3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.CachedMethod.MyComparator</span></td><td><code>d5fe1f5f39249d99</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo</span></td><td><code>fc1a4fd440faa1cc</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.1</span></td><td><code>d132f4c89c7baca5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.ClassInfoCleanup</span></td><td><code>120835b985ab51ad</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.GlobalClassSet</span></td><td><code>c403a71065e68a36</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.LazyCachedClassRef</span></td><td><code>1e978c38e534fa1d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.LazyClassLoaderRef</span></td><td><code>d7cebe9375f7487e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.LocalMap</span></td><td><code>aab297f20abb0383</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler</span></td><td><code>2e59f956bb77f8e3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts</span></td><td><code>abe7ce92e9da1f40</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.1</span></td><td><code>eb94fc72a31280b8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GeneratedMetaMethod</span></td><td><code>4cb34f6b1e251408</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GeneratedMetaMethod.DgmMethodRecord</span></td><td><code>c537af4764d0efa3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GeneratedMetaMethod.Proxy</span></td><td><code>57565d93ee8860af</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GroovyClassValueFactory</span></td><td><code>02a01fd83f5e2d17</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GroovyClassValuePreJava7</span></td><td><code>0e69434dffdd6e7e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GroovyClassValuePreJava7.EntryWithValue</span></td><td><code>f6f63a4ca9edc008</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GroovyClassValuePreJava7.GroovyClassValuePreJava7Map</span></td><td><code>e5986068a38c8d77</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.GroovyClassValuePreJava7.GroovyClassValuePreJava7Segment</span></td><td><code>8b75c9c0ce65c302</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ParameterTypes</span></td><td><code>1b9525da98b8798e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.ReflectionCache</span></td><td><code>ab3e0ac77029a775</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.SunClassLoader</span></td><td><code>b972d39bc67266ff</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.SunClassLoader.1</span></td><td><code>ac0d3dcac7cb6304</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.android.AndroidSupport</span></td><td><code>4be759c7540e7e38</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.ArrayCachedClass</span></td><td><code>9ec3fbeba3a45252</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.BigDecimalCachedClass</span></td><td><code>5eb5af7c0eacd414</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.BigIntegerCachedClass</span></td><td><code>0813eb55f96c1ebb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.BooleanCachedClass</span></td><td><code>d2f7290fe6002787</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.CachedClosureClass</span></td><td><code>5dee3a3850552c81</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.CachedSAMClass</span></td><td><code>5b6c3e3fb4c874f1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.CachedSAMClass.1</span></td><td><code>502b45273c8c1ca8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.CharacterCachedClass</span></td><td><code>06335163813c3ee4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.DoubleCachedClass</span></td><td><code>9fbe7005e3f5895d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.FloatCachedClass</span></td><td><code>e49eeffa24d72792</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.IntegerCachedClass</span></td><td><code>e60058d6c47867ce</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.LongCachedClass</span></td><td><code>7a72b3215d495d65</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.NumberCachedClass</span></td><td><code>0fd3a9958a4d8ad1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.ObjectCachedClass</span></td><td><code>61bb8b896bf9b487</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.reflection.stdclasses.StringCachedClass</span></td><td><code>6cbd1cbfb7d8e8c4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.ArrayUtil</span></td><td><code>d65b75af626da4a0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.BytecodeInterface8</span></td><td><code>e68ca5f7d6803e15</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.DefaultGroovyMethods</span></td><td><code>438487db7a72c072</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport</span></td><td><code>126dfa79d34a90b3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.GStringImpl</span></td><td><code>71e5cd61bcbcd7ca</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.GroovyCategorySupport</span></td><td><code>7da4a2d9f89a89cb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.GroovyCategorySupport.MyThreadLocal</span></td><td><code>e0e57eaf31d84a5a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.IOGroovyMethods</span></td><td><code>26b55facd4edf33c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.InvokerHelper</span></td><td><code>afe7210397eab69a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.MetaClassHelper</span></td><td><code>1dff6bc8620263a1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.NioGroovyMethods</span></td><td><code>452c528ce26c5852</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.NullObject</span></td><td><code>fa879d8219f49ab2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.NullObject.is</span></td><td><code>50552ab36810fa5e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.NumberAwareComparator</span></td><td><code>ba1234da5d1b74e2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.ResourceGroovyMethods</span></td><td><code>6d2bee71893cf38e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.ScriptBytecodeAdapter</span></td><td><code>f07a308aa6646b9e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.StringGroovyMethods</span></td><td><code>4a9dc8dd43be8022</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.AbstractCallSite</span></td><td><code>7718deabab1ac819</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.BooleanClosureWrapper</span></td><td><code>2e366481dd188748</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.BooleanReturningMethodInvoker</span></td><td><code>b914a24363502aa8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.CallSiteArray</span></td><td><code>b2bb7977a0d7ef3c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.CallSiteArray.1</span></td><td><code>6b568591d67d260e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.CallSiteAwareMetaMethod</span></td><td><code>166f7f5fae88a2e5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.CallSiteClassLoader</span></td><td><code>21204fc61dde4a48</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.CallSiteGenerator</span></td><td><code>c1c6b2f9e9c858b1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite</span></td><td><code>22553f5ec23512e3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.ConstructorSite</span></td><td><code>42fecfe792b92652</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.ConstructorSite.ConstructorSiteNoUnwrapNoCoerce</span></td><td><code>a506cb62470ab351</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite</span></td><td><code>c3c466586e759f81</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite</span></td><td><code>d4f4deae5e804c44</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.GroovySunClassLoader</span></td><td><code>088164658bde0fe1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.GroovySunClassLoader.1</span></td><td><code>2e0ec4bfa5ed3d74</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.MetaClassSite</span></td><td><code>8e2b675632406d31</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.MetaMethodSite</span></td><td><code>d5251e834ae5d7e8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.NullCallSite</span></td><td><code>35c80b011c73f47d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoGetPropertySite</span></td><td><code>f54d6ef3f151ef70</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaClassSite</span></td><td><code>08bb789a1cd4a7b8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite</span></td><td><code>e76733848a27a4df</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.PogoCachedMethodSite</span></td><td><code>c2b1911672f16a94</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrap</span></td><td><code>34a281dc48dc6eac</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrapNoCoerce</span></td><td><code>ec0147cfa42bdf0f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.PogoMetaMethodSiteNoUnwrapNoCoerce</span></td><td><code>b88609ece27af394</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite</span></td><td><code>6e1c7d04932c7c25</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.PojoCachedMethodSite</span></td><td><code>ff9eeb1897e8d1b2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrap</span></td><td><code>adb7a369799df837</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrapNoCoerce</span></td><td><code>720ecab3552674df</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.PojoMetaMethodSiteNoUnwrapNoCoerce</span></td><td><code>f8cfa462792b4553</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite</span></td><td><code>c60b6519a40af8d0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.StaticMetaMethodSiteNoUnwrapNoCoerce</span></td><td><code>e7f554c3d87a1474</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.1043</span></td><td><code>b4c204a08e4593b4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.1047</span></td><td><code>9455263e6c4f2db8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.1119</span></td><td><code>3384e7b6cba56794</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.1120</span></td><td><code>91a6b9289581af96</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.1121</span></td><td><code>b3899c147b6fe94e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.12</span></td><td><code>f257e7b30db360e5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.13</span></td><td><code>4237d1a4252a0776</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.163</span></td><td><code>67b161f42923cb13</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.164</span></td><td><code>ad169185c6a03400</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.184</span></td><td><code>f054a4d2f4b72168</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.185</span></td><td><code>b18a5fdda9b8881d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.190</span></td><td><code>5aad82e533dc3fef</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.193</span></td><td><code>6ee433201ecdac64</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.204</span></td><td><code>f1dadd6a8f9dac9c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.205</span></td><td><code>31f8856548dec787</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.221</span></td><td><code>a5cc1eeeeb025fe5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.23</span></td><td><code>d5211f4f547ec5cb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.28</span></td><td><code>3cdf2c8ccf7bd5a6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.29</span></td><td><code>185a08bd5172e0b0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.30</span></td><td><code>7ae4e55f709d8496</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.33</span></td><td><code>66fc4ce5013c6b33</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.353</span></td><td><code>031218bfdee821ab</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.354</span></td><td><code>65a7b86d5d6ad338</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.356</span></td><td><code>e2baef6a8fce1c03</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.365</span></td><td><code>1f7a5599c7ef92a4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.378</span></td><td><code>e35391362e45676a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.385</span></td><td><code>ed327a9b46250557</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.388</span></td><td><code>ece83593baa939da</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.462</span></td><td><code>2bb6cb4b016ae4a5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.48</span></td><td><code>e5778dd9a604d9ec</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.50</span></td><td><code>a9e0e38c7bec094e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.51</span></td><td><code>d027b6145857d59b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.52</span></td><td><code>5d9fe6d707c77d73</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.53</span></td><td><code>f9d5c28f74ab704a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.60</span></td><td><code>d6899074e28d4d34</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.61</span></td><td><code>eef8b59e43195949</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.62</span></td><td><code>e4b5c7948909b5ca</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.64</span></td><td><code>1f3c491a155eb806</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.642</span></td><td><code>36fb130afcdb7297</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.65</span></td><td><code>fb66a25eb09383a2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.66</span></td><td><code>dbac744720e7009c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.665</span></td><td><code>776947d6e25138a7</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.69</span></td><td><code>a53bbdb0a55ba4b7</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.722</span></td><td><code>a3cb636d76cc2c2b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.73</span></td><td><code>b4d29c3167d1beb8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.74</span></td><td><code>305cb333f1e50a50</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.77</span></td><td><code>5cba534f78d29960</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.79</span></td><td><code>e51371d1a381d13c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.81</span></td><td><code>6d3bba9cb1e54ede</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgm.962</span></td><td><code>f54eaa1a92f77c9d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv</span></td><td><code>5d289b355eefa5c9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod</span></td><td><code>5bb4ee1514e30efa</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod.NumberNumberCallSite</span></td><td><code>b18da8c15579fe25</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberMinus</span></td><td><code>260b74378b41071d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberMultiply</span></td><td><code>7a82ac410990c88a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus</span></td><td><code>c6758ab37c52c9a3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus.IntegerInteger</span></td><td><code>28ebacf9c1cc9ec5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayGetAtMetaMethod</span></td><td><code>f5b2e5a3d903b758</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayMetaMethod</span></td><td><code>b0cfa65c5bf3fde2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayPutAtMetaMethod</span></td><td><code>7594f9544707cf0b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayGetAtMetaMethod</span></td><td><code>f3733901c45727ab</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayPutAtMetaMethod</span></td><td><code>4d8640003e9673c4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayGetAtMetaMethod</span></td><td><code>a164b46d579ed786</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayPutAtMetaMethod</span></td><td><code>f89483ace22c0ca6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayGetAtMetaMethod</span></td><td><code>6251d3580703ab75</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayPutAtMetaMethod</span></td><td><code>58366cda6a7513de</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayGetAtMetaMethod</span></td><td><code>9b6692209396bc1c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayPutAtMetaMethod</span></td><td><code>08ab52ca9179ee2b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayGetAtMetaMethod</span></td><td><code>afb731e4d57c86fc</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayPutAtMetaMethod</span></td><td><code>b90f665e94592b44</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayGetAtMetaMethod</span></td><td><code>8594276d98b09cdd</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayPutAtMetaMethod</span></td><td><code>17fced924b628614</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayGetAtMetaMethod</span></td><td><code>3755c1b9f38bf905</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayPutAtMetaMethod</span></td><td><code>6f0b002c8bbcc12a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayGetAtMetaMethod</span></td><td><code>549c57569e8f58f4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayPutAtMetaMethod</span></td><td><code>b3075507836d0b5b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayGetAtMetaMethod</span></td><td><code>c8483a0d629e45fe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayPutAtMetaMethod</span></td><td><code>42863ac7d22b9b2d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.ExtensionModule</span></td><td><code>0ba4d0627fad0767</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.ExtensionModuleRegistry</span></td><td><code>7292acd28fbb5837</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner</span></td><td><code>433d9425ed376ac6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule</span></td><td><code>e6961d1cbc46915a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.PropertiesModuleFactory</span></td><td><code>c0500fe3d1f8720c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.SimpleExtensionModule</span></td><td><code>c5ec53484dc6d791</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.m12n.StandardPropertiesModuleFactory</span></td><td><code>477c9bf38f0570b1</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ClosureMetaClass</span></td><td><code>5250b2251540f5ed</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.3</span></td><td><code>6863c4b5d249326d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.4</span></td><td><code>7273e1e36fa3ab9e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.6</span></td><td><code>1766c5580c36a20a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.StandardClosureChooser</span></td><td><code>a9f8b480c91d4554</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.DefaultMetaClassInfo</span></td><td><code>c1720cb7263847ca</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.DefaultMetaClassInfo.ConstantMetaClassVersioning</span></td><td><code>0a6a7d3ef54c7894</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl</span></td><td><code>80e7ef0ab912b64a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.1</span></td><td><code>c3ba00a7a86dd4ab</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.DefaultModuleListener</span></td><td><code>f0441d10c87ddb04</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaMethodIndex</span></td><td><code>c72567d05bd8add4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaMethodIndex.CacheEntry</span></td><td><code>00b4664ea748ed2c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaMethodIndex.Entry</span></td><td><code>d1955921d1d1997c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MetaMethodIndex.Header</span></td><td><code>0ed03602960b04fd</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MethodHelper</span></td><td><code>4d4cef1f4f3c0ec6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MethodMetaProperty</span></td><td><code>5f7b36f765420bdf</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MethodMetaProperty.GetBeanMethodMetaProperty</span></td><td><code>cd4d77bb520ee87a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack</span></td><td><code>d6e8fb485b7dd442</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod</span></td><td><code>6b365c39ca1266c9</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.NewMetaMethod</span></td><td><code>c62c41b2c95ebbab</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.NewStaticMetaMethod</span></td><td><code>7d1930f6c25fd654</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod</span></td><td><code>a5552213be7b114d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation</span></td><td><code>c7e0dcdb713ac807</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.typehandling.IntegerMath</span></td><td><code>3a6cca1b35b647cb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.typehandling.NumberMath</span></td><td><code>80584dccc0297adc</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.typehandling.NumberMathModificationInfo</span></td><td><code>edef9a66a8af21b0</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.typehandling.ShortTypeHandling</span></td><td><code>2cc4f04fe2295752</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.wrappers.PojoWrapper</span></td><td><code>d641133f74441e30</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.runtime.wrappers.Wrapper</span></td><td><code>02c5ba1abcfa5451</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.syntax.ASTHelper</span></td><td><code>ad604c607c5553e4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.syntax.CSTNode</span></td><td><code>084ba66657be5159</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.syntax.Numbers</span></td><td><code>a4e933a48f0bac90</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.syntax.Token</span></td><td><code>73b685fb3407174e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.syntax.Types</span></td><td><code>63ce98f8b8211b8e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.tools.GroovyClass</span></td><td><code>e27885fa1ec3da08</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationCollectorCodeVisitor</span></td><td><code>7d106b2157efc1fe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationVisitor</span></td><td><code>4b0d1b2f70f4cfc4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationVisitor.1</span></td><td><code>cb271d79408f161a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationVisitor.2</span></td><td><code>8d2003f75b50f9ae</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationVisitor.3</span></td><td><code>20d628a85de91873</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ASTTransformationVisitor.4</span></td><td><code>6aa86ff1af003717</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.AbstractASTTransformation</span></td><td><code>0df1d015d9e4385f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.AnnotationCollectorTransform.ClassChanger</span></td><td><code>665ec5307282465c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ImmutableASTTransformation</span></td><td><code>958f22afd3770752</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.ImmutableASTTransformation.checkPropNames</span></td><td><code>16faff85dd5d6c06</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.trait.SuperCallTraitTransformer</span></td><td><code>573cc744caa614d6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.trait.TraitComposer</span></td><td><code>c7993a7fce01f3eb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.transform.trait.Traits</span></td><td><code>d173e202606beb38</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.AbstractConcurrentMap</span></td><td><code>ea55d8bedf501799</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.AbstractConcurrentMap.Segment</span></td><td><code>17dbae917965e8fe</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.AbstractConcurrentMapBase</span></td><td><code>e97b7eee5d0c04f6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.AbstractConcurrentMapBase.Segment</span></td><td><code>28dd9945d327e459</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ComplexKeyHashMap</span></td><td><code>a8580f5ba3ec2bc6</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ComplexKeyHashMap.1</span></td><td><code>61850b98439e62d5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ComplexKeyHashMap.Entry</span></td><td><code>556237b5a19cb7e3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.FastArray</span></td><td><code>86d54a8fb475ddb5</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.HashCodeHelper</span></td><td><code>6f34d00367d31870</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.HashCodeHelper.initHash</span></td><td><code>3d56930835743def</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.HashCodeHelper.updateHash.0</span></td><td><code>6d343f371264d52b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.LazyReference</span></td><td><code>acb47ecc863dccc2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.LazyReference.1</span></td><td><code>f5e601956b5976e2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.LazyReference.2</span></td><td><code>98fb74a735e351ed</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ListHashMap</span></td><td><code>999ee5395140af39</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.LockableObject</span></td><td><code>cb25f02f98d92475</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedConcurrentMap</span></td><td><code>317842cbe6b2d025</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedConcurrentMap.Entry</span></td><td><code>fcb859c4f4410207</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedConcurrentMap.EntryWithValue</span></td><td><code>2468da58fbc3df41</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedConcurrentMap.Segment</span></td><td><code>4dd01f367891c72f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedLinkedList</span></td><td><code>fbca556f5e7d9e60</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedLinkedList.Element</span></td><td><code>c1baf60e1a607a30</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedReference</span></td><td><code>8733ef279c80eb3c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ManagedReference.1</span></td><td><code>f810d8e688adf30c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceBundle</span></td><td><code>96f60e7ec95c456b</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceManager</span></td><td><code>1a7c8145aa94cd72</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceManager.1</span></td><td><code>37202b298159de15</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceManager.CallBackedManager</span></td><td><code>281eba1c16f4a6b4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType</span></td><td><code>11102d4c64552fd2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.1</span></td><td><code>71f8c14e1a0c835a</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.2</span></td><td><code>b16b48ddbf1348ce</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.3</span></td><td><code>bacfb665bdfdda60</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.4</span></td><td><code>f31b91334a723a6e</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.HardRef</span></td><td><code>85d4a08b56270b56</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.SoftRef</span></td><td><code>ce6df7be9ebc1e3c</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.ReferenceType.WeakRef</span></td><td><code>cdfb9e26342557b4</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.SingleKeyHashMap</span></td><td><code>fdd1b3344ad0659f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.SingleKeyHashMap.Entry</span></td><td><code>70bd68c46a61d8a3</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.util.TripleKeyHashMap</span></td><td><code>18ffc6a3b17428fb</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.VMPluginFactory</span></td><td><code>90aa4abca8fbcb02</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.v5.Java5</span></td><td><code>6c8b847307d0616d</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.v5.PluginDefaultGroovyMethods</span></td><td><code>21932ded3d6af5a8</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.v6.Java6</span></td><td><code>2155f60ea7159b3f</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.v7.Java7</span></td><td><code>66f012e0271625b2</code></td></tr><tr><td><span class="el_class">org.codehaus.groovy.vmplugin.v7.Java7.1</span></td><td><code>177cc5e35452a9f6</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultContainerConfiguration</span></td><td><code>bb9b283f4b402343</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer</span></td><td><code>a7ccd785748d48cd</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.BootModule</span></td><td><code>93237d80345a3ec9</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.ContainerModule</span></td><td><code>fae789b79fc204cb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.DefaultsModule</span></td><td><code>df2cbc6bfcd43c71</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.LoggerManagerProvider</span></td><td><code>9e0872f9759bd560</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.LoggerProvider</span></td><td><code>8835d4d1e16fff6b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.DefaultPlexusContainer.SLF4JLoggerFactoryProvider</span></td><td><code>fe50f83fa8d347cc</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.AbstractArchiver</span></td><td><code>1c79b6ca8cdd6814</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.AbstractArchiver.1</span></td><td><code>d594f716fc2ec09b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.AbstractArchiver.AddedResourceCollection</span></td><td><code>31b4797938690937</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.ArchiveEntry</span></td><td><code>9528526eb0242262</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.JarArchiver</span></td><td><code>1fd8fb59b0c0d83f</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.JdkManifestFactory</span></td><td><code>b4e98281b3748575</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.Manifest</span></td><td><code>a7e2474ca12180fb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.Manifest.Attribute</span></td><td><code>cc7e9fdef77af7f3</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.Manifest.BaseAttribute</span></td><td><code>507dc64f0fab23ec</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.jar.Manifest.Section</span></td><td><code>8b859ce53ff6afa4</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.manager.ArchiverManager</span></td><td><code>65034b530445a79c</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.manager.DefaultArchiverManager</span></td><td><code>85e29ed19d1fa0e1</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.util.AbstractFileSet</span></td><td><code>cb69c5774b769f8d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.util.DefaultFileSet</span></td><td><code>7b859b6bde519ee3</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.util.ResourceUtils</span></td><td><code>e3473b36873482e3</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.util.Streams</span></td><td><code>93feb2257aa86322</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AbstractZipArchiver</span></td><td><code>408691470bccfb49</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AbstractZipArchiver.1</span></td><td><code>e8339019b6457c7c</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AbstractZipArchiver.2</span></td><td><code>d71bf7fd5f832ea8</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AbstractZipArchiver.3</span></td><td><code>b7d0eb557f6a3bd1</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AddedDirs</span></td><td><code>a8d3b14b4d98c9a6</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.AnonymousResource</span></td><td><code>f9c402d281f58be0</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.ByteArrayOutputStream</span></td><td><code>a4cdbeba230617de</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.ConcurrentJarCreator</span></td><td><code>10eaccc976f00970</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.ConcurrentJarCreator.1</span></td><td><code>527302c78b836f3b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.ConcurrentJarCreator.DeferredSupplier</span></td><td><code>1544f181fdb22110</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.DeferredScatterOutputStream</span></td><td><code>f34d84f4aa832fcb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.OffloadingOutputStream</span></td><td><code>7e418a0dd255cd8c</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.archiver.zip.ZipArchiver</span></td><td><code>3e4ce5bdb762b102</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.classworlds.ClassWorld</span></td><td><code>c97a2752cb68c977</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.classworlds.realm.ClassRealm</span></td><td><code>48b5475c3c043faa</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.classworlds.strategy.AbstractStrategy</span></td><td><code>159c03485be975f8</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy</span></td><td><code>d9db2c2f1d73d9ee</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.classworlds.strategy.StrategyFactory</span></td><td><code>a7faa34311de2789</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.AbstractComponentConfigurator</span></td><td><code>fd14b119d8a5b29c</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.BasicComponentConfigurator</span></td><td><code>835e963ec6448d32</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter</span></td><td><code>fedc2c42b748165e</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.AbstractBasicConverter</span></td><td><code>e92fa9f547636435</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.BooleanConverter</span></td><td><code>0d7a2c5587957205</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.ByteConverter</span></td><td><code>047d13fba934ca9d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.CharConverter</span></td><td><code>0d6745ba8c7876bf</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.DateConverter</span></td><td><code>3e22c057b797fe2e</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.DoubleConverter</span></td><td><code>898aa92fe1dea81a</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.EnumConverter</span></td><td><code>f75a9a74844cdb78</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.FileConverter</span></td><td><code>37ddfea0331ab782</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.FloatConverter</span></td><td><code>c8ce63c767bdd3b2</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.IntConverter</span></td><td><code>c63338aefe4aa953</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.LongConverter</span></td><td><code>dbdc98061444128f</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.ShortConverter</span></td><td><code>c25ff97f7f5f5eab</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.StringBufferConverter</span></td><td><code>1f5b827a921ddcd4</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.StringBuilderConverter</span></td><td><code>c553f644caff7df8</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.StringConverter</span></td><td><code>a7dffdec08f73e92</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.UriConverter</span></td><td><code>a68971cfaa738620</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.basic.UrlConverter</span></td><td><code>9fee54421b1ae29b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter</span></td><td><code>c07ff4bed1d235c7</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter</span></td><td><code>ab78f07dbb641625</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter</span></td><td><code>4725edbf063249ff</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.MapConverter</span></td><td><code>d0fe3c00723a7d02</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter</span></td><td><code>dc993339217e53b8</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.PlexusConfigurationConverter</span></td><td><code>952a9ad6bc4d9798</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.composite.PropertiesConverter</span></td><td><code>58b879f25e601573</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup</span></td><td><code>672fde4fc2d78a31</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter</span></td><td><code>bff7b1ed3c9d85d3</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator</span></td><td><code>05447eda7f4c9382</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.repository.ComponentDependency</span></td><td><code>dd718ddccf062881</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.repository.ComponentDescriptor</span></td><td><code>bf902d17aab9221e</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.repository.ComponentRequirement</span></td><td><code>c69ab0fd1eb571fb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.component.repository.ComponentSetDescriptor</span></td><td><code>711332dd0b07ec30</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.attributes.Java7AttributeUtils</span></td><td><code>0a0f10f37f98c161</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.attributes.Java7FileAttributes</span></td><td><code>4f8d9476805d931b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.attributes.Java7Reflector</span></td><td><code>ccd6673b4ef9ee1d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils</span></td><td><code>27da3ac406aaa8cc</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes</span></td><td><code>6f4bcddf4d1f1b49</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.filemappers.PrefixFileMapper</span></td><td><code>492580fe1e78d674</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource</span></td><td><code>00103fdd35d6a5a6</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection</span></td><td><code>4534650c14399ef2</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollection.IdentityTransformer</span></td><td><code>8876204f4cb301ee</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionWithAttributes</span></td><td><code>ba15c39dc4af5042</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.PlexusIoFileResource</span></td><td><code>5c41c3422dbcf424</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.PlexusIoFileResource.1</span></td><td><code>c1591b44cf665ac7</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection</span></td><td><code>f577122c39393a90</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.components.io.resources.ResourceFactory</span></td><td><code>ab577575571faa37</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.configuration.DefaultPlexusConfiguration</span></td><td><code>4732e906b4408c03</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration</span></td><td><code>ec5787b398ab7165</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.context.ContextMapAdapter</span></td><td><code>833c0bfe5c4d8df9</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.context.DefaultContext</span></td><td><code>a584a66128e34d9a</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.AbstractDelegatingValueSource</span></td><td><code>fa905d67fbe1c30c</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.AbstractValueSource</span></td><td><code>1ed2fb132ebe6823</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.EnvarBasedValueSource</span></td><td><code>998ec46bd50d6913</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.MapBasedValueSource</span></td><td><code>7f59e3ef6168035d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.ObjectBasedValueSource</span></td><td><code>e77101c153cc6dad</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor</span></td><td><code>d46f8cbd280efd02</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.PrefixedObjectValueSource</span></td><td><code>2bea1951661dad14</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper</span></td><td><code>265b1b78921f0550</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.PropertiesBasedValueSource</span></td><td><code>b4a2ab502f384128</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.RegexBasedInterpolator</span></td><td><code>d5a3d34628886cbb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.SimpleRecursionInterceptor</span></td><td><code>7fca4d1c08095cea</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.StringSearchInterpolator</span></td><td><code>957c270bc053d10e</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.os.OperatingSystemUtils</span></td><td><code>809ae9b52507157a</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.reflection.ClassMap</span></td><td><code>3a570696712bd971</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMiss</span></td><td><code>d56cd72bfabb8afd</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.reflection.MethodMap</span></td><td><code>674a0c0a512e82b5</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor</span></td><td><code>3cac48ec61003653</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.util.StringUtils</span></td><td><code>5495fb439a48b4d1</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.interpolation.util.ValueSourceUtils</span></td><td><code>33ab9c6ff0db32e2</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.logging.AbstractLogEnabled</span></td><td><code>df343e62bbff0ec7</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.logging.AbstractLogger</span></td><td><code>a105608a8f0e9b30</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.logging.AbstractLoggerManager</span></td><td><code>168118ddb5fbae76</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.logging.console.ConsoleLogger</span></td><td><code>a3f0bd3bd25bc39d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.logging.console.ConsoleLoggerManager</span></td><td><code>8efcc8c629d88592</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.AbstractScanner</span></td><td><code>2b17dc2163f86c06</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.DirectoryScanner</span></td><td><code>9d168a6ba0f3d16b</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.FileUtils</span></td><td><code>d2c1c7098289718d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.IOUtil</span></td><td><code>d487143a06120368</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.InterpolationFilterReader</span></td><td><code>b807d9f75b8410d1</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.Java7Detector</span></td><td><code>af1ebdf25a9b7aa5</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.MatchPattern</span></td><td><code>22cbab774d05504e</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.MatchPatterns</span></td><td><code>699e2ecd3487a8e1</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.NioFiles</span></td><td><code>4eee78fcb54ee4cc</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.Os</span></td><td><code>e86f82a434614ece</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.ReaderFactory</span></td><td><code>bcca7dcb50be1af2</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.SelectorUtils</span></td><td><code>13e934f5a68aa324</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.StringUtils</span></td><td><code>837339467b13c5cf</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.introspection.ClassMap</span></td><td><code>741e1b388185e8c4</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.introspection.ClassMap.CacheMiss</span></td><td><code>e757066c30842ffe</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.introspection.MethodMap</span></td><td><code>85e864038915a2f8</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.introspection.ReflectionValueExtractor</span></td><td><code>79bb9c5cd148ab37</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.introspection.ReflectionValueExtractor.Tokenizer</span></td><td><code>6d7f8fa8dd1977b7</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.XmlReader</span></td><td><code>2ca42681128ebb7d</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.XmlStreamReader</span></td><td><code>54bb454f4a044649</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.Xpp3Dom</span></td><td><code>9546c7ece89e41cc</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.Xpp3DomBuilder</span></td><td><code>93fa3c98c6fa3dda</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.pull.EntityReplacementMap</span></td><td><code>0697dc724c9eafa2</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.pull.MXParser</span></td><td><code>57232b08877675bb</code></td></tr><tr><td><span class="el_class">org.codehaus.plexus.util.xml.pull.MXSerializer</span></td><td><code>b3773308f85294a8</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.AbstractRepositoryListener</span></td><td><code>865655c96bff7534</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositoryCache</span></td><td><code>246175f5cceb9ef6</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositorySystemSession</span></td><td><code>27dad69413b3c218</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositorySystemSession.NullArtifactTypeRegistry</span></td><td><code>9cf2cc28242980f5</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositorySystemSession.NullAuthenticationSelector</span></td><td><code>57cba481b7d0f15f</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositorySystemSession.NullMirrorSelector</span></td><td><code>b5ca4cb78e920fdd</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultRepositorySystemSession.NullProxySelector</span></td><td><code>5b9a550ef6df6434</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.DefaultSessionData</span></td><td><code>88746084f3fa6adf</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.RequestTrace</span></td><td><code>8c951e6520bd66b1</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.artifact.DefaultArtifactType</span></td><td><code>04f8e6f31fa2dd17</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultArtifactResolver</span></td><td><code>180f87f0bf844559</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider</span></td><td><code>f97ebe08c4085c92</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultDependencyCollector</span></td><td><code>3481b3729e1c73da</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultDeployer</span></td><td><code>80127f5fcd2a03d9</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultFileProcessor</span></td><td><code>81d349185e61bb46</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultInstaller</span></td><td><code>1ccfd143e402b55e</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider</span></td><td><code>2773aa8770c5785d</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultMetadataResolver</span></td><td><code>dc5ce95399162c3a</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultOfflineController</span></td><td><code>cbdfa8c7076b26b9</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager</span></td><td><code>b131284986e31045</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider</span></td><td><code>1ace03dda377fe1f</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher</span></td><td><code>10f4e6d55c7e0a7d</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultRepositorySystem</span></td><td><code>66e27699ea2b366a</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultSyncContextFactory</span></td><td><code>bb74c9763f8eda34</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultUpdateCheckManager</span></td><td><code>1f1fe7eca4cb4d0d</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer</span></td><td><code>bcb6c512caff2a67</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManager</span></td><td><code>88fa9a07832a3438</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory</span></td><td><code>8659341981c6fde4</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.LoggerFactoryProvider</span></td><td><code>fdbb9294ece8688f</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.PrioritizedComponent</span></td><td><code>9ad23b709eb38b2c</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.PrioritizedComponents</span></td><td><code>3388ebe8d7b1d9ae</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.SimpleLocalRepositoryManager</span></td><td><code>50c62f5c0dad346a</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory</span></td><td><code>4b9457653ababf1f</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.TrackingFileManager</span></td><td><code>fc6093a55593cb4d</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory</span></td><td><code>9ea8517c86c2c012</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory.Slf4jLogger</span></td><td><code>2eb3faca39166133</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.repository.LocalRepository</span></td><td><code>3d92bc9b9aca9952</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.repository.RemoteRepository</span></td><td><code>e7feffb7cfb3e04b</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.repository.RemoteRepository.Builder</span></td><td><code>b82ab23ba1f43c7f</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.repository.RepositoryPolicy</span></td><td><code>2e3403c1501f480e</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.repository.WorkspaceRepository</span></td><td><code>2d23d419ac114608</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.spi.log.NullLogger</span></td><td><code>03f2c33a291da54e</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.spi.log.NullLoggerFactory</span></td><td><code>67aefb1f3d3b0727</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.ConfigUtils</span></td><td><code>f520cf8e1832ed41</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry</span></td><td><code>c295f5e9cf46e401</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.artifact.SimpleArtifactTypeRegistry</span></td><td><code>155ad63e10d00a83</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.manager.ClassicDependencyManager</span></td><td><code>eaf0fdf74f49afa7</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.selector.AndDependencySelector</span></td><td><code>d43757fbcf5e948e</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.selector.ExclusionDependencySelector</span></td><td><code>8a36e2f911e24b06</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.selector.OptionalDependencySelector</span></td><td><code>6a7f7ce8b0b483b0</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.selector.ScopeDependencySelector</span></td><td><code>c18861ad919ffb40</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer</span></td><td><code>89f9ecebc8520167</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ConflictResolver</span></td><td><code>10e90c9d2ba5402c</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ConflictResolver.OptionalitySelector</span></td><td><code>976b2303eef69ff8</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeDeriver</span></td><td><code>9fbdb5f342b9ce33</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeSelector</span></td><td><code>ab8da5bd1205d72c</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.ConflictResolver.VersionSelector</span></td><td><code>bcbd1c9a55a799c2</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner</span></td><td><code>1ac4f01fc49f41e6</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.JavaScopeDeriver</span></td><td><code>74c76258013a51d4</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.JavaScopeSelector</span></td><td><code>fe98703768c7d15e</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.NearestVersionSelector</span></td><td><code>b69faf2113c45979</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector</span></td><td><code>8ed27561cd76fff0</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.graph.traverser.FatArtifactTraverser</span></td><td><code>8b10e589feee70f8</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.AuthenticationBuilder</span></td><td><code>75e861e0246f8be9</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.ChainedAuthentication</span></td><td><code>ff41f3f0ed456713</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.DefaultAuthenticationSelector</span></td><td><code>909cd87e972dae19</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.DefaultMirrorSelector</span></td><td><code>e80305530b08dbf5</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.DefaultProxySelector</span></td><td><code>cfc88f4dc5354a00</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.SecretAuthentication</span></td><td><code>d93284afe84cb346</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy</span></td><td><code>eaae72ac4b598498</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy</span></td><td><code>a17a6113d144cdd8</code></td></tr><tr><td><span class="el_class">org.eclipse.aether.util.repository.StringAuthentication</span></td><td><code>06f5601f3a7a5e71</code></td></tr><tr><td><span class="el_class">org.eclipse.m2e.workspace.internal.Maven31WorkspaceReader</span></td><td><code>ae78d5fc9d2baa7a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanInjector</span></td><td><code>4bc8c6f86696d787</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanListener</span></td><td><code>79635418e8a1cd7a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanProperties</span></td><td><code>a885f76f7061e53d</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanPropertyField</span></td><td><code>862f3d6e9734df0d</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanPropertyIterator</span></td><td><code>625f309d7758606b</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanPropertySetter</span></td><td><code>45c642053a69e3f0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanScheduler</span></td><td><code>ad093030fb50b9b2</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanScheduler.1</span></td><td><code>fd0aaf49510f01ef</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanScheduler.Activator</span></td><td><code>0a9587d1bb00221e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.BeanScheduler.Pending</span></td><td><code>efb3b5d6882752aa</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers</span></td><td><code>3154107bcfbb3683</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers.MemberIterator</span></td><td><code>1bd9f1fb9ef7f98b</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers.View</span></td><td><code>23e235014e30a0ea</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers.View.1</span></td><td><code>3dc74f9b5f33fe56</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers.View.2</span></td><td><code>78b4e0ac648fb626</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.DeclaredMembers.View.3</span></td><td><code>30d8103ee57f3206</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.PropertyBinder</span></td><td><code>2e6c3778a5346fcf</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.bean.PropertyBinder.1</span></td><td><code>faaca8d6d27e056f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.BeanCache</span></td><td><code>765dda39eada6f83</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.DefaultBeanLocator</span></td><td><code>204960afa6a18165</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.DefaultRankingFunction</span></td><td><code>6535e0cfd34f1b16</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.ImplementationVisitor</span></td><td><code>cebfb25274ecedbc</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.ImplicitBindings</span></td><td><code>8c4cdb36be1608f3</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.InjectorPublisher</span></td><td><code>51e834c02ffb23b5</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.LazyBeanEntry</span></td><td><code>8d1a53ff52573513</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.LazyBeanEntry.JsrNamed</span></td><td><code>48e06d1ce5830b9f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.LocatedBeans</span></td><td><code>543acd0a20399ce4</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.LocatedBeans.Itr</span></td><td><code>8c2d229495aa31aa</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.Logs</span></td><td><code>280420d90507c921</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.Logs.SLF4JSink</span></td><td><code>94447348cbbf2a26</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildConcurrentKeys</span></td><td><code>9d081758db2e3747</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildConcurrentValues</span></td><td><code>31a6861c6a36d676</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildElements</span></td><td><code>c4ea64d7814f934b</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildElements.Itr</span></td><td><code>5eb9352005fee8a4</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildElements.Weak</span></td><td><code>8c7a5b1b751bf791</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildKeys</span></td><td><code>ffd12277d1df6204</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildKeys.Weak</span></td><td><code>1d07f5433de773ab</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildValues</span></td><td><code>c5951a7851feb702</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildValues.1</span></td><td><code>957784becff9f40a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildValues.ValueItr</span></td><td><code>429de048d26c5a13</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.MildValues.Weak</span></td><td><code>4acbf3fa2ab65da9</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy</span></td><td><code>ad3c41114cb85c76</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy.1</span></td><td><code>ae36e9079516e10c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy.2</span></td><td><code>cd9366c63d8a3155</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy.3</span></td><td><code>0cca1c06c06128bf</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy.4</span></td><td><code>d190683e58a764f3</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.QualifyingStrategy.5</span></td><td><code>eec51eb9d072252c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.RankedBindings</span></td><td><code>b34f6469853ccd64</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.RankedBindings.Itr</span></td><td><code>2f615fcab14912de</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.RankedSequence</span></td><td><code>5b700663c1403b6a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.RankedSequence.Content</span></td><td><code>88f0e0963e8227dc</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.RankedSequence.Itr</span></td><td><code>6c18b3b01bb19271</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.TypeArguments</span></td><td><code>b91c6e6b2d727efd</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.inject.Weak</span></td><td><code>74fa19a1969fe490</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ClassRealmManager</span></td><td><code>1be68c9f76c32526</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ComponentDescriptorBeanModule</span></td><td><code>9f84330910a04fd8</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.ComponentMetadata</span></td><td><code>4190a985aea0b7c0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.PlexusDescriptorBeanSource</span></td><td><code>dc9c883eac9e9f2b</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ComponentImpl</span></td><td><code>fed6cd7dde1ba9d1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.CompositeBeanHelper</span></td><td><code>2d413146523b60e5</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.CompositeBeanHelper.1</span></td><td><code>db6057c546dca307</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ConfigurationImpl</span></td><td><code>17bfe3e1d2bab5d4</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.DefaultPlexusBeanLocator</span></td><td><code>0643f309b66967f9</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.DefaultPlexusBeans</span></td><td><code>c4cfa969918dde97</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.DefaultPlexusBeans.Itr</span></td><td><code>6b8357515019ab24</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.Hints</span></td><td><code>dce4af6bfde9b0a1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.LazyPlexusBean</span></td><td><code>a6695c4c246d878c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.OptionalPropertyBinding</span></td><td><code>9cb8c7c9d9eeac81</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule</span></td><td><code>c09fda73d1bd2a42</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.1</span></td><td><code>2509f8256afbe846</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.PlexusAnnotatedBeanSource</span></td><td><code>61f98105e6c2da2e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusAnnotatedMetadata</span></td><td><code>c77aab7cd373c077</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusBeanBinder</span></td><td><code>f7f0284927e2c033</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusBindingModule</span></td><td><code>b08fa16b3100610a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusConfigurations</span></td><td><code>12d25c0301e6d591</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusConfigurations.ConfigurationProvider</span></td><td><code>775d4c0586849bdf</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusDateTypeConverter</span></td><td><code>6c63f25a3eea9e05</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusLifecycleManager</span></td><td><code>453684bf309b3472</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusLifecycleManager.2</span></td><td><code>6658d504f339e722</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusPropertyBinder</span></td><td><code>258c08174360e0d7</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusRequirements</span></td><td><code>821cbcc95c2a2cf0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusRequirements.AbstractRequirementProvider</span></td><td><code>870e353d28c4703a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusRequirements.RequirementListProvider</span></td><td><code>cd9af5bb97de4b1e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusRequirements.RequirementMapProvider</span></td><td><code>3f49934626e4d958</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusRequirements.RequirementProvider</span></td><td><code>2a87fe8cf5e7f6b3</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusTypeBinder</span></td><td><code>608eeb0602e1282a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusTypeBinder.PlexusDescribedBinding</span></td><td><code>436e7af47a15d7ca</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusTypeRegistry</span></td><td><code>7a094690b16a3b22</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusTypeVisitor</span></td><td><code>4680eb32bd1570d8</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusTypeVisitor.ComponentAnnotationVisitor</span></td><td><code>ef5279ef5b1e7de3</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusXmlBeanConverter</span></td><td><code>38aed9169e5f674f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusXmlBeanModule</span></td><td><code>cb2d8e0c48f04d92</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusXmlBeanModule.PlexusXmlBeanSource</span></td><td><code>e2666eed91fd5759</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusXmlMetadata</span></td><td><code>ee3c6eee26e07a44</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.PlexusXmlScanner</span></td><td><code>40b6954d96c867ea</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.ProvidedPropertyBinding</span></td><td><code>fa99a5e0df480d2c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.RealmFilteredBeans</span></td><td><code>8f7532c880be746f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.RealmFilteredBeans.FilteredItr</span></td><td><code>52d453290bf6f3cf</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.RequirementImpl</span></td><td><code>70f6aa33737befdf</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.plexus.Roles</span></td><td><code>4b1b139f70be13e5</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.AbstractDeferredClass</span></td><td><code>066334a8a72fbf4e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.BeanScanning</span></td><td><code>15e97edc137edc49</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.CloningClassSpace</span></td><td><code>68f456888e9fecbb</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.CloningClassSpace.1</span></td><td><code>dba89a04bb10ef11</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.CloningClassSpace.CloningClassLoader</span></td><td><code>d7eacf405135c136</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.DefaultClassFinder</span></td><td><code>a14218ebc928531d</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.IndexedClassFinder</span></td><td><code>4e20f6c2d626b9c1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.IndexedClassFinder.1</span></td><td><code>05c1d180c1808dd6</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.LoadedClass</span></td><td><code>50ceb73d8b8a6895</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.NamedClass</span></td><td><code>90cdbbff521a1c51</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.QualifiedTypeBinder</span></td><td><code>9e80f20b61fb573a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.QualifiedTypeVisitor</span></td><td><code>0c4667ccbaa91f4a</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.QualifierCache</span></td><td><code>3c6a316acee89782</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.SpaceModule</span></td><td><code>a56267fab878ce20</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.SpaceModule.Strategy</span></td><td><code>e42e134cdf56eac0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.SpaceModule.Strategy.1</span></td><td><code>1a242dc354123f7c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.SpaceScanner</span></td><td><code>cd530f6d29479eda</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.SpaceScanner.1</span></td><td><code>e152f180b26e99eb</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.Streams</span></td><td><code>5067f62019f5c4e0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.URLClassSpace</span></td><td><code>f6beaf2e99a78cd0</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.WildcardKey</span></td><td><code>a70dd23f259f554e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.WildcardKey.QualifiedImpl</span></td><td><code>2d4ed3ce46730793</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.ByteVector</span></td><td><code>c7d6ab1c78e8932c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.ClassReader</span></td><td><code>6985f52087323bc1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.ClassVisitor</span></td><td><code>082103eebcb2023c</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.ClassWriter</span></td><td><code>b2cb19c194e93e80</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.Context</span></td><td><code>ebbdba2c127ffea7</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.Item</span></td><td><code>3ba9c15025ca723b</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.MethodVisitor</span></td><td><code>af0ec9637ae30792</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.space.asm.MethodWriter</span></td><td><code>c1dccd4e60e76c65</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.AbstractTypeConverter</span></td><td><code>ed2e5350d1f46ab7</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.BeanProviders</span></td><td><code>7f0b5474bb726cc1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.BeanProviders.1</span></td><td><code>932cfd3329b52be1</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.BeanProviders.4</span></td><td><code>9984661a6e0ad663</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.BeanProviders.7</span></td><td><code>a4d346c592c650ae</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.DependencyAnalyzer</span></td><td><code>44e27f30971301b2</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.ElementAnalyzer</span></td><td><code>d4ddc1442c3b569e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.ElementAnalyzer.1</span></td><td><code>719aff5ed5c1031f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntryListAdapter</span></td><td><code>47d71ff8fdd4c296</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntryListAdapter.ValueIterator</span></td><td><code>5dfc6f2db4edaf17</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntryMapAdapter</span></td><td><code>2e3c75d47594d712</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntryMapAdapter.EntrySet</span></td><td><code>bc421dd909d0e353</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntrySetAdapter</span></td><td><code>6985efaec638c0c6</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.EntrySetAdapter.ValueIterator</span></td><td><code>a9fe6400923af619</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.FileTypeConverter</span></td><td><code>d68a79ca1bf37d7f</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.LocatorWiring</span></td><td><code>a387d66de04ac0a3</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.LocatorWiring.1</span></td><td><code>536a288548f69a70</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.MergedProperties</span></td><td><code>5c6370d932e76fd6</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.ParameterKeys</span></td><td><code>ff64aed48a03d6f5</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.PlaceholderBeanProvider</span></td><td><code>360edd9fecbbe3fc</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.TypeConverterCache</span></td><td><code>e7756797de1907ad</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.URLTypeConverter</span></td><td><code>8e2714b2b86504db</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.WireModule</span></td><td><code>36d8d21bd3a4e33e</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.WireModule.Strategy</span></td><td><code>d11df89a55e81df2</code></td></tr><tr><td><span class="el_class">org.eclipse.sisu.wire.WireModule.Strategy.1</span></td><td><code>707b564e61757fd9</code></td></tr><tr><td><span class="el_class">org.jacoco.agent.rt.RT</span></td><td><code>c284d4db81d58f19</code></td></tr><tr><td><span class="el_class">org.junit.Assert</span></td><td><code>e2bac9fc5ef3a4be</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter</span></td><td><code>e7c1106d3801ff54</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.1</span></td><td><code>81fdc65e8fe19b52</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.2</span></td><td><code>bfe6560dc3722ab0</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AllDefaultPossibilitiesBuilder</span></td><td><code>84f7fffb8cd30ad9</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AnnotatedBuilder</span></td><td><code>0faf353d180c9332</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.IgnoredBuilder</span></td><td><code>e152f333c53967a6</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit3Builder</span></td><td><code>4a2cc8e608e1275e</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit4Builder</span></td><td><code>5902b7da0403f55c</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.SuiteMethodBuilder</span></td><td><code>1df136431e07e393</code></td></tr><tr><td><span class="el_class">org.junit.internal.requests.ClassRequest</span></td><td><code>f1e703dd2591ce5c</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.EachTestNotifier</span></td><td><code>0cb318e674165ac8</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.ReflectiveCallable</span></td><td><code>d591724635588bcb</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator</span></td><td><code>95b5ee2068ec6875</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.Builder</span></td><td><code>f24845fa6fd065af</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic</span></td><td><code>1de994463c748d89</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARule</span></td><td><code>e24e9f59de6fe5b7</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule</span></td><td><code>690823bd2992f52e</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule</span></td><td><code>1e703fb3e7f4e533</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic</span></td><td><code>806c174eb921b478</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStatic</span></td><td><code>ac28a03dd36b2b5a</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule</span></td><td><code>88ea4a2237de2b8b</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule</span></td><td><code>9f4dd18a26005c18</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.InvokeMethod</span></td><td><code>05a7aa636afa2c39</code></td></tr><tr><td><span class="el_class">org.junit.rules.RunRules</span></td><td><code>89f6dee1be8fdd02</code></td></tr><tr><td><span class="el_class">org.junit.rules.TestWatcher</span></td><td><code>8f8cbec1c22e7801</code></td></tr><tr><td><span class="el_class">org.junit.rules.TestWatcher.1</span></td><td><code>e12e501819204d5e</code></td></tr><tr><td><span class="el_class">org.junit.runner.Description</span></td><td><code>c7f1b09126c24b2b</code></td></tr><tr><td><span class="el_class">org.junit.runner.Request</span></td><td><code>4f785af929bd628a</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result</span></td><td><code>3a364b299d905039</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result.Listener</span></td><td><code>bbae11d09f5b5a09</code></td></tr><tr><td><span class="el_class">org.junit.runner.Runner</span></td><td><code>f5abacc70e2e08a4</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunListener</span></td><td><code>a740fd873cf92a63</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier</span></td><td><code>ba709a76760379c2</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.1</span></td><td><code>6eb5e06975b1ea02</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.2</span></td><td><code>dc4db4223d160c08</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.3</span></td><td><code>7a903d9d1caf7673</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.7</span></td><td><code>304ecd1b313cb650</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.SafeNotifier</span></td><td><code>3b3dc2f2fc8cfc56</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.SynchronizedRunListener</span></td><td><code>0f89c0c6a77088e5</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner</span></td><td><code>673d2df2f68a9490</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.1</span></td><td><code>b3af68717b17ffc6</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner</span></td><td><code>df303f19df248a10</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.1</span></td><td><code>89f115a2214a3636</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.2</span></td><td><code>0fc04165488ae7c7</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.3</span></td><td><code>65f7d637ed11f8f4</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkField</span></td><td><code>d6d3c27befd6f49d</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMember</span></td><td><code>83f9d72bb2731cf1</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod</span></td><td><code>b9c1cccbfa624e4a</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod.1</span></td><td><code>87d2600c48ade534</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.MultipleFailureException</span></td><td><code>6864935644081f84</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.RunnerBuilder</span></td><td><code>0281d51b4f8328d4</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.Statement</span></td><td><code>9a75aa5de27bf4d5</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass</span></td><td><code>90136128a3e4d163</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.FieldComparator</span></td><td><code>261449f31a730808</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.MethodComparator</span></td><td><code>5a734d8eaadb6011</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationValidatorFactory</span></td><td><code>e736331fde301341</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator</span></td><td><code>51f829810937d72f</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.AnnotatableValidator</span></td><td><code>d211a963f22be103</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.ClassValidator</span></td><td><code>1b463c4e6642e880</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.FieldValidator</span></td><td><code>64068b954dc56a31</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.MethodValidator</span></td><td><code>f16b57f17c787036</code></td></tr><tr><td><span class="el_class">org.junit.validator.PublicClassValidator</span></td><td><code>3bac248cf06b18e4</code></td></tr><tr><td><span class="el_class">org.slf4j.Logger.debug</span></td><td><code>ddd5d97290aab1f9</code></td></tr><tr><td><span class="el_class">org.slf4j.LoggerFactory</span></td><td><code>e80b3c8ed382a4ff</code></td></tr><tr><td><span class="el_class">org.slf4j.LoggerFactory.getLogger</span></td><td><code>27c63b9ef1c9666d</code></td></tr><tr><td><span class="el_class">org.slf4j.helpers.MarkerIgnoringBase</span></td><td><code>7ebf011a62144edb</code></td></tr><tr><td><span class="el_class">org.slf4j.helpers.NOPLoggerFactory</span></td><td><code>54f5632bfcb8d8d5</code></td></tr><tr><td><span class="el_class">org.slf4j.helpers.NamedLoggerBase</span></td><td><code>16ccf5782fede341</code></td></tr><tr><td><span class="el_class">org.slf4j.helpers.SubstituteLoggerFactory</span></td><td><code>dc7efc0107a4a62d</code></td></tr><tr><td><span class="el_class">org.slf4j.helpers.Util</span></td><td><code>6353f961d998a4b6</code></td></tr><tr><td><span class="el_class">org.slf4j.impl.SimpleLogger</span></td><td><code>7858fc7ab692250d</code></td></tr><tr><td><span class="el_class">org.slf4j.impl.SimpleLogger.1</span></td><td><code>6b48a5cb42d43365</code></td></tr><tr><td><span class="el_class">org.slf4j.impl.SimpleLoggerFactory</span></td><td><code>c636af2845c11235</code></td></tr><tr><td><span class="el_class">org.slf4j.impl.StaticLoggerBinder</span></td><td><code>9266b42a962dc839</code></td></tr><tr><td><span class="el_class">org.sonar.java.jacoco.JUnitListener</span></td><td><code>9ee2fcc1842654ea</code></td></tr><tr><td><span class="el_class">org.sonar.java.jacoco.JacocoController</span></td><td><code>42a9dd6d55b18da1</code></td></tr><tr><td><span class="el_class">org.sonatype.plexus.build.incremental.DefaultBuildContext</span></td><td><code>e25fd564b55e8386</code></td></tr><tr><td><span class="el_class">org.sonatype.plexus.build.incremental.EmptyScanner</span></td><td><code>45b8b1e83669fb98</code></td></tr><tr><td><span class="el_class">org.sonatype.plexus.components.cipher.DefaultPlexusCipher</span></td><td><code>5ddac845843100c4</code></td></tr><tr><td><span class="el_class">org.sonatype.plexus.components.cipher.PBECipher</span></td><td><code>638c060c25cd0952</code></td></tr><tr><td><span class="el_class">org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher</span></td><td><code>ff881dc36da13f0c</code></td></tr><tr><td><a href="org.springframework.cloud.contract.maven.verifier/ConvertMojo.html" class="el_class">org.springframework.cloud.contract.maven.verifier.ConvertMojo</a></td><td><code>b2797aa07cdc0e4a</code></td></tr><tr><td><a href="org.springframework.cloud.contract.maven.verifier/CopyContracts.html" class="el_class">org.springframework.cloud.contract.maven.verifier.CopyContracts</a></td><td><code>913f3a769f9067f4</code></td></tr><tr><td><a href="org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.html" class="el_class">org.springframework.cloud.contract.maven.verifier.GenerateStubsMojo</a></td><td><code>6fed34a805dcaee8</code></td></tr><tr><td><a href="org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.html" class="el_class">org.springframework.cloud.contract.maven.verifier.GenerateTestsMojo</a></td><td><code>e28d9a1dd643445f</code></td></tr><tr><td><a href="org.springframework.cloud.contract.maven.verifier/ManifestCreator.html" class="el_class">org.springframework.cloud.contract.maven.verifier.ManifestCreator</a></td><td><code>f8e0a7e96029edc8</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.maven.verifier.PluginUnitTest</span></td><td><code>b1e8e69675db047a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.Contract</span></td><td><code>d0bcd861ff78c1db</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.Contract.make</span></td><td><code>533601951f80512d</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Body</span></td><td><code>ee6610fe4e0b75c1</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Common</span></td><td><code>dd679d6915fbb590</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.DslProperty</span></td><td><code>a9b1648a7c655e84</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Header</span></td><td><code>3387a17a30d91a61</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Headers</span></td><td><code>51ef1ea0b48394a6</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Headers._executeForEachHeader_closure1</span></td><td><code>1856b4734cd2e63f</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Headers.executeForEachHeader</span></td><td><code>fe1384fd6e354e0c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Input</span></td><td><code>5fb012fa39572b2b</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Input.BodyType</span></td><td><code>937fd7d1126137fc</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.MatchingStrategy</span></td><td><code>5840ff8dde46e1e5</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.MatchingStrategy.Type</span></td><td><code>29deb28664af0ba2</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.OutputMessage</span></td><td><code>6bd329ca50b01713</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.RegexPatterns</span></td><td><code>830bbe761fdc82ef</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Request</span></td><td><code>f6c900c77dd3d6b4</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Response</span></td><td><code>ade91c3ebbc4316a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.internal.Url</span></td><td><code>b52e28af10fc3869</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.util.ValidateUtils</span></td><td><code>22e1344860fb406c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.spec.util.ValidateUtils.validateServerValue</span></td><td><code>e68d8fe7d8d63947</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.FileSaver</span></td><td><code>0361f916307c3415</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.FileSaver.saveClassFile</span></td><td><code>a4819e803493f365</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.TestGenerator</span></td><td><code>cef17d81cf265247</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.TestGenerator._generateTestClasses_closure1</span></td><td><code>197ee9e912dd9491</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.BlockBuilder</span></td><td><code>d6957eff24be71f1</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.BlockBuilder._addIndentation_closure1</span></td><td><code>8e34fcc5b8615fb9</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder</span></td><td><code>334edf9707184f08</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._addField_closure1</span></td><td><code>22fe79cb16ddbcf7</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure2</span></td><td><code>2a1b814dc2107eb6</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure3</span></td><td><code>5e9970f8eb32a280</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure4</span></td><td><code>ebb328d480c3e214</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure5</span></td><td><code>debcb06797c15372</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure6</span></td><td><code>2a636116dab8b7c5</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.ClassBuilder._build_closure7</span></td><td><code>e13e2a0998bded9e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.JUnitMessagingMethodBodyBuilder</span></td><td><code>6b142c423feb8d2a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.JUnitMessagingMethodBodyBuilder._getInputString_closure2</span></td><td><code>611fbf421fbb5b32</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.JUnitMessagingMethodBodyBuilder._validateResponseHeadersBlock_closure1</span></td><td><code>3bc6704ba521b9c9</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.JUnitMethodBodyBuilder</span></td><td><code>8014430a37765e05</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MessagingMethodBodyBuilder</span></td><td><code>1ed24738783244be</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBodyBuilder</span></td><td><code>0f1f81157c07bf1a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBodyBuilder._extractServerValueFromBody_closure3</span></td><td><code>7f9da5a7002eff97</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBodyBuilder._extractServerValueFromBody_closure4</span></td><td><code>ff4b9a37a3054ec5</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBodyBuilder._processBodyElement_closure5</span></td><td><code>d513128fad815d97</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBodyBuilder._validateResponseBodyBlock_closure2</span></td><td><code>bbf47eefe33779ff</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MethodBuilder</span></td><td><code>11829785d3fcd0af</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MockMvcJUnitMethodBodyBuilder</span></td><td><code>5cafa11153efc8c7</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MockMvcJUnitMethodBodyBuilder._validateResponseHeadersBlock_closure1</span></td><td><code>285986b21f419b9c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MockMvcSpockMethodRequestProcessingBodyBuilder</span></td><td><code>ca327b5a22338350</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.MockMvcSpockMethodRequestProcessingBodyBuilder._validateResponseHeadersBlock_closure1</span></td><td><code>4199eddfb3c28981</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.RequestProcessingMethodBodyBuilder</span></td><td><code>c7ba92ad5813ac6d</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.RequestProcessingMethodBodyBuilder._processInput_closure1</span></td><td><code>25bc052dedb6fc41</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator</span></td><td><code>5ea6cab7baa4f526</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator.ParsedDsl</span></td><td><code>9998855252691703</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator.TestType</span></td><td><code>bf85531349d6ff5f</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator._buildClass_closure2</span></td><td><code>03d77b1aae2b8ba9</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator._buildClass_closure4</span></td><td><code>410e788cab2ae1d7</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator._isScenarioClass_closure6</span></td><td><code>2d73a60055060c77</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SingleTestGenerator._mapContractsToTheirTestTypes_closure5</span></td><td><code>9d6db201981987e4</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SpockMessagingMethodBodyBuilder</span></td><td><code>3888f43a3491f9fb</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SpockMessagingMethodBodyBuilder._getInputString_closure2</span></td><td><code>8822e6abba0df113</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SpockMessagingMethodBodyBuilder._validateResponseHeadersBlock_closure1</span></td><td><code>750a9b10d567befd</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.builder.SpockMethodRequestProcessingBodyBuilder</span></td><td><code>d3f4668d31496417</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties</span></td><td><code>69e02f2939d71b0a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.config.TestFramework</span></td><td><code>2c5baf35d9e7b55e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.config.TestMode</span></td><td><code>7b4e99bbe8028165</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.BaseWireMockStubStrategy</span></td><td><code>c1cef86d848487e3</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.BaseWireMockStubStrategy.__clinit__closure3</span></td><td><code>b103232a91039b45</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy</span></td><td><code>5b2e5b6c2cb59c06</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy._appendBody_closure1</span></td><td><code>1ffe975c3cc2cd35</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy._appendBody_closure2</span></td><td><code>66f7b988f3133a9c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy._appendHeaders_closure5</span></td><td><code>495ac1c8b822dda0</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy._appendQueryParameters_closure7</span></td><td><code>5ed101fd0ef2e11f</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockRequestStubStrategy._getMatchingStrategy_closure8</span></td><td><code>aa57ab6a0fb7327d</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockResponseStubStrategy</span></td><td><code>55a3efb65aec93ef</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockResponseStubStrategy._appendHeaders_closure1</span></td><td><code>39163c67c5885d14</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubStrategy</span></td><td><code>9950ec974fc8d78a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.file.ContractFileScanner</span></td><td><code>11a70721cfe9438e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.file.ContractFileScanner._appendRecursively_closure2</span></td><td><code>1427a89c336af9ca</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.file.ContractFileScanner._processPatterns_closure1</span></td><td><code>1305f974aad95836</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.file.ContractFileScanner.findContracts</span></td><td><code>941108d667d27201</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.file.ContractMetadata</span></td><td><code>b5dba38517698348</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentType</span></td><td><code>746b0b29736084fe</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils</span></td><td><code>ff12c6b71a32ae08</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.__clinit__closure10</span></td><td><code>b8dc6091a62f4b0c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.__clinit__closure9</span></td><td><code>2518c26faff8e537</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils._convertAllTemporaryRegexPlaceholdersBackToPatterns_closure5</span></td><td><code>c108df4d05283d37</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils._convertDslPropsToTemporaryRegexPatterns_closure4</span></td><td><code>814ae0ac13a11358</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils._extractValueForJSON_closure2</span></td><td><code>fef7f3e4794f40d0</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils._recognizeContentTypeFromHeader_closure6</span></td><td><code>72f36047b082773c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.extractValue.0</span></td><td><code>82357ff5914f7954</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.extractValue.1</span></td><td><code>b1833ecd479bbff1</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.getEqualsTypeFromContentType.2</span></td><td><code>f52a0af1619c3be9</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.recognizeContentTypeFromContent.4</span></td><td><code>09199e19dce51c65</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.recognizeContentTypeFromHeader</span></td><td><code>72f7b3ea998a052f</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContentUtils.returnParsedObject.3</span></td><td><code>897688ae6371516e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter</span></td><td><code>87a3391adefbf4a5</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter.convert</span></td><td><code>1f83f14d10a514f5</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.DelegatingJsonVerifiable</span></td><td><code>89321fa1cebc6f93</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.FinishedDelegatingJsonVerifiable</span></td><td><code>219cb8f1e437375e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonPaths</span></td><td><code>eff0eef511e64822</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter</span></td><td><code>12c5e41cd6d6c381</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter._convertWithKey_closure9</span></td><td><code>ca0c53fc79ed01b7</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter._isAnEntryWithoutNestedStructures_closure6</span></td><td><code>7f1018e35da8ce42</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter._isAnEntryWithoutNestedStructures_closure6._closure10</span></td><td><code>07f1792e45b9677f</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter._transformToJsonPathWithValues_closure1</span></td><td><code>f056b80be37b1d7a</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter.transformToJsonPathWithStubsSideValues</span></td><td><code>e5d16c2330550416</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter.transformToJsonPathWithTestsSideValues.0</span></td><td><code>7001751ea6c4f697</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter</span></td><td><code>ea0fe8fa8857372e</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter._convert_closure4</span></td><td><code>1ddbf548e16ccc05</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter._getClientOrServerSideValues_closure5</span></td><td><code>a5f5419ea29b76aa</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter._transformToClientValues_closure1</span></td><td><code>4e5565787ad7a128</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter.getClientOrServerSideValues.1</span></td><td><code>0f8d74919cfa3556</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter.getTestSideValues.2</span></td><td><code>085bf437ce6f442c</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter.transformToClientValues.0</span></td><td><code>6f1c5810863772df</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MapConverter.transformValues</span></td><td><code>351d0e851b561438</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable.assertsSize.1</span></td><td><code>d65558b53a2a0aa6</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable.field</span></td><td><code>a03f953f92e11fc0</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable.isEqualTo.0</span></td><td><code>569b903b7786c189</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.NamesUtil</span></td><td><code>4ad921197c3faed8</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.NamesUtil.afterLast</span></td><td><code>3b8d14ad02245795</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.NamesUtil.beforeLast.0</span></td><td><code>146caffc7dbd5efc</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.NamesUtil.capitalize.1</span></td><td><code>af5a12ba41785c15</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.util.NamesUtil.convertIllegalPackageChars.2</span></td><td><code>8d36007d321c02de</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.wiremock.DslToWireMockClientConverter</span></td><td><code>cd8cbc6bf959feda</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.wiremock.DslToWireMockConverter</span></td><td><code>c2f7239c4cbe85d4</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConverter</span></td><td><code>8f9261bc1700e147</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConverter._processFiles_closure1</span></td><td><code>940eca1a900c7e54</code></td></tr><tr><td><span class="el_class">org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConverter._processFiles_closure1._closure2</span></td><td><code>05084ebaef103da8</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/index.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/index.html
    new file mode 100644
    index 0000000000..19517106ab
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/index.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href=".resources/report.css" type="text/css"/><link rel="shortcut icon" href=".resources/report.gif" type="image/gif"/><title>Spring Cloud Contract Maven Plugin</title><script type="text/javascript" src=".resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href=".sessions.html" class="el_session">Sessions</a></span><span class="el_report">Spring Cloud Contract Maven Plugin</span></div><h1>Spring Cloud Contract Maven Plugin</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">428 of 869</td><td class="ctr2">51%</td><td class="bar">36 of 52</td><td class="ctr2">31%</td><td class="ctr1">44</td><td class="ctr2">58</td><td class="ctr1">102</td><td class="ctr2">197</td><td class="ctr1">19</td><td class="ctr2">32</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a0"><a href="org.springframework.cloud.contract.maven.verifier/index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a></td><td class="bar" id="b0"><img src=".resources/redbar.gif" width="50" height="10" title="319" alt="319"/><img src=".resources/greenbar.gif" width="69" height="10" title="441" alt="441"/></td><td class="ctr2" id="c0">58%</td><td class="bar" id="d0"><img src=".resources/redbar.gif" width="83" height="10" title="36" alt="36"/><img src=".resources/greenbar.gif" width="36" height="10" title="16" alt="16"/></td><td class="ctr2" id="e0">31%</td><td class="ctr1" id="f0">36</td><td class="ctr2" id="g0">50</td><td class="ctr1" id="h0">76</td><td class="ctr2" id="i0">171</td><td class="ctr1" id="j0">11</td><td class="ctr2" id="k0">24</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m0">6</td></tr><tr><td id="a1"><a href="org.springframework.cloud.contract.maven.verifier.stubrunner/index.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a></td><td class="bar" id="b1"><img src=".resources/redbar.gif" width="17" height="10" title="109" alt="109"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h1">26</td><td class="ctr2" id="i1">26</td><td class="ctr1" id="j1">8</td><td class="ctr2" id="k1">8</td><td class="ctr1" id="l0">3</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.csv b/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.csv
    new file mode 100644
    index 0000000000..7c6debcc1a
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.csv
    @@ -0,0 +1,10 @@
    +GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,ManifestCreator,42,43,11,5,12,10,10,2,2,2
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,CopyContracts,8,72,0,0,2,23,0,3,0,3
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,ConvertMojo,18,88,3,3,3,17,3,3,0,3
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,GenerateTestsMojo,75,130,10,4,14,26,11,2,4,2
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,RunMojo,131,0,10,0,39,0,10,0,5,0
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier,GenerateStubsMojo,45,108,2,4,6,19,2,4,0,3
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier.stubrunner,RemoteStubRunner,57,0,0,0,14,0,3,0,3,0
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier.stubrunner,LocalStubRunner,33,0,0,0,6,0,3,0,3,0
    +Spring Cloud Contract Maven Plugin,org.springframework.cloud.contract.maven.verifier.stubrunner,AetherStubDownloaderFactory,19,0,0,0,6,0,2,0,2,0
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.xml b/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.xml
    new file mode 100644
    index 0000000000..a55dce2e9f
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/jacoco.xml
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.0//EN" "report.dtd"><report name="Spring Cloud Contract Maven Plugin"><sessioninfo id="" start="1469651065010" dump="1469651065955"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockFromStubsDirectory" start="1469651065958" dump="1469651070485"/><sessioninfo id="" start="1469651070521" dump="1469651070522"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubsWithMappingsOnly" start="1469651070554" dump="1469651071030"/><sessioninfo id="" start="1469651071063" dump="1469651071064"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockStubsInDefaultLocation" start="1469651071095" dump="1469651071472"/><sessioninfo id="" start="1469651071504" dump="1469651071505"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubsWithCustomClassifier" start="1469651071537" dump="1469651071762"/><sessioninfo id="" start="1469651071793" dump="1469651071794"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateWireMockStubsInSelectedLocation" start="1469651071825" dump="1469651072119"/><sessioninfo id="" start="1469651072150" dump="1469651072151"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsWithCustomImports" start="1469651072183" dump="1469651072899"/><sessioninfo id="" start="1469651072933" dump="1469651072933"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateStubs" start="1469651072966" dump="1469651073165"/><sessioninfo id="" start="1469651073198" dump="1469651073199"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldCopyContracts" start="1469651073231" dump="1469651073472"/><sessioninfo id="" start="1469651073505" dump="1469651073505"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractSpecificationInDefaultLocation" start="1469651073538" dump="1469651073814"/><sessioninfo id="" start="1469651073847" dump="1469651073848"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsInDefaultLocation" start="1469651073880" dump="1469651074117"/><sessioninfo id="org.springframework.cloud.contract.maven.verifier.PluginUnitTest shouldGenerateContractTestsInDefaultLocation" start="1469651074151" dump="1469651074155"/><package name="org/springframework/cloud/contract/maven/verifier"><class name="org/springframework/cloud/contract/maven/verifier/ManifestCreator"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createManifest" desc="(Lorg/apache/maven/project/MavenProject;)Lorg/codehaus/plexus/archiver/jar/Manifest;" line="28"><counter type="INSTRUCTION" missed="16" covered="26"/><counter type="BRANCH" missed="5" covered="3"/><counter type="LINE" missed="4" covered="7"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="findMavenPlugin" desc="(Ljava/util/List;)Lorg/apache/maven/model/Plugin;" line="46"><counter type="INSTRUCTION" missed="3" covered="17"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="2" covered="3"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="findVerifierDependency" desc="(Ljava/util/List;)Lorg/apache/maven/model/Dependency;" line="55"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="42" covered="43"/><counter type="BRANCH" missed="11" covered="5"/><counter type="LINE" missed="12" covered="10"/><counter type="COMPLEXITY" missed="10" covered="2"/><counter type="METHOD" missed="2" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/springframework/cloud/contract/maven/verifier/CopyContracts"><method name="&lt;init&gt;" desc="(Lorg/apache/maven/project/MavenProject;Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/shared/filtering/MavenResourcesFiltering;)V" line="40"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copy" desc="(Ljava/io/File;Ljava/io/File;)V" line="48"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="LINE" missed="2" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="33"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="8" covered="72"/><counter type="LINE" missed="2" covered="23"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/springframework/cloud/contract/maven/verifier/ConvertMojo"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="80"><counter type="INSTRUCTION" missed="18" covered="80"/><counter type="BRANCH" missed="3" covered="3"/><counter type="LINE" missed="3" covered="15"/><counter type="COMPLEXITY" missed="3" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isInsideProject" desc="()Z" line="109"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="18" covered="88"/><counter type="BRANCH" missed="3" covered="3"/><counter type="LINE" missed="3" covered="17"/><counter type="COMPLEXITY" missed="3" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo"><method name="&lt;init&gt;" desc="()V" line="37"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="101"><counter type="INSTRUCTION" missed="61" covered="127"/><counter type="BRANCH" missed="10" covered="4"/><counter type="LINE" missed="8" covered="25"/><counter type="COMPLEXITY" missed="7" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getExcludedFiles" desc="()Ljava/util/List;" line="143"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setExcludedFiles" desc="(Ljava/util/List;)V" line="147"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getIgnoredFiles" desc="()Ljava/util/List;" line="151"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setIgnoredFiles" desc="(Ljava/util/List;)V" line="155"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="75" covered="130"/><counter type="BRANCH" missed="10" covered="4"/><counter type="LINE" missed="14" covered="26"/><counter type="COMPLEXITY" missed="11" covered="2"/><counter type="METHOD" missed="4" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/springframework/cloud/contract/maven/verifier/RunMojo"><method name="&lt;init&gt;" desc="(Lorg/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner;Lorg/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner;)V" line="83"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="execute" desc="()V" line="100"><counter type="INSTRUCTION" missed="95" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="resolveStubsDirectory" desc="()Ljava/io/File;" line="131"><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="pressAnyKeyToContinue" desc="()V" line="139"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="isInsideProject" desc="()Z" line="147"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="131" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="10" covered="0"/><counter type="METHOD" missed="5" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo"><method name="&lt;init&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="69"><counter type="INSTRUCTION" missed="13" covered="18"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="2" covered="4"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createStubJar" desc="(Ljava/io/File;)Ljava/io/File;" line="81"><counter type="INSTRUCTION" missed="32" covered="87"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="4" covered="14"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="45" covered="108"/><counter type="BRANCH" missed="2" covered="4"/><counter type="LINE" missed="6" covered="19"/><counter type="COMPLEXITY" missed="2" covered="4"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="GenerateTestsMojo.java"><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="101" mi="0" ci="9" mb="3" cb="3"/><line nr="102" mi="15" ci="0" mb="2" cb="0"/><line nr="103" mi="15" ci="0" mb="2" cb="0"/><line nr="104" mi="15" ci="0" mb="2" cb="0"/><line nr="105" mi="1" ci="0" mb="0" cb="0"/><line nr="107" mi="0" ci="4" mb="0" cb="0"/><line nr="109" mi="0" ci="4" mb="0" cb="0"/><line nr="110" mi="0" ci="4" mb="0" cb="0"/><line nr="111" mi="0" ci="4" mb="0" cb="0"/><line nr="112" mi="0" ci="4" mb="0" cb="0"/><line nr="113" mi="0" ci="4" mb="0" cb="0"/><line nr="114" mi="0" ci="4" mb="0" cb="0"/><line nr="115" mi="0" ci="4" mb="0" cb="0"/><line nr="116" mi="0" ci="4" mb="0" cb="0"/><line nr="117" mi="0" ci="4" mb="0" cb="0"/><line nr="118" mi="0" ci="4" mb="0" cb="0"/><line nr="119" mi="0" ci="4" mb="0" cb="0"/><line nr="120" mi="0" ci="4" mb="0" cb="0"/><line nr="121" mi="0" ci="4" mb="0" cb="0"/><line nr="122" mi="0" ci="6" mb="0" cb="0"/><line nr="123" mi="0" ci="4" mb="1" cb="1"/><line nr="124" mi="0" ci="10" mb="0" cb="0"/><line nr="125" mi="0" ci="5" mb="0" cb="0"/><line nr="127" mi="0" ci="14" mb="0" cb="0"/><line nr="131" mi="0" ci="5" mb="0" cb="0"/><line nr="132" mi="0" ci="3" mb="0" cb="0"/><line nr="133" mi="0" ci="13" mb="0" cb="0"/><line nr="135" mi="1" ci="0" mb="0" cb="0"/><line nr="136" mi="8" ci="0" mb="0" cb="0"/><line nr="137" mi="4" ci="0" mb="0" cb="0"/><line nr="138" mi="2" ci="0" mb="0" cb="0"/><line nr="139" mi="0" ci="1" mb="0" cb="0"/><line nr="140" mi="0" ci="1" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="148" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="3" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="75" covered="130"/><counter type="BRANCH" missed="10" covered="4"/><counter type="LINE" missed="14" covered="26"/><counter type="COMPLEXITY" missed="11" covered="2"/><counter type="METHOD" missed="4" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="GenerateStubsMojo.java"><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="69" mi="0" ci="3" mb="1" cb="1"/><line nr="70" mi="12" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="0" ci="5" mb="0" cb="0"/><line nr="76" mi="0" ci="9" mb="0" cb="0"/><line nr="77" mi="0" ci="1" mb="0" cb="0"/><line nr="81" mi="0" ci="3" mb="1" cb="1"/><line nr="82" mi="8" ci="0" mb="0" cb="0"/><line nr="83" mi="7" ci="0" mb="0" cb="0"/><line nr="86" mi="0" ci="5" mb="0" cb="0"/><line nr="87" mi="0" ci="12" mb="0" cb="0"/><line nr="88" mi="0" ci="7" mb="0" cb="0"/><line nr="90" mi="0" ci="3" mb="0" cb="2"/><line nr="91" mi="0" ci="17" mb="0" cb="0"/><line nr="96" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="16" mb="0" cb="0"/><line nr="102" mi="0" ci="4" mb="0" cb="0"/><line nr="103" mi="0" ci="4" mb="0" cb="0"/><line nr="104" mi="0" ci="6" mb="0" cb="0"/><line nr="105" mi="0" ci="3" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="16" ci="0" mb="0" cb="0"/><line nr="110" mi="0" ci="1" mb="0" cb="0"/><line nr="111" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="45" covered="108"/><counter type="BRANCH" missed="2" covered="4"/><counter type="LINE" missed="6" covered="19"/><counter type="COMPLEXITY" missed="2" covered="4"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="CopyContracts.java"><line nr="33" mi="0" ci="1" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="41" mi="0" ci="3" mb="0" cb="0"/><line nr="42" mi="0" ci="3" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="44" mi="0" ci="1" mb="0" cb="0"/><line nr="48" mi="0" ci="3" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="4" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="53" mi="0" ci="7" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="3" mb="0" cb="0"/><line nr="56" mi="0" ci="4" mb="0" cb="0"/><line nr="57" mi="0" ci="3" mb="0" cb="0"/><line nr="58" mi="0" ci="3" mb="0" cb="0"/><line nr="59" mi="0" ci="3" mb="0" cb="0"/><line nr="60" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="1" ci="0" mb="0" cb="0"/><line nr="65" mi="7" ci="0" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="8" covered="72"/><counter type="LINE" missed="2" covered="23"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="RunMojo.java"><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="2" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="1" ci="0" mb="0" cb="0"/><line nr="100" mi="6" ci="0" mb="4" cb="0"/><line nr="101" mi="13" ci="0" mb="0" cb="0"/><line nr="102" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="2" ci="0" mb="0" cb="0"/><line nr="105" mi="5" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="107" mi="4" ci="0" mb="2" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="2" ci="0" mb="0" cb="0"/><line nr="110" mi="2" ci="0" mb="0" cb="0"/><line nr="111" mi="8" ci="0" mb="0" cb="0"/><line nr="112" mi="6" ci="0" mb="0" cb="0"/><line nr="113" mi="1" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="5" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="7" ci="0" mb="0" cb="0"/><line nr="120" mi="2" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="2" cb="0"/><line nr="123" mi="2" ci="0" mb="0" cb="0"/><line nr="124" mi="1" ci="0" mb="0" cb="0"/><line nr="125" mi="6" ci="0" mb="0" cb="0"/><line nr="126" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="2" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="1" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><line nr="147" mi="5" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="131" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="10" covered="0"/><counter type="METHOD" missed="5" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="ManifestCreator.java"><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="2" mb="1" cb="1"/><line nr="31" mi="0" ci="6" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="6" mb="2" cb="2"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="2" ci="0" mb="2" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="7" ci="0" mb="0" cb="0"/><line nr="42" mi="0" ci="2" mb="0" cb="0"/><line nr="46" mi="0" ci="10" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="1" cb="1"/><line nr="48" mi="0" ci="2" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="51" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="10" ci="0" mb="2" cb="0"/><line nr="56" mi="5" ci="0" mb="2" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="59" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="43"/><counter type="BRANCH" missed="11" covered="5"/><counter type="LINE" missed="12" covered="10"/><counter type="COMPLEXITY" missed="10" covered="2"/><counter type="METHOD" missed="2" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="ConvertMojo.java"><line nr="41" mi="0" ci="3" mb="0" cb="0"/><line nr="80" mi="0" ci="3" mb="1" cb="1"/><line nr="81" mi="11" ci="0" mb="0" cb="0"/><line nr="83" mi="2" ci="0" mb="0" cb="0"/><line nr="84" mi="1" ci="0" mb="0" cb="0"/><line nr="87" mi="0" ci="13" mb="0" cb="0"/><line nr="88" mi="0" ci="1" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="2" ci="8" mb="1" cb="1"/><line nr="92" mi="0" ci="3" mb="0" cb="0"/><line nr="93" mi="2" ci="9" mb="1" cb="1"/><line nr="95" mi="0" ci="4" mb="0" cb="0"/><line nr="97" mi="0" ci="10" mb="0" cb="0"/><line nr="99" mi="0" ci="2" mb="0" cb="0"/><line nr="100" mi="0" ci="10" mb="0" cb="0"/><line nr="101" mi="0" ci="2" mb="0" cb="0"/><line nr="103" mi="0" ci="8" mb="0" cb="0"/><line nr="105" mi="0" ci="2" mb="0" cb="0"/><line nr="106" mi="0" ci="1" mb="0" cb="0"/><line nr="109" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="18" covered="88"/><counter type="BRANCH" missed="3" covered="3"/><counter type="LINE" missed="3" covered="17"/><counter type="COMPLEXITY" missed="3" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="319" covered="441"/><counter type="BRANCH" missed="36" covered="16"/><counter type="LINE" missed="76" covered="95"/><counter type="COMPLEXITY" missed="36" covered="14"/><counter type="METHOD" missed="11" covered="13"/><counter type="CLASS" missed="1" covered="5"/></package><package name="org/springframework/cloud/contract/maven/verifier/stubrunner"><class name="org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner"><method name="&lt;init&gt;" desc="(Lorg/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory;)V" line="37"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="run" desc="(Lorg/springframework/cloud/contract/stubrunner/StubRunnerOptions;Lorg/eclipse/aether/RepositorySystemSession;)Lorg/springframework/cloud/contract/stubrunner/BatchStubRunner;" line="42"><counter type="INSTRUCTION" missed="46" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="33"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="57" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner"><method name="&lt;init&gt;" desc="()V" line="28"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="run" desc="(Ljava/lang/String;Lorg/springframework/cloud/contract/stubrunner/StubRunnerOptions;)Lorg/springframework/cloud/contract/stubrunner/StubRunner;" line="32"><counter type="INSTRUCTION" missed="25" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="29"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory"><method name="&lt;init&gt;" desc="(Lorg/eclipse/aether/RepositorySystem;Lorg/apache/maven/project/MavenProject;)V" line="35"><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="build" desc="(Lorg/eclipse/aether/RepositorySystemSession;)Lorg/springframework/cloud/contract/stubrunner/AetherStubDownloader;" line="41"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="AetherStubDownloaderFactory.java"><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="42" mi="4" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="RemoteStubRunner.java"><line nr="33" mi="5" ci="0" mb="0" cb="0"/><line nr="37" mi="2" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="44" mi="11" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="47" mi="3" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="11" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="57" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="LocalStubRunner.java"><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="10" ci="0" mb="0" cb="0"/><line nr="33" mi="10" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="109" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="8" covered="0"/><counter type="CLASS" missed="3" covered="0"/></package><counter type="INSTRUCTION" missed="428" covered="441"/><counter type="BRANCH" missed="36" covered="16"/><counter type="LINE" missed="102" covered="95"/><counter type="COMPLEXITY" missed="44" covered="14"/><counter type="METHOD" missed="19" covered="13"/><counter type="CLASS" missed="4" covered="5"/></report>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.html
    new file mode 100644
    index 0000000000..9f11531887
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>AetherStubDownloaderFactory</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_class">AetherStubDownloaderFactory</span></div><h1>AetherStubDownloaderFactory</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">19 of 19</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="AetherStubDownloaderFactory.java.html#L41" class="el_method">build(RepositorySystemSession)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AetherStubDownloaderFactory.java.html#L35" class="el_method">AetherStubDownloaderFactory(RepositorySystem, MavenProject)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="108" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.java.html
    new file mode 100644
    index 0000000000..ed44fed02d
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/AetherStubDownloaderFactory.java.html
    @@ -0,0 +1,45 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>AetherStubDownloaderFactory.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_source">AetherStubDownloaderFactory.java</span></div><h1>AetherStubDownloaderFactory.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier.stubrunner;
    +
    +import javax.inject.Inject;
    +import javax.inject.Named;
    +import javax.inject.Singleton;
    +
    +import org.apache.maven.project.MavenProject;
    +import org.eclipse.aether.RepositorySystem;
    +import org.eclipse.aether.RepositorySystemSession;
    +import org.springframework.cloud.contract.stubrunner.AetherStubDownloader;
    +
    +@Named
    +@Singleton
    +public class AetherStubDownloaderFactory {
    +	private final MavenProject project;
    +	private final RepositorySystem repoSystem;
    +
    +	@Inject
    +	public AetherStubDownloaderFactory(RepositorySystem repoSystem,
    +<span class="nc" id="L35">			MavenProject project) {</span>
    +<span class="nc" id="L36">		this.repoSystem = repoSystem;</span>
    +<span class="nc" id="L37">		this.project = project;</span>
    +<span class="nc" id="L38">	}</span>
    +
    +	public AetherStubDownloader build(RepositorySystemSession repoSession) {
    +<span class="nc" id="L41">		return new AetherStubDownloader(repoSystem,</span>
    +<span class="nc" id="L42">				project.getRemoteProjectRepositories(), repoSession);</span>
    +	}
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.html
    new file mode 100644
    index 0000000000..fe09cd4eaf
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>LocalStubRunner</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_class">LocalStubRunner</span></div><h1>LocalStubRunner</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">33 of 33</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="LocalStubRunner.java.html#L32" class="el_method">run(String, StubRunnerOptions)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="25" alt="25"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="LocalStubRunner.java.html#L29" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="24" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="LocalStubRunner.java.html#L28" class="el_method">LocalStubRunner()</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="14" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.java.html
    new file mode 100644
    index 0000000000..ef59007a2f
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/LocalStubRunner.java.html
    @@ -0,0 +1,39 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>LocalStubRunner.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_source">LocalStubRunner.java</span></div><h1>LocalStubRunner.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier.stubrunner;
    +
    +import java.lang.invoke.MethodHandles;
    +import javax.inject.Named;
    +
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +import org.springframework.cloud.contract.stubrunner.StubConfiguration;
    +import org.springframework.cloud.contract.stubrunner.StubRunner;
    +import org.springframework.cloud.contract.stubrunner.StubRunnerOptions;
    +
    +@Named
    +<span class="nc" id="L28">public class LocalStubRunner {</span>
    +<span class="nc" id="L29">	private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());</span>
    +
    +	public StubRunner run(final String contractsDir, StubRunnerOptions options) {
    +<span class="nc" id="L32">		log.info(&quot;Launching StubRunner with contracts from &quot; + contractsDir);</span>
    +<span class="nc" id="L33">		StubRunner stubRunner = new StubRunner(options, contractsDir,</span>
    +				new StubConfiguration(contractsDir));
    +<span class="nc" id="L35">		stubRunner.runStubs();</span>
    +<span class="nc" id="L36">		return stubRunner;</span>
    +	}
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.html
    new file mode 100644
    index 0000000000..3bd2893b0f
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RemoteStubRunner</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_class">RemoteStubRunner</span></div><h1>RemoteStubRunner</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">57 of 57</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="RemoteStubRunner.java.html#L42" class="el_method">run(StubRunnerOptions, RepositorySystemSession)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="RemoteStubRunner.java.html#L37" class="el_method">RemoteStubRunner(AetherStubDownloaderFactory)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="15" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="RemoteStubRunner.java.html#L33" class="el_method">static {...}</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="13" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.java.html
    new file mode 100644
    index 0000000000..d53805f35d
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/RemoteStubRunner.java.html
    @@ -0,0 +1,58 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RemoteStubRunner.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</a> &gt; <span class="el_source">RemoteStubRunner.java</span></div><h1>RemoteStubRunner.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier.stubrunner;
    +
    +import java.lang.invoke.MethodHandles;
    +import javax.inject.Inject;
    +import javax.inject.Named;
    +
    +import org.eclipse.aether.RepositorySystemSession;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +import org.springframework.cloud.contract.stubrunner.AetherStubDownloader;
    +import org.springframework.cloud.contract.stubrunner.BatchStubRunner;
    +import org.springframework.cloud.contract.stubrunner.BatchStubRunnerFactory;
    +import org.springframework.cloud.contract.stubrunner.RunningStubs;
    +import org.springframework.cloud.contract.stubrunner.StubRunnerOptions;
    +
    +@Named
    +public class RemoteStubRunner {
    +<span class="nc" id="L33">	private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());</span>
    +	private final AetherStubDownloaderFactory aetherStubDownloaderFactory;
    +
    +	@Inject
    +<span class="nc" id="L37">	public RemoteStubRunner(AetherStubDownloaderFactory aetherStubDownloaderFactory) {</span>
    +<span class="nc" id="L38">		this.aetherStubDownloaderFactory = aetherStubDownloaderFactory;</span>
    +<span class="nc" id="L39">	}</span>
    +
    +	public BatchStubRunner run(StubRunnerOptions options, RepositorySystemSession repositorySystemSession) {
    +<span class="nc" id="L42">		AetherStubDownloader stubDownloader = aetherStubDownloaderFactory.build(repositorySystemSession);</span>
    +		try {
    +<span class="nc" id="L44">			log.debug(&quot;Launching StubRunner with args: &quot; + String.valueOf(options));</span>
    +<span class="nc" id="L45">			BatchStubRunner stubRunner = new BatchStubRunnerFactory(options,</span>
    +<span class="nc" id="L46">					stubDownloader).buildBatchStubRunner();</span>
    +<span class="nc" id="L47">			RunningStubs runningCollaborators = stubRunner.runStubs();</span>
    +<span class="nc" id="L48">			log.info(runningCollaborators.toString());</span>
    +<span class="nc" id="L49">			return stubRunner;</span>
    +		}
    +<span class="nc" id="L51">		catch (Exception e) {</span>
    +<span class="nc" id="L52">			log.error(&quot;An exception occurred while trying to execute the stubs: &quot; + e.getMessage());</span>
    +<span class="nc" id="L53">			throw e;</span>
    +		}
    +
    +	}
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.html
    new file mode 100644
    index 0000000000..b7b0e775b8
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.springframework.cloud.contract.maven.verifier.stubrunner</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <span class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</span></div><h1>org.springframework.cloud.contract.maven.verifier.stubrunner</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">109 of 109</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="RemoteStubRunner.html" class="el_class">RemoteStubRunner</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="57" alt="57"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">14</td><td class="ctr2" id="i0">14</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="LocalStubRunner.html" class="el_class">LocalStubRunner</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="69" height="10" title="33" alt="33"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">6</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="AetherStubDownloaderFactory.html" class="el_class">AetherStubDownloaderFactory</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="40" height="10" title="19" alt="19"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.source.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.source.html
    new file mode 100644
    index 0000000000..3120da1fcf
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier.stubrunner/index.source.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.springframework.cloud.contract.maven.verifier.stubrunner</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <span class="el_package">org.springframework.cloud.contract.maven.verifier.stubrunner</span></div><h1>org.springframework.cloud.contract.maven.verifier.stubrunner</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">109 of 109</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="RemoteStubRunner.java.html" class="el_source">RemoteStubRunner.java</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="57" alt="57"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">14</td><td class="ctr2" id="i0">14</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="LocalStubRunner.java.html" class="el_source">LocalStubRunner.java</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="69" height="10" title="33" alt="33"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">6</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="AetherStubDownloaderFactory.java.html" class="el_source">AetherStubDownloaderFactory.java</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="40" height="10" title="19" alt="19"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.html
    new file mode 100644
    index 0000000000..8cee7ad0d5
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>ConvertMojo</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">ConvertMojo</span></div><h1>ConvertMojo</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 106</td><td class="ctr2">83%</td><td class="bar">3 of 6</td><td class="ctr2">50%</td><td class="ctr1">3</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">20</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="ConvertMojo.java.html#L80" class="el_method">execute()</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="22" height="10" title="18" alt="18"/><img src="../.resources/greenbar.gif" width="97" height="10" title="80" alt="80"/></td><td class="ctr2" id="c2">82%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="60" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">50%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="ConvertMojo.java.html#L109" class="el_method">isInsideProject()</a></td><td class="bar" id="b1"><img src="../.resources/greenbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ConvertMojo.java.html#L41" class="el_method">ConvertMojo()</a></td><td class="bar" id="b2"><img src="../.resources/greenbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.java.html
    new file mode 100644
    index 0000000000..49ec08446b
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ConvertMojo.java.html
    @@ -0,0 +1,113 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>ConvertMojo.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">ConvertMojo.java</span></div><h1>ConvertMojo.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.io.File;
    +
    +import org.apache.maven.execution.MavenSession;
    +import org.apache.maven.plugin.AbstractMojo;
    +import org.apache.maven.plugin.MojoExecutionException;
    +import org.apache.maven.plugin.MojoFailureException;
    +import org.apache.maven.plugins.annotations.Component;
    +import org.apache.maven.plugins.annotations.LifecyclePhase;
    +import org.apache.maven.plugins.annotations.Mojo;
    +import org.apache.maven.plugins.annotations.Parameter;
    +import org.apache.maven.project.MavenProject;
    +import org.apache.maven.shared.filtering.MavenResourcesFiltering;
    +import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties;
    +import org.springframework.cloud.contract.verifier.wiremock.DslToWireMockClientConverter;
    +import org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConverter;
    +
    +/**
    + * Convert Spring Cloud Contract Verifier contracts into WireMock stubs mappings.
    + * &lt;p&gt;
    + * This goal allows you to generate `stubs-jar` or execute `spring-cloud-contract:run` with generated WireMock mappings.
    + */
    +@Mojo(name = &quot;convert&quot;, requiresProject = false,
    +		defaultPhase = LifecyclePhase.PROCESS_TEST_RESOURCES)
    +<span class="fc" id="L41">public class ConvertMojo extends AbstractMojo {</span>
    +
    +	/**
    +	 * Directory containing Spring Cloud Contract Verifier contracts written using the GroovyDSL
    +	 */
    +	@Parameter(defaultValue = &quot;${basedir}/src/test/resources/contracts&quot;)
    +	private File contractsDirectory;
    +
    +	/**
    +	 * Directory where the generated WireMock stubs from Groovy DSL should be placed.
    +	 * You can then mention them in your packaging task to create jar with stubs
    +	 */
    +	@Parameter(defaultValue = &quot;${project.build.directory}/stubs&quot;)
    +	private File outputDirectory;
    +
    +	/**
    +	 * Directory containing contracts written using the GroovyDSL
    +	 * &lt;p&gt;
    +	 * This parameter is only used when goal is executed outside of maven project.
    +	 */
    +	@Parameter(property = &quot;contractsDirectory&quot;, defaultValue = &quot;${basedir}&quot;)
    +	private File source;
    +
    +	@Parameter(property = &quot;stubsDirectory&quot;, defaultValue = &quot;${basedir}&quot;)
    +	private File destination;
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.skip&quot;, defaultValue = &quot;false&quot;)
    +	private boolean skip;
    +
    +	@Parameter(defaultValue = &quot;${session}&quot;, readonly = true)
    +	private MavenSession mavenSession;
    +
    +	@Parameter(defaultValue = &quot;${project}&quot;, readonly = true) private MavenProject project;
    +
    +	@Component(role = MavenResourcesFiltering.class, hint = &quot;default&quot;)
    +	private MavenResourcesFiltering mavenResourcesFiltering;
    +
    +	public void execute() throws MojoExecutionException, MojoFailureException {
    +
    +<span class="pc bpc" id="L80" title="1 of 2 branches missed.">		if (skip) {</span>
    +<span class="nc" id="L81">			getLog().info(String.format(</span>
    +					&quot;Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=%s&quot;,
    +<span class="nc" id="L83">					skip));</span>
    +<span class="nc" id="L84">			return;</span>
    +		}
    +
    +<span class="fc" id="L87">		new CopyContracts(project, mavenSession, mavenResourcesFiltering)</span>
    +<span class="fc" id="L88">				.copy(contractsDirectory, outputDirectory);</span>
    +
    +<span class="fc" id="L90">		final ContractVerifierConfigProperties config = new ContractVerifierConfigProperties();</span>
    +<span class="pc bpc" id="L91" title="1 of 2 branches missed.">		config.setContractsDslDir(isInsideProject() ? contractsDirectory : source);</span>
    +<span class="fc" id="L92">		config.setStubsOutputDir(</span>
    +<span class="pc bpc" id="L93" title="1 of 2 branches missed.">				isInsideProject() ? new File(outputDirectory, &quot;mappings&quot;) : destination);</span>
    +
    +<span class="fc" id="L95">		getLog().info(</span>
    +				&quot;Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings&quot;);
    +<span class="fc" id="L97">		getLog().info(String.format(</span>
    +				&quot;     Spring Cloud Contract Verifier contracts directory: %s&quot;,
    +<span class="fc" id="L99">				config.getContractsDslDir()));</span>
    +<span class="fc" id="L100">		getLog().info(String.format(&quot;WireMock stubs mappings directory: %s&quot;,</span>
    +<span class="fc" id="L101">				config.getStubsOutputDir()));</span>
    +
    +<span class="fc" id="L103">		RecursiveFilesConverter converter = new RecursiveFilesConverter(</span>
    +				new DslToWireMockClientConverter(), config);
    +<span class="fc" id="L105">		converter.processFiles();</span>
    +<span class="fc" id="L106">	}</span>
    +
    +	private boolean isInsideProject() {
    +<span class="fc" id="L109">		return mavenSession.getRequest().isProjectPresent();</span>
    +	}
    +
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.html
    new file mode 100644
    index 0000000000..167206dc9c
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>CopyContracts</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">CopyContracts</span></div><h1>CopyContracts</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 80</td><td class="ctr2">90%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">25</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="CopyContracts.java.html#L48" class="el_method">copy(File, File)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="15" height="10" title="8" alt="8"/><img src="../.resources/greenbar.gif" width="104" height="10" title="55" alt="55"/></td><td class="ctr2" id="c2">87%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="CopyContracts.java.html#L40" class="el_method">CopyContracts(MavenProject, MavenSession, MavenResourcesFiltering)</a></td><td class="bar" id="b1"><img src="../.resources/greenbar.gif" width="22" height="10" title="12" alt="12"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="CopyContracts.java.html#L33" class="el_method">static {...}</a></td><td class="bar" id="b2"><img src="../.resources/greenbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.java.html
    new file mode 100644
    index 0000000000..5c1489df1c
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/CopyContracts.java.html
    @@ -0,0 +1,70 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>CopyContracts.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">CopyContracts.java</span></div><h1>CopyContracts.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.io.File;
    +import java.lang.invoke.MethodHandles;
    +import java.util.Collections;
    +
    +import org.apache.maven.execution.MavenSession;
    +import org.apache.maven.model.Resource;
    +import org.apache.maven.plugin.MojoExecutionException;
    +import org.apache.maven.project.MavenProject;
    +import org.apache.maven.shared.filtering.MavenFilteringException;
    +import org.apache.maven.shared.filtering.MavenResourcesExecution;
    +import org.apache.maven.shared.filtering.MavenResourcesFiltering;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
    +class CopyContracts {
    +<span class="fc" id="L33">	private static final Logger log = LoggerFactory</span>
    +<span class="fc" id="L34">			.getLogger(MethodHandles.lookup().lookupClass());</span>
    +	private final MavenProject project;
    +	private final MavenSession mavenSession;
    +	private final MavenResourcesFiltering mavenResourcesFiltering;
    +
    +	public CopyContracts(MavenProject project, MavenSession mavenSession,
    +<span class="fc" id="L40">			MavenResourcesFiltering mavenResourcesFiltering) {</span>
    +<span class="fc" id="L41">		this.project = project;</span>
    +<span class="fc" id="L42">		this.mavenSession = mavenSession;</span>
    +<span class="fc" id="L43">		this.mavenResourcesFiltering = mavenResourcesFiltering;</span>
    +<span class="fc" id="L44">	}</span>
    +
    +	public void copy(File contractsDirectory, File outputDirectory)
    +			throws MojoExecutionException {
    +<span class="fc" id="L48">		log.info(&quot;Copying Spring Cloud Contract Verifier contracts&quot;);</span>
    +<span class="fc" id="L49">		Resource resource = new Resource();</span>
    +<span class="fc" id="L50">		resource.setDirectory(contractsDirectory.getAbsolutePath());</span>
    +<span class="fc" id="L51">		MavenResourcesExecution execution = new MavenResourcesExecution();</span>
    +<span class="fc" id="L52">		execution.setResources(Collections.singletonList(resource));</span>
    +<span class="fc" id="L53">		execution.setOutputDirectory(new File(outputDirectory, &quot;contracts&quot;));</span>
    +<span class="fc" id="L54">		execution.setMavenProject(project);</span>
    +<span class="fc" id="L55">		execution.setEncoding(&quot;UTF-8&quot;);</span>
    +<span class="fc" id="L56">		execution.setMavenSession(mavenSession);</span>
    +<span class="fc" id="L57">		execution.setInjectProjectBuildFilters(false);</span>
    +<span class="fc" id="L58">		execution.setOverwrite(true);</span>
    +<span class="fc" id="L59">		execution.setIncludeEmptyDirs(false);</span>
    +<span class="fc" id="L60">		execution.setFilterFilenames(false);</span>
    +		try {
    +<span class="fc" id="L62">			mavenResourcesFiltering.filterResources(execution);</span>
    +		}
    +<span class="nc" id="L64">		catch (MavenFilteringException e) {</span>
    +<span class="nc" id="L65">			throw new MojoExecutionException(e.getMessage(), e);</span>
    +<span class="fc" id="L66">		}</span>
    +
    +<span class="fc" id="L68">	}</span>
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.html
    new file mode 100644
    index 0000000000..86e5bfc2c8
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>GenerateStubsMojo</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">GenerateStubsMojo</span></div><h1>GenerateStubsMojo</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">45 of 153</td><td class="ctr2">71%</td><td class="bar">2 of 6</td><td class="ctr2">67%</td><td class="ctr1">2</td><td class="ctr2">6</td><td class="ctr1">6</td><td class="ctr2">25</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="GenerateStubsMojo.java.html#L81" class="el_method">createStubJar(File)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="32" height="10" title="32" alt="32"/><img src="../.resources/greenbar.gif" width="87" height="10" title="87" alt="87"/></td><td class="ctr2" id="c1">73%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="30" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">75%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="GenerateStubsMojo.java.html#L69" class="el_method">execute()</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="13" height="10" title="13" alt="13"/><img src="../.resources/greenbar.gif" width="18" height="10" title="18" alt="18"/></td><td class="ctr2" id="c2">58%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="30" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="30" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="GenerateStubsMojo.java.html#L34" class="el_method">GenerateStubsMojo()</a></td><td class="bar" id="b2"><img src="../.resources/greenbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.java.html
    new file mode 100644
    index 0000000000..7920c158f2
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateStubsMojo.java.html
    @@ -0,0 +1,115 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>GenerateStubsMojo.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">GenerateStubsMojo.java</span></div><h1>GenerateStubsMojo.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.io.File;
    +
    +import org.apache.maven.plugin.AbstractMojo;
    +import org.apache.maven.plugin.MojoExecutionException;
    +import org.apache.maven.plugin.MojoFailureException;
    +import org.apache.maven.plugins.annotations.Component;
    +import org.apache.maven.plugins.annotations.LifecyclePhase;
    +import org.apache.maven.plugins.annotations.Mojo;
    +import org.apache.maven.plugins.annotations.Parameter;
    +import org.apache.maven.project.MavenProject;
    +import org.apache.maven.project.MavenProjectHelper;
    +import org.codehaus.plexus.archiver.Archiver;
    +import org.codehaus.plexus.archiver.jar.JarArchiver;
    +
    +@Mojo(name = &quot;generateStubs&quot;, defaultPhase = LifecyclePhase.PACKAGE,
    +		requiresProject = true)
    +<span class="fc" id="L34">public class GenerateStubsMojo extends AbstractMojo {</span>
    +
    +	private static final String STUB_MAPPING_FILE_PATTERN = &quot;**/*.json&quot;;
    +	private static final String CONTRACT_FILE_PATTERN = &quot;**/*.groovy&quot;;
    +
    +	@Parameter(defaultValue = &quot;${project.build.directory}&quot;, readonly = true,
    +			required = true)
    +	private File projectBuildDirectory;
    +
    +	@Parameter(property = &quot;stubsDirectory&quot;,
    +			defaultValue = &quot;${project.build.directory}/stubs&quot;)
    +	private File outputDirectory;
    +
    +	/**
    +	 * Set this to &quot;true&quot; to bypass Verifier execution..
    +	 */
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.skip&quot;, defaultValue = &quot;false&quot;)
    +	private boolean skip;
    +
    +	@Component
    +	private MavenProjectHelper projectHelper;
    +
    +	@Parameter(defaultValue = &quot;${project}&quot;, readonly = true)
    +	private MavenProject project;
    +
    +	@Component(role = Archiver.class, hint = &quot;jar&quot;)
    +	private JarArchiver archiver;
    +
    +	@Parameter(defaultValue = &quot;true&quot;)
    +	private boolean attachContracts;
    +
    +	@Parameter(defaultValue = &quot;stubs&quot;)
    +	private String classifier;
    +
    +	public void execute() throws MojoExecutionException, MojoFailureException {
    +<span class="pc bpc" id="L69" title="1 of 2 branches missed.">		if (skip) {</span>
    +<span class="nc" id="L70">			getLog().info(</span>
    +					&quot;Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=&quot;
    +							+ skip);
    +<span class="nc" id="L73">			return;</span>
    +		}
    +<span class="fc" id="L75">		File stubsJarFile = createStubJar(outputDirectory);</span>
    +<span class="fc" id="L76">		projectHelper.attachArtifact(project, &quot;jar&quot;, classifier, stubsJarFile);</span>
    +<span class="fc" id="L77">	}</span>
    +
    +	private File createStubJar(File stubsOutputDir)
    +			throws MojoFailureException, MojoExecutionException {
    +<span class="pc bpc" id="L81" title="1 of 2 branches missed.">		if (!stubsOutputDir.exists()) {</span>
    +<span class="nc" id="L82">			throw new MojoExecutionException(</span>
    +<span class="nc" id="L83">					&quot;Stubs could not be found: [&quot; + stubsOutputDir.getAbsolutePath()</span>
    +							+ &quot;] .\nPlease make sure that spring-cloud-contract:convert was invoked&quot;);
    +		}
    +<span class="fc" id="L86">		String stubArchiveName =</span>
    +<span class="fc" id="L87">				project.getBuild().getFinalName() + &quot;-&quot; + classifier + &quot;.jar&quot;;</span>
    +<span class="fc" id="L88">		File stubsJarFile = new File(projectBuildDirectory, stubArchiveName);</span>
    +		try {
    +<span class="fc bfc" id="L90" title="All 2 branches covered.">			if (attachContracts) {</span>
    +<span class="fc" id="L91">				archiver.addDirectory(stubsOutputDir,</span>
    +						new String[] { STUB_MAPPING_FILE_PATTERN, CONTRACT_FILE_PATTERN },
    +						new String[0]);
    +			}
    +			else {
    +<span class="fc" id="L96">				getLog().info(</span>
    +						&quot;Skipping attaching Spring Cloud Contract Verifier contracts&quot;);
    +<span class="fc" id="L98">				archiver.addDirectory(stubsOutputDir,</span>
    +						new String[] { STUB_MAPPING_FILE_PATTERN },
    +						new String[] { CONTRACT_FILE_PATTERN });
    +			}
    +<span class="fc" id="L102">			archiver.setCompress(true);</span>
    +<span class="fc" id="L103">			archiver.setDestFile(stubsJarFile);</span>
    +<span class="fc" id="L104">			archiver.addConfiguredManifest(ManifestCreator.createManifest(project));</span>
    +<span class="fc" id="L105">			archiver.createArchive();</span>
    +		}
    +<span class="nc" id="L107">		catch (Exception e) {</span>
    +<span class="nc" id="L108">			throw new MojoFailureException(</span>
    +					&quot;Exception while packaging &quot; + classifier + &quot; jar.&quot;, e);
    +<span class="fc" id="L110">		}</span>
    +<span class="fc" id="L111">		return stubsJarFile;</span>
    +	}
    +
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.html
    new file mode 100644
    index 0000000000..7c0bd547cc
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>GenerateTestsMojo</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">GenerateTestsMojo</span></div><h1>GenerateTestsMojo</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">75 of 205</td><td class="ctr2">63%</td><td class="bar">10 of 14</td><td class="ctr2">29%</td><td class="ctr1">11</td><td class="ctr2">13</td><td class="ctr1">14</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a href="GenerateTestsMojo.java.html#L101" class="el_method">execute()</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="38" height="10" title="61" alt="61"/><img src="../.resources/greenbar.gif" width="81" height="10" title="127" alt="127"/></td><td class="ctr2" id="c1">68%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="85" height="10" title="10" alt="10"/><img src="../.resources/greenbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">29%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">33</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="GenerateTestsMojo.java.html#L147" class="el_method">setExcludedFiles(List)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="GenerateTestsMojo.java.html#L155" class="el_method">setIgnoredFiles(List)</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="GenerateTestsMojo.java.html#L143" class="el_method">getExcludedFiles()</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a3"><a href="GenerateTestsMojo.java.html#L151" class="el_method">getIgnoredFiles()</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="GenerateTestsMojo.java.html#L37" class="el_method">GenerateTestsMojo()</a></td><td class="bar" id="b5"><img src="../.resources/greenbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.java.html
    new file mode 100644
    index 0000000000..a9b25fd93a
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/GenerateTestsMojo.java.html
    @@ -0,0 +1,159 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>GenerateTestsMojo.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">GenerateTestsMojo.java</span></div><h1>GenerateTestsMojo.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.io.File;
    +import java.util.List;
    +
    +import org.apache.maven.plugin.AbstractMojo;
    +import org.apache.maven.plugin.MojoExecutionException;
    +import org.apache.maven.plugin.MojoFailureException;
    +import org.apache.maven.plugins.annotations.LifecyclePhase;
    +import org.apache.maven.plugins.annotations.Mojo;
    +import org.apache.maven.plugins.annotations.Parameter;
    +import org.apache.maven.plugins.annotations.ResolutionScope;
    +import org.apache.maven.project.MavenProject;
    +import org.springframework.cloud.contract.spec.ContractVerifierException;
    +import org.springframework.cloud.contract.verifier.TestGenerator;
    +import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties;
    +import org.springframework.cloud.contract.verifier.config.TestFramework;
    +import org.springframework.cloud.contract.verifier.config.TestMode;
    +
    +@Mojo(name = &quot;generateTests&quot;, defaultPhase = LifecyclePhase.GENERATE_TEST_SOURCES,
    +		requiresDependencyResolution = ResolutionScope.TEST)
    +<span class="fc" id="L37">public class GenerateTestsMojo extends AbstractMojo {</span>
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.contractsDirectory&quot;,
    +			defaultValue = &quot;${project.basedir}/src/test/resources/contracts&quot;)
    +	private File contractsDirectory;
    +
    +	@Parameter(
    +			defaultValue = &quot;${project.build.directory}/generated-test-sources/contracts&quot;)
    +	private File generatedTestSourcesDir;
    +
    +	@Parameter(defaultValue = &quot;org.springframework.cloud.contract.verifier.tests&quot;)
    +	private String basePackageForTests;
    +
    +	@Parameter
    +	private String baseClassForTests;
    +
    +	@Parameter(defaultValue = &quot;MOCKMVC&quot;)
    +	private TestMode testMode;
    +
    +	@Parameter(defaultValue = &quot;JUNIT&quot;)
    +	private TestFramework testFramework;
    +
    +	@Parameter
    +	private String ruleClassForTests;
    +
    +	@Parameter
    +	private String nameSuffixForTests;
    +
    +	/**
    +	 * Imports that should be added to generated tests
    +	 */
    +	@Parameter
    +	private String[] imports;
    +
    +	/**
    +	 * Static imports that should be added to generated tests
    +	 */
    +	@Parameter
    +	private String[] staticImports;
    +
    +	/**
    +	 * Patterns that should not be taken into account for processing
    +	 */
    +	@Parameter
    +	private List&lt;String&gt; excludedFiles;
    +
    +	/**
    +	 * Patterns for which Spring Cloud Contract Verifier should generate @Ignored tests
    +	 */
    +	@Parameter
    +	private List&lt;String&gt; ignoredFiles;
    +
    +	@Parameter(defaultValue = &quot;${project}&quot;, readonly = true)
    +	private MavenProject project;
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.skip&quot;, defaultValue = &quot;false&quot;)
    +	private boolean skip;
    +
    +	@Parameter(property = &quot;maven.test.skip&quot;, defaultValue = &quot;false&quot;)
    +	private boolean mavenTestSkip;
    +
    +	@Parameter(property = &quot;skipTests&quot;, defaultValue = &quot;false&quot;) private boolean skipTests;
    +
    +	public void execute() throws MojoExecutionException, MojoFailureException {
    +<span class="pc bpc" id="L101" title="3 of 6 branches missed.">		if (skip || mavenTestSkip || skipTests) {</span>
    +<span class="nc bnc" id="L102" title="All 2 branches missed.">			if (skip) getLog().info(&quot;Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=&quot; + skip);</span>
    +<span class="nc bnc" id="L103" title="All 2 branches missed.">			if (mavenTestSkip) getLog().info(&quot;Skipping Spring Cloud Contract Verifier execution: maven.test.skip=&quot; + mavenTestSkip);</span>
    +<span class="nc bnc" id="L104" title="All 2 branches missed.">			if (skipTests) getLog().info(&quot;Skipping Spring Cloud Contract Verifier execution: skipTests&quot; + skipTests);</span>
    +<span class="nc" id="L105">			return;</span>
    +		}
    +<span class="fc" id="L107">		getLog().info(</span>
    +				&quot;Generating server tests source code for Spring Cloud Contract Verifier contract verification&quot;);
    +<span class="fc" id="L109">		final ContractVerifierConfigProperties config = new ContractVerifierConfigProperties();</span>
    +<span class="fc" id="L110">		config.setContractsDslDir(contractsDirectory);</span>
    +<span class="fc" id="L111">		config.setGeneratedTestSourcesDir(generatedTestSourcesDir);</span>
    +<span class="fc" id="L112">		config.setTargetFramework(testFramework);</span>
    +<span class="fc" id="L113">		config.setTestMode(testMode);</span>
    +<span class="fc" id="L114">		config.setBasePackageForTests(basePackageForTests);</span>
    +<span class="fc" id="L115">		config.setBaseClassForTests(baseClassForTests);</span>
    +<span class="fc" id="L116">		config.setRuleClassForTests(ruleClassForTests);</span>
    +<span class="fc" id="L117">		config.setNameSuffixForTests(nameSuffixForTests);</span>
    +<span class="fc" id="L118">		config.setImports(imports);</span>
    +<span class="fc" id="L119">		config.setStaticImports(staticImports);</span>
    +<span class="fc" id="L120">		config.setIgnoredFiles(ignoredFiles);</span>
    +<span class="fc" id="L121">		config.setExcludedFiles(excludedFiles);</span>
    +<span class="fc" id="L122">		project.addTestCompileSourceRoot(generatedTestSourcesDir.getAbsolutePath());</span>
    +<span class="pc bpc" id="L123" title="1 of 2 branches missed.">		if (getLog().isInfoEnabled()) {</span>
    +<span class="fc" id="L124">			getLog().info(</span>
    +<span class="fc" id="L125">					&quot;Test Source directory: &quot; + generatedTestSourcesDir.getAbsolutePath()</span>
    +							+ &quot; added.&quot;);
    +<span class="fc" id="L127">			getLog().info(&quot;Using &quot; + config.getBaseClassForTests()</span>
    +					+ &quot; as base class for test classes&quot;);
    +		}
    +		try {
    +<span class="fc" id="L131">			TestGenerator generator = new TestGenerator(config);</span>
    +<span class="fc" id="L132">			int generatedClasses = generator.generate();</span>
    +<span class="fc" id="L133">			getLog().info(&quot;Generated &quot; + generatedClasses + &quot; test classes.&quot;);</span>
    +		}
    +<span class="nc" id="L135">		catch (ContractVerifierException e) {</span>
    +<span class="nc" id="L136">			throw new MojoExecutionException(</span>
    +<span class="nc" id="L137">					String.format(&quot;Spring Cloud Contract Verifier Plugin exception: %s&quot;,</span>
    +<span class="nc" id="L138">							e.getMessage()), e);</span>
    +<span class="fc" id="L139">		}</span>
    +<span class="fc" id="L140">	}</span>
    +
    +	public List&lt;String&gt; getExcludedFiles() {
    +<span class="nc" id="L143">		return excludedFiles;</span>
    +	}
    +
    +	public void setExcludedFiles(List&lt;String&gt; excludedFiles) {
    +<span class="nc" id="L147">		this.excludedFiles = excludedFiles;</span>
    +<span class="nc" id="L148">	}</span>
    +
    +	public List&lt;String&gt; getIgnoredFiles() {
    +<span class="nc" id="L151">		return ignoredFiles;</span>
    +	}
    +
    +	public void setIgnoredFiles(List&lt;String&gt; ignoredFiles) {
    +<span class="nc" id="L155">		this.ignoredFiles = ignoredFiles;</span>
    +<span class="nc" id="L156">	}</span>
    +
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.html
    new file mode 100644
    index 0000000000..67ed6438e9
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>ManifestCreator</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">ManifestCreator</span></div><h1>ManifestCreator</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">42 of 85</td><td class="ctr2">51%</td><td class="bar">11 of 16</td><td class="ctr2">31%</td><td class="ctr1">10</td><td class="ctr2">12</td><td class="ctr1">12</td><td class="ctr2">22</td><td class="ctr1">2</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="ManifestCreator.java.html#L55" class="el_method">findVerifierDependency(List)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="57" height="10" title="20" alt="20"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ManifestCreator.java.html#L28" class="el_method">createManifest(MavenProject)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="45" height="10" title="16" alt="16"/><img src="../.resources/greenbar.gif" width="74" height="10" title="26" alt="26"/></td><td class="ctr2" id="c1">62%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="75" height="10" title="5" alt="5"/><img src="../.resources/greenbar.gif" width="45" height="10" title="3" alt="3"/></td><td class="ctr2" id="e1">38%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="ManifestCreator.java.html#L46" class="el_method">findMavenPlugin(List)</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="8" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="48" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">85%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="30" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="ManifestCreator.java.html#L26" class="el_method">ManifestCreator()</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.java.html
    new file mode 100644
    index 0000000000..c03bedfee8
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/ManifestCreator.java.html
    @@ -0,0 +1,64 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>ManifestCreator.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">ManifestCreator.java</span></div><h1>ManifestCreator.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.util.List;
    +
    +import org.apache.maven.model.Dependency;
    +import org.apache.maven.model.Plugin;
    +import org.apache.maven.project.MavenProject;
    +import org.codehaus.plexus.archiver.jar.Manifest;
    +import org.codehaus.plexus.archiver.jar.ManifestException;
    +
    +<span class="nc" id="L26">class ManifestCreator {</span>
    +	public static Manifest createManifest(MavenProject project) throws ManifestException {
    +<span class="fc" id="L28">		Manifest manifest = new Manifest();</span>
    +<span class="fc" id="L29">		Plugin verifierMavenPlugin = findMavenPlugin(project.getBuildPlugins());</span>
    +<span class="pc bpc" id="L30" title="1 of 2 branches missed.">		if (verifierMavenPlugin != null) {</span>
    +<span class="fc" id="L31">			manifest.addConfiguredAttribute(new Manifest.Attribute(</span>
    +<span class="fc" id="L32">					&quot;Spring-Cloud-Contract-Verifier-Maven-Plugin-Version&quot;, verifierMavenPlugin.getVersion()));</span>
    +		}
    +<span class="pc bpc" id="L34" title="2 of 4 branches missed.">		if (verifierMavenPlugin != null &amp;&amp; !verifierMavenPlugin.getDependencies().isEmpty()) {</span>
    +<span class="nc" id="L35">			Dependency verifierDependency = findVerifierDependency(verifierMavenPlugin.getDependencies());</span>
    +<span class="nc bnc" id="L36" title="All 2 branches missed.">			if (verifierDependency != null) {</span>
    +<span class="nc" id="L37">				String verifierVersion = verifierDependency.getVersion();</span>
    +<span class="nc" id="L38">				manifest.addConfiguredAttribute(new Manifest.Attribute(&quot;Spring-Cloud-Contract-Verifier-Version&quot;,</span>
    +						verifierVersion));
    +			}
    +		}
    +<span class="fc" id="L42">		return manifest;</span>
    +	}
    +
    +	private static Plugin findMavenPlugin(List&lt;Plugin&gt; plugins) {
    +<span class="pc bpc" id="L46" title="1 of 2 branches missed.">		for (Plugin plugin : plugins) {</span>
    +<span class="pc bpc" id="L47" title="1 of 2 branches missed.">			if (&quot;spring-cloud-contract-maven-plugin&quot;.equals(plugin.getArtifactId())) {</span>
    +<span class="fc" id="L48">				return plugin;</span>
    +			}
    +<span class="nc" id="L50">		}</span>
    +<span class="nc" id="L51">		return null;</span>
    +	}
    +
    +	private static Dependency findVerifierDependency(List&lt;Dependency&gt; deps) {
    +<span class="nc bnc" id="L55" title="All 2 branches missed.">		for (Dependency dep : deps) {</span>
    +<span class="nc bnc" id="L56" title="All 2 branches missed.">			if (&quot;spring-cloud-contract-verifier&quot;.equals(dep.getArtifactId())) {</span>
    +<span class="nc" id="L57">				return dep;</span>
    +			}
    +<span class="nc" id="L59">		}</span>
    +<span class="nc" id="L60">		return null;</span>
    +	}
    +
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.html
    new file mode 100644
    index 0000000000..f8cddb2945
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RunMojo</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_class">RunMojo</span></div><h1>RunMojo</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">131 of 131</td><td class="ctr2">0%</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">39</td><td class="ctr2">39</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a0"><a href="RunMojo.java.html#L100" class="el_method">execute()</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="95" alt="95"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="RunMojo.java.html#L83" class="el_method">RunMojo(LocalStubRunner, RemoteStubRunner)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="15" height="10" title="12" alt="12"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="RunMojo.java.html#L139" class="el_method">pressAnyKeyToContinue()</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="12" height="10" title="10" alt="10"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="RunMojo.java.html#L131" class="el_method">resolveStubsDirectory()</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="RunMojo.java.html#L147" class="el_method">isInsideProject()</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.java.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.java.html
    new file mode 100644
    index 0000000000..f39faec591
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/RunMojo.java.html
    @@ -0,0 +1,151 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RunMojo.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <a href="index.source.html" class="el_package">org.springframework.cloud.contract.maven.verifier</a> &gt; <span class="el_source">RunMojo.java</span></div><h1>RunMojo.java</h1><pre class="source lang-java linenums">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +package org.springframework.cloud.contract.maven.verifier;
    +
    +import java.io.File;
    +import java.io.IOException;
    +import java.util.Collections;
    +import javax.inject.Inject;
    +
    +import org.apache.maven.execution.MavenSession;
    +import org.apache.maven.plugin.AbstractMojo;
    +import org.apache.maven.plugin.MojoExecutionException;
    +import org.apache.maven.plugin.MojoFailureException;
    +import org.apache.maven.plugins.annotations.Mojo;
    +import org.apache.maven.plugins.annotations.Parameter;
    +import org.apache.maven.plugins.annotations.ResolutionScope;
    +import org.eclipse.aether.RepositorySystemSession;
    +import org.springframework.cloud.contract.maven.verifier.stubrunner.LocalStubRunner;
    +import org.springframework.cloud.contract.maven.verifier.stubrunner.RemoteStubRunner;
    +import org.springframework.cloud.contract.stubrunner.BatchStubRunner;
    +import org.springframework.cloud.contract.stubrunner.StubRunner;
    +import org.springframework.cloud.contract.stubrunner.StubRunnerOptions;
    +import org.springframework.cloud.contract.stubrunner.StubRunnerOptionsBuilder;
    +
    +import static com.google.common.base.Strings.isNullOrEmpty;
    +
    +@SuppressWarnings(&quot;FieldCanBeLocal&quot;)
    +@Mojo(name = &quot;run&quot;, requiresProject = false, requiresDependencyResolution = ResolutionScope.RUNTIME)
    +public class RunMojo extends AbstractMojo {
    +
    +	@Parameter(defaultValue = &quot;${repositorySystemSession}&quot;, readonly = true)
    +	private RepositorySystemSession repoSession;
    +
    +	@Parameter(defaultValue = &quot;${project.build.directory}/contracts/mappings&quot;)
    +	private File stubsDirectory;
    +
    +	@Parameter(property = &quot;stubsDirectory&quot;, defaultValue = &quot;${basedir}&quot;)
    +	private File destination;
    +
    +	/**
    +	 * HTTP port for WireMock server
    +	 */
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.http.port&quot;, defaultValue = &quot;8080&quot;)
    +	private int httpPort;
    +
    +	/**
    +	 * Set this to &quot;true&quot; to bypass verifier execution.
    +	 */
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.skip&quot;, defaultValue = &quot;false&quot;)
    +	private boolean skip;
    +
    +	/**
    +	 * Set this to &quot;true&quot; to bypass verifier test generation.
    +	 */
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.skipTestOnly&quot;, defaultValue = &quot;false&quot;)
    +	private boolean skipTestOnly;
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.stubs&quot;)
    +	private String stubs;
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.http.minPort&quot;, defaultValue = &quot;10000&quot;)
    +	private int minPort;
    +
    +	@Parameter(property = &quot;spring.cloud.contract.verifier.http.maxPort&quot;, defaultValue = &quot;15000&quot;)
    +	private int maxPort;
    +
    +	/**
    +	 * Classifier used by stubs artifacts.
    +	 */
    +<span class="nc" id="L83">	@Parameter(defaultValue = &quot;stubs&quot;)</span>
    +	private String stubsClassifier = &quot;stubs&quot;;
    +
    +	@Parameter(defaultValue = &quot;${session}&quot;, readonly = true)
    +	private MavenSession mavenSession;
    +
    +	private final LocalStubRunner localStubRunner;
    +
    +	private final RemoteStubRunner remoteStubRunner;
    +
    +	@Inject
    +<span class="nc" id="L94">	public RunMojo(LocalStubRunner localStubRunner, RemoteStubRunner remoteStubRunner) {</span>
    +<span class="nc" id="L95">		this.localStubRunner = localStubRunner;</span>
    +<span class="nc" id="L96">		this.remoteStubRunner = remoteStubRunner;</span>
    +<span class="nc" id="L97">	}</span>
    +
    +	public void execute() throws MojoExecutionException, MojoFailureException {
    +<span class="nc bnc" id="L100" title="All 4 branches missed.">		if (skip || skipTestOnly) {</span>
    +<span class="nc" id="L101">			getLog().info(&quot;Skipping verifier execution: spring.cloud.contract.verifier.skip=&quot; + String.valueOf(skip));</span>
    +<span class="nc" id="L102">			return;</span>
    +		}
    +<span class="nc" id="L104">		BatchStubRunner batchStubRunner = null;</span>
    +<span class="nc" id="L105">		StubRunnerOptionsBuilder optionsBuilder = new StubRunnerOptionsBuilder()</span>
    +<span class="nc" id="L106">				.withStubsClassifier(stubsClassifier);</span>
    +<span class="nc bnc" id="L107" title="All 2 branches missed.">		if (isNullOrEmpty(stubs)) {</span>
    +<span class="nc" id="L108">			StubRunnerOptions options = optionsBuilder</span>
    +<span class="nc" id="L109">					.withPort(httpPort)</span>
    +<span class="nc" id="L110">					.build();</span>
    +<span class="nc" id="L111">			StubRunner stubRunner = localStubRunner.run(resolveStubsDirectory().getAbsolutePath(), options);</span>
    +<span class="nc" id="L112">			batchStubRunner = new BatchStubRunner(Collections.singleton(stubRunner));</span>
    +<span class="nc" id="L113">		} else {</span>
    +<span class="nc" id="L114">			StubRunnerOptions options = optionsBuilder</span>
    +<span class="nc" id="L115">					.withStubs(stubs)</span>
    +<span class="nc" id="L116">					.withMinMaxPort(minPort, maxPort)</span>
    +<span class="nc" id="L117">					.build();</span>
    +<span class="nc" id="L118">			batchStubRunner = remoteStubRunner.run(options, repoSession);</span>
    +		}
    +<span class="nc" id="L120">		pressAnyKeyToContinue();</span>
    +<span class="nc bnc" id="L121" title="All 2 branches missed.">		if (batchStubRunner != null) {</span>
    +			try {
    +<span class="nc" id="L123">				batchStubRunner.close();</span>
    +<span class="nc" id="L124">			} catch (IOException e) {</span>
    +<span class="nc" id="L125">				throw new MojoExecutionException(&quot;Fail to close batch stub runner&quot;, e);</span>
    +<span class="nc" id="L126">			}</span>
    +		}
    +<span class="nc" id="L128">	}</span>
    +
    +	private File resolveStubsDirectory() {
    +<span class="nc bnc" id="L131" title="All 2 branches missed.">		if (isInsideProject()) {</span>
    +<span class="nc" id="L132">			return stubsDirectory;</span>
    +		} else {
    +<span class="nc" id="L134">			return destination;</span>
    +		}
    +	}
    +
    +	private void pressAnyKeyToContinue() {
    +<span class="nc" id="L139">		getLog().info(&quot;Press ENTER to continue...&quot;);</span>
    +		try {
    +<span class="nc" id="L141">			System.in.read();</span>
    +<span class="nc" id="L142">		} catch (Exception ignored) {</span>
    +<span class="nc" id="L143">		}</span>
    +<span class="nc" id="L144">	}</span>
    +
    +	private boolean isInsideProject() {
    +<span class="nc" id="L147">		return mavenSession.getRequest().isProjectPresent();</span>
    +	}
    +
    +}
    +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.html
    new file mode 100644
    index 0000000000..6c7d157dae
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.springframework.cloud.contract.maven.verifier</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <span class="el_package">org.springframework.cloud.contract.maven.verifier</span></div><h1>org.springframework.cloud.contract.maven.verifier</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">319 of 760</td><td class="ctr2">58%</td><td class="bar">36 of 52</td><td class="ctr2">31%</td><td class="ctr1">36</td><td class="ctr2">50</td><td class="ctr1">76</td><td class="ctr2">171</td><td class="ctr1">11</td><td class="ctr2">24</td><td class="ctr1">1</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a5"><a href="RunMojo.html" class="el_class">RunMojo</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="76" height="10" title="131" alt="131"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="75" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f1">10</td><td class="ctr2" id="g2">10</td><td class="ctr1" id="h0">39</td><td class="ctr2" id="i1">39</td><td class="ctr1" id="j0">5</td><td class="ctr2" id="k1">5</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="GenerateTestsMojo.html" class="el_class">GenerateTestsMojo</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="43" height="10" title="75" alt="75"/><img src="../.resources/greenbar.gif" width="76" height="10" title="130" alt="130"/></td><td class="ctr2" id="c3">63%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="75" height="10" title="10" alt="10"/><img src="../.resources/greenbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="e3">29%</td><td class="ctr1" id="f0">11</td><td class="ctr2" id="g0">13</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i0">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k0">6</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="GenerateStubsMojo.html" class="el_class">GenerateStubsMojo</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="26" height="10" title="45" alt="45"/><img src="../.resources/greenbar.gif" width="63" height="10" title="108" alt="108"/></td><td class="ctr2" id="c2">71%</td><td class="bar" id="d4"><img src="../.resources/redbar.gif" width="15" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">67%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g3">6</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a4"><a href="ManifestCreator.html" class="el_class">ManifestCreator</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="24" height="10" title="42" alt="42"/><img src="../.resources/greenbar.gif" width="25" height="10" title="43" alt="43"/></td><td class="ctr2" id="c4">51%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="82" height="10" title="11" alt="11"/><img src="../.resources/greenbar.gif" width="37" height="10" title="5" alt="5"/></td><td class="ctr2" id="e2">31%</td><td class="ctr1" id="f2">10</td><td class="ctr2" id="g1">12</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i4">22</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k2">4</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a0"><a href="ConvertMojo.html" class="el_class">ConvertMojo</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="10" height="10" title="18" alt="18"/><img src="../.resources/greenbar.gif" width="51" height="10" title="88" alt="88"/></td><td class="ctr2" id="c1">83%</td><td class="bar" id="d3"><img src="../.resources/redbar.gif" width="22" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="22" height="10" title="3" alt="3"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f3">3</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i5">20</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">3</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a1"><a href="CopyContracts.html" class="el_class">CopyContracts</a></td><td class="bar" id="b5"><img src="../.resources/redbar.gif" width="4" height="10" title="8" alt="8"/><img src="../.resources/greenbar.gif" width="42" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">90%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i3">25</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">3</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.source.html b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.source.html
    new file mode 100644
    index 0000000000..7548dade6f
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/jacoco/org.springframework.cloud.contract.maven.verifier/index.source.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.springframework.cloud.contract.maven.verifier</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Spring Cloud Contract Maven Plugin</a> &gt; <span class="el_package">org.springframework.cloud.contract.maven.verifier</span></div><h1>org.springframework.cloud.contract.maven.verifier</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">319 of 760</td><td class="ctr2">58%</td><td class="bar">36 of 52</td><td class="ctr2">31%</td><td class="ctr1">36</td><td class="ctr2">50</td><td class="ctr1">76</td><td class="ctr2">171</td><td class="ctr1">11</td><td class="ctr2">24</td><td class="ctr1">1</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a5"><a href="RunMojo.java.html" class="el_source">RunMojo.java</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="76" height="10" title="131" alt="131"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="75" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f1">10</td><td class="ctr2" id="g2">10</td><td class="ctr1" id="h0">39</td><td class="ctr2" id="i1">39</td><td class="ctr1" id="j0">5</td><td class="ctr2" id="k1">5</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="GenerateTestsMojo.java.html" class="el_source">GenerateTestsMojo.java</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="43" height="10" title="75" alt="75"/><img src="../.resources/greenbar.gif" width="76" height="10" title="130" alt="130"/></td><td class="ctr2" id="c3">63%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="75" height="10" title="10" alt="10"/><img src="../.resources/greenbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="e3">29%</td><td class="ctr1" id="f0">11</td><td class="ctr2" id="g0">13</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i0">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k0">6</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="GenerateStubsMojo.java.html" class="el_source">GenerateStubsMojo.java</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="26" height="10" title="45" alt="45"/><img src="../.resources/greenbar.gif" width="63" height="10" title="108" alt="108"/></td><td class="ctr2" id="c2">71%</td><td class="bar" id="d4"><img src="../.resources/redbar.gif" width="15" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">67%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g3">6</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a4"><a href="ManifestCreator.java.html" class="el_source">ManifestCreator.java</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="24" height="10" title="42" alt="42"/><img src="../.resources/greenbar.gif" width="25" height="10" title="43" alt="43"/></td><td class="ctr2" id="c4">51%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="82" height="10" title="11" alt="11"/><img src="../.resources/greenbar.gif" width="37" height="10" title="5" alt="5"/></td><td class="ctr2" id="e2">31%</td><td class="ctr1" id="f2">10</td><td class="ctr2" id="g1">12</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i4">22</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k2">4</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a0"><a href="ConvertMojo.java.html" class="el_source">ConvertMojo.java</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="10" height="10" title="18" alt="18"/><img src="../.resources/greenbar.gif" width="51" height="10" title="88" alt="88"/></td><td class="ctr2" id="c1">83%</td><td class="bar" id="d3"><img src="../.resources/redbar.gif" width="22" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="22" height="10" title="3" alt="3"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f3">3</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i5">20</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">3</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a1"><a href="CopyContracts.java.html" class="el_source">CopyContracts.java</a></td><td class="bar" id="b5"><img src="../.resources/redbar.gif" width="4" height="10" title="8" alt="8"/><img src="../.resources/greenbar.gif" width="42" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">90%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i3">25</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">3</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/js/apache-maven-fluido-1.5.min.js b/HEAD/spring-cloud-contract-maven-plugin/js/apache-maven-fluido-1.5.min.js
    new file mode 100644
    index 0000000000..0537c09d69
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/js/apache-maven-fluido-1.5.min.js
    @@ -0,0 +1,25 @@
    +/*!
    + * jQuery JavaScript Library v1.11.2
    + * http://jquery.com/
    + *
    + * Includes Sizzle.js
    + * http://sizzlejs.com/
    + *
    + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
    + * Released under the MIT license
    + * http://jquery.org/license
    + *
    + * Date: 2014-12-17T15:27Z
    + */
    +(function(b,a){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=b.document?a(b,true):function(c){if(!c.document){throw new Error("jQuery requires a window with a document")}return a(c)}}else{a(b)}}(typeof window!=="undefined"?window:this,function(a5,av){var aP=[];var P=aP.slice;var az=aP.concat;var x=aP.push;var bU=aP.indexOf;var ac={};var y=ac.toString;var K=ac.hasOwnProperty;var D={};var ai="1.11.2",bI=function(e,i){return new bI.fn.init(e,i)},E=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,bS=/^-ms-/,aW=/-([\da-z])/gi,O=function(e,i){return i.toUpperCase()};bI.fn=bI.prototype={jquery:ai,constructor:bI,selector:"",length:0,toArray:function(){return P.call(this)},get:function(e){return e!=null?(e<0?this[e+this.length]:this[e]):P.call(this)},pushStack:function(e){var i=bI.merge(this.constructor(),e);i.prevObject=this;i.context=this.context;return i},each:function(i,e){return bI.each(this,i,e)},map:function(e){return this.pushStack(bI.map(this,function(b7,b6){return e.call(b7,b6,b7)}))},slice:function(){return this.pushStack(P.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(b7){var e=this.length,b6=+b7+(b7<0?e:0);return this.pushStack(b6>=0&&b6<e?[this[b6]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:x,sort:aP.sort,splice:aP.splice};bI.extend=bI.fn.extend=function(){var e,cb,b6,b7,ce,cc,ca=arguments[0]||{},b9=1,b8=arguments.length,cd=false;if(typeof ca==="boolean"){cd=ca;ca=arguments[b9]||{};b9++}if(typeof ca!=="object"&&!bI.isFunction(ca)){ca={}}if(b9===b8){ca=this;b9--}for(;b9<b8;b9++){if((ce=arguments[b9])!=null){for(b7 in ce){e=ca[b7];b6=ce[b7];if(ca===b6){continue}if(cd&&b6&&(bI.isPlainObject(b6)||(cb=bI.isArray(b6)))){if(cb){cb=false;cc=e&&bI.isArray(e)?e:[]}else{cc=e&&bI.isPlainObject(e)?e:{}}ca[b7]=bI.extend(cd,cc,b6)}else{if(b6!==undefined){ca[b7]=b6}}}}}return ca};bI.extend({expando:"jQuery"+(ai+Math.random()).replace(/\D/g,""),isReady:true,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return bI.type(e)==="function"},isArray:Array.isArray||function(e){return bI.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return !bI.isArray(e)&&(e-parseFloat(e)+1)>=0},isEmptyObject:function(i){var e;for(e in i){return false}return true},isPlainObject:function(b7){var i;if(!b7||bI.type(b7)!=="object"||b7.nodeType||bI.isWindow(b7)){return false}try{if(b7.constructor&&!K.call(b7,"constructor")&&!K.call(b7.constructor.prototype,"isPrototypeOf")){return false}}catch(b6){return false}if(D.ownLast){for(i in b7){return K.call(b7,i)}}for(i in b7){}return i===undefined||K.call(b7,i)},type:function(e){if(e==null){return e+""}return typeof e==="object"||typeof e==="function"?ac[y.call(e)]||"object":typeof e},globalEval:function(e){if(e&&bI.trim(e)){(a5.execScript||function(i){a5["eval"].call(a5,i)})(e)}},camelCase:function(e){return e.replace(bS,"ms-").replace(aW,O)},nodeName:function(i,e){return i.nodeName&&i.nodeName.toLowerCase()===e.toLowerCase()},each:function(ca,cb,b6){var b9,b7=0,b8=ca.length,e=ad(ca);if(b6){if(e){for(;b7<b8;b7++){b9=cb.apply(ca[b7],b6);if(b9===false){break}}}else{for(b7 in ca){b9=cb.apply(ca[b7],b6);if(b9===false){break}}}}else{if(e){for(;b7<b8;b7++){b9=cb.call(ca[b7],b7,ca[b7]);if(b9===false){break}}}else{for(b7 in ca){b9=cb.call(ca[b7],b7,ca[b7]);if(b9===false){break}}}}return ca},trim:function(e){return e==null?"":(e+"").replace(E,"")},makeArray:function(e,b6){var i=b6||[];if(e!=null){if(ad(Object(e))){bI.merge(i,typeof e==="string"?[e]:e)}else{x.call(i,e)}}return i},inArray:function(b8,b6,b7){var e;if(b6){if(bU){return bU.call(b6,b8,b7)}e=b6.length;b7=b7?b7<0?Math.max(0,e+b7):b7:0;for(;b7<e;b7++){if(b7 in b6&&b6[b7]===b8){return b7}}}return -1},merge:function(b9,b7){var e=+b7.length,b6=0,b8=b9.length;while(b6<e){b9[b8++]=b7[b6++]}if(e!==e){while(b7[b6]!==undefined){b9[b8++]=b7[b6++]}}b9.length=b8;return b9},grep:function(e,cc,b9){var cb,b8=[],b6=0,b7=e.length,ca=!b9;for(;b6<b7;b6++){cb=!cc(e[b6],b6);if(cb!==ca){b8.push(e[b6])}}return b8},map:function(b7,cc,e){var cb,b9=0,ca=b7.length,b6=ad(b7),b8=[];if(b6){for(;b9<ca;b9++){cb=cc(b7[b9],b9,e);if(cb!=null){b8.push(cb)}}}else{for(b9 in b7){cb=cc(b7[b9],b9,e);if(cb!=null){b8.push(cb)}}}return az.apply([],b8)},guid:1,proxy:function(b8,b7){var e,b6,i;if(typeof b7==="string"){i=b8[b7];b7=b8;b8=i}if(!bI.isFunction(b8)){return undefined}e=P.call(arguments,2);b6=function(){return b8.apply(b7||this,e.concat(P.call(arguments)))};b6.guid=b8.guid=b8.guid||bI.guid++;return b6},now:function(){return +(new Date())},support:D});bI.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(b6,e){ac["[object "+e+"]"]=e.toLowerCase()});function ad(b6){var i=b6.length,e=bI.type(b6);if(e==="function"||bI.isWindow(b6)){return false}if(b6.nodeType===1&&i){return true}return e==="array"||i===0||typeof i==="number"&&i>0&&(i-1) in b6}var m=
    +/*!
    + * Sizzle CSS Selector Engine v2.2.0-pre
    + * http://sizzlejs.com/
    + *
    + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
    + * Released under the MIT license
    + * http://jquery.org/license
    + *
    + * Date: 2014-12-16
    + */
    +(function(de){var cy,dh,cn,cH,cK,ci,cW,dg,dm,cI,cX,cZ,cC,co,c8,c3,df,ce,cF,da="sizzle"+1*new Date(),cJ=de.document,di=0,c4=0,b9=cA(),c9=cA(),cG=cA(),cE=function(i,e){if(i===e){cX=true}return 0},cQ=1<<31,cO=({}).hasOwnProperty,dc=[],dd=dc.pop,cM=dc.push,b7=dc.push,cm=dc.slice,cd=function(dq,dp){var dn=0,e=dq.length;for(;dn<e;dn++){if(dq[dn]===dp){return dn}}return -1},b8="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",cp="[\\x20\\t\\r\\n\\f]",b6="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",cL=b6.replace("w","w#"),c6="\\["+cp+"*("+b6+")(?:"+cp+"*([*^$|!~]?=)"+cp+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+cL+"))|)"+cp+"*\\]",ck=":("+b6+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+c6+")*)|.*)\\)|)",cu=new RegExp(cp+"+","g"),cr=new RegExp("^"+cp+"+|((?:^|[^\\\\])(?:\\\\.)*)"+cp+"+$","g"),cv=new RegExp("^"+cp+"*,"+cp+"*"),cB=new RegExp("^"+cp+"*([>+~]|"+cp+")"+cp+"*"),ct=new RegExp("="+cp+"*([^\\]'\"]*?)"+cp+"*\\]","g"),cS=new RegExp(ck),cU=new RegExp("^"+cL+"$"),c2={ID:new RegExp("^#("+b6+")"),CLASS:new RegExp("^\\.("+b6+")"),TAG:new RegExp("^("+b6.replace("w","w*")+")"),ATTR:new RegExp("^"+c6),PSEUDO:new RegExp("^"+ck),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+cp+"*(even|odd|(([+-]|)(\\d*)n|)"+cp+"*(?:([+-]|)"+cp+"*(\\d+)|))"+cp+"*\\)|)","i"),bool:new RegExp("^(?:"+b8+")$","i"),needsContext:new RegExp("^"+cp+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+cp+"*((?:-\\d)?\\d*)"+cp+"*\\)|)(?=[^-]|$)","i")},cc=/^(?:input|select|textarea|button)$/i,cl=/^h\d$/i,cP=/^[^{]+\{\s*\[native \w/,cR=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,c1=/[+~]/,cN=/'|\\/g,cs=new RegExp("\\\\([\\da-f]{1,6}"+cp+"?|("+cp+")|.)","ig"),c5=function(e,dp,i){var dn="0x"+dp-65536;return dn!==dn||i?dp:dn<0?String.fromCharCode(dn+65536):String.fromCharCode(dn>>10|55296,dn&1023|56320)},dl=function(){cZ()};try{b7.apply((dc=cm.call(cJ.childNodes)),cJ.childNodes);dc[cJ.childNodes.length].nodeType}catch(cD){b7={apply:dc.length?function(i,e){cM.apply(i,cm.call(e))}:function(dq,dp){var e=dq.length,dn=0;while((dq[e++]=dp[dn++])){}dq.length=e-1}}}function cw(dv,dn,dz,dB){var dA,ds,dt,dx,dy,dr,dq,e,dp,dw;if((dn?dn.ownerDocument||dn:cJ)!==cC){cZ(dn)}dn=dn||cC;dz=dz||[];dx=dn.nodeType;if(typeof dv!=="string"||!dv||dx!==1&&dx!==9&&dx!==11){return dz}if(!dB&&c8){if(dx!==11&&(dA=cR.exec(dv))){if((dt=dA[1])){if(dx===9){ds=dn.getElementById(dt);if(ds&&ds.parentNode){if(ds.id===dt){dz.push(ds);return dz}}else{return dz}}else{if(dn.ownerDocument&&(ds=dn.ownerDocument.getElementById(dt))&&cF(dn,ds)&&ds.id===dt){dz.push(ds);return dz}}}else{if(dA[2]){b7.apply(dz,dn.getElementsByTagName(dv));return dz}else{if((dt=dA[3])&&dh.getElementsByClassName){b7.apply(dz,dn.getElementsByClassName(dt));return dz}}}}if(dh.qsa&&(!c3||!c3.test(dv))){e=dq=da;dp=dn;dw=dx!==1&&dv;if(dx===1&&dn.nodeName.toLowerCase()!=="object"){dr=ci(dv);if((dq=dn.getAttribute("id"))){e=dq.replace(cN,"\\$&")}else{dn.setAttribute("id",e)}e="[id='"+e+"'] ";dy=dr.length;while(dy--){dr[dy]=e+ch(dr[dy])}dp=c1.test(dv)&&cT(dn.parentNode)||dn;dw=dr.join(",")}if(dw){try{b7.apply(dz,dp.querySelectorAll(dw));return dz}catch(du){}finally{if(!dq){dn.removeAttribute("id")}}}}}return dg(dv.replace(cr,"$1"),dn,dz,dB)}function cA(){var i=[];function e(dn,dp){if(i.push(dn+" ")>cn.cacheLength){delete e[i.shift()]}return(e[dn+" "]=dp)}return e}function cj(e){e[da]=true;return e}function cf(i){var dp=cC.createElement("div");try{return !!i(dp)}catch(dn){return false}finally{if(dp.parentNode){dp.parentNode.removeChild(dp)}dp=null}}function dj(dn,dq){var e=dn.split("|"),dp=dn.length;while(dp--){cn.attrHandle[e[dp]]=dq}}function ca(i,e){var dp=e&&i,dn=dp&&i.nodeType===1&&e.nodeType===1&&(~e.sourceIndex||cQ)-(~i.sourceIndex||cQ);if(dn){return dn}if(dp){while((dp=dp.nextSibling)){if(dp===e){return -1}}}return i?1:-1}function cx(e){return function(dn){var i=dn.nodeName.toLowerCase();return i==="input"&&dn.type===e}}function cb(e){return function(dn){var i=dn.nodeName.toLowerCase();return(i==="input"||i==="button")&&dn.type===e}}function c7(e){return cj(function(i){i=+i;return cj(function(dn,ds){var dq,dp=e([],dn.length,i),dr=dp.length;while(dr--){if(dn[(dq=dp[dr])]){dn[dq]=!(ds[dq]=dn[dq])}}})})}function cT(e){return e&&typeof e.getElementsByTagName!=="undefined"&&e}dh=cw.support={};cK=cw.isXML=function(e){var i=e&&(e.ownerDocument||e).documentElement;return i?i.nodeName!=="HTML":false};cZ=cw.setDocument=function(dn){var e,i,dp=dn?dn.ownerDocument||dn:cJ;if(dp===cC||dp.nodeType!==9||!dp.documentElement){return cC}cC=dp;co=dp.documentElement;i=dp.defaultView;if(i&&i!==i.top){if(i.addEventListener){i.addEventListener("unload",dl,false)}else{if(i.attachEvent){i.attachEvent("onunload",dl)}}}c8=!cK(dp);dh.attributes=cf(function(dq){dq.className="i";return !dq.getAttribute("className")});dh.getElementsByTagName=cf(function(dq){dq.appendChild(dp.createComment(""));return !dq.getElementsByTagName("*").length});dh.getElementsByClassName=cP.test(dp.getElementsByClassName);dh.getById=cf(function(dq){co.appendChild(dq).id=da;return !dp.getElementsByName||!dp.getElementsByName(da).length});if(dh.getById){cn.find.ID=function(ds,dr){if(typeof dr.getElementById!=="undefined"&&c8){var dq=dr.getElementById(ds);return dq&&dq.parentNode?[dq]:[]}};cn.filter.ID=function(dr){var dq=dr.replace(cs,c5);return function(ds){return ds.getAttribute("id")===dq}}}else{delete cn.find.ID;cn.filter.ID=function(dr){var dq=dr.replace(cs,c5);return function(dt){var ds=typeof dt.getAttributeNode!=="undefined"&&dt.getAttributeNode("id");return ds&&ds.value===dq}}}cn.find.TAG=dh.getElementsByTagName?function(dq,dr){if(typeof dr.getElementsByTagName!=="undefined"){return dr.getElementsByTagName(dq)}else{if(dh.qsa){return dr.querySelectorAll(dq)}}}:function(dq,du){var dv,dt=[],ds=0,dr=du.getElementsByTagName(dq);if(dq==="*"){while((dv=dr[ds++])){if(dv.nodeType===1){dt.push(dv)}}return dt}return dr};cn.find.CLASS=dh.getElementsByClassName&&function(dr,dq){if(c8){return dq.getElementsByClassName(dr)}};df=[];c3=[];if((dh.qsa=cP.test(dp.querySelectorAll))){cf(function(dq){co.appendChild(dq).innerHTML="<a id='"+da+"'></a><select id='"+da+"-\f]' msallowcapture=''><option selected=''></option></select>";if(dq.querySelectorAll("[msallowcapture^='']").length){c3.push("[*^$]="+cp+"*(?:''|\"\")")}if(!dq.querySelectorAll("[selected]").length){c3.push("\\["+cp+"*(?:value|"+b8+")")}if(!dq.querySelectorAll("[id~="+da+"-]").length){c3.push("~=")}if(!dq.querySelectorAll(":checked").length){c3.push(":checked")}if(!dq.querySelectorAll("a#"+da+"+*").length){c3.push(".#.+[+~]")}});cf(function(dr){var dq=dp.createElement("input");dq.setAttribute("type","hidden");dr.appendChild(dq).setAttribute("name","D");if(dr.querySelectorAll("[name=d]").length){c3.push("name"+cp+"*[*^$|!~]?=")}if(!dr.querySelectorAll(":enabled").length){c3.push(":enabled",":disabled")}dr.querySelectorAll("*,:x");c3.push(",.*:")})}if((dh.matchesSelector=cP.test((ce=co.matches||co.webkitMatchesSelector||co.mozMatchesSelector||co.oMatchesSelector||co.msMatchesSelector)))){cf(function(dq){dh.disconnectedMatch=ce.call(dq,"div");ce.call(dq,"[s!='']:x");df.push("!=",ck)})}c3=c3.length&&new RegExp(c3.join("|"));df=df.length&&new RegExp(df.join("|"));e=cP.test(co.compareDocumentPosition);cF=e||cP.test(co.contains)?function(dr,dq){var dt=dr.nodeType===9?dr.documentElement:dr,ds=dq&&dq.parentNode;return dr===ds||!!(ds&&ds.nodeType===1&&(dt.contains?dt.contains(ds):dr.compareDocumentPosition&&dr.compareDocumentPosition(ds)&16))}:function(dr,dq){if(dq){while((dq=dq.parentNode)){if(dq===dr){return true}}}return false};cE=e?function(dr,dq){if(dr===dq){cX=true;return 0}var ds=!dr.compareDocumentPosition-!dq.compareDocumentPosition;if(ds){return ds}ds=(dr.ownerDocument||dr)===(dq.ownerDocument||dq)?dr.compareDocumentPosition(dq):1;if(ds&1||(!dh.sortDetached&&dq.compareDocumentPosition(dr)===ds)){if(dr===dp||dr.ownerDocument===cJ&&cF(cJ,dr)){return -1}if(dq===dp||dq.ownerDocument===cJ&&cF(cJ,dq)){return 1}return cI?(cd(cI,dr)-cd(cI,dq)):0}return ds&4?-1:1}:function(dr,dq){if(dr===dq){cX=true;return 0}var dx,du=0,dw=dr.parentNode,dt=dq.parentNode,ds=[dr],dv=[dq];if(!dw||!dt){return dr===dp?-1:dq===dp?1:dw?-1:dt?1:cI?(cd(cI,dr)-cd(cI,dq)):0}else{if(dw===dt){return ca(dr,dq)}}dx=dr;while((dx=dx.parentNode)){ds.unshift(dx)}dx=dq;while((dx=dx.parentNode)){dv.unshift(dx)}while(ds[du]===dv[du]){du++}return du?ca(ds[du],dv[du]):ds[du]===cJ?-1:dv[du]===cJ?1:0};return dp};cw.matches=function(i,e){return cw(i,null,null,e)};cw.matchesSelector=function(dn,dq){if((dn.ownerDocument||dn)!==cC){cZ(dn)}dq=dq.replace(ct,"='$1']");if(dh.matchesSelector&&c8&&(!df||!df.test(dq))&&(!c3||!c3.test(dq))){try{var i=ce.call(dn,dq);if(i||dh.disconnectedMatch||dn.document&&dn.document.nodeType!==11){return i}}catch(dp){}}return cw(dq,cC,null,[dn]).length>0};cw.contains=function(e,i){if((e.ownerDocument||e)!==cC){cZ(e)}return cF(e,i)};cw.attr=function(dn,e){if((dn.ownerDocument||dn)!==cC){cZ(dn)}var i=cn.attrHandle[e.toLowerCase()],dp=i&&cO.call(cn.attrHandle,e.toLowerCase())?i(dn,e,!c8):undefined;return dp!==undefined?dp:dh.attributes||!c8?dn.getAttribute(e):(dp=dn.getAttributeNode(e))&&dp.specified?dp.value:null};cw.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};cw.uniqueSort=function(dp){var dq,dr=[],e=0,dn=0;cX=!dh.detectDuplicates;cI=!dh.sortStable&&dp.slice(0);dp.sort(cE);if(cX){while((dq=dp[dn++])){if(dq===dp[dn]){e=dr.push(dn)}}while(e--){dp.splice(dr[e],1)}}cI=null;return dp};cH=cw.getText=function(dr){var dq,dn="",dp=0,e=dr.nodeType;if(!e){while((dq=dr[dp++])){dn+=cH(dq)}}else{if(e===1||e===9||e===11){if(typeof dr.textContent==="string"){return dr.textContent}else{for(dr=dr.firstChild;dr;dr=dr.nextSibling){dn+=cH(dr)}}}else{if(e===3||e===4){return dr.nodeValue}}}return dn};cn=cw.selectors={cacheLength:50,createPseudo:cj,match:c2,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(cs,c5);e[3]=(e[3]||e[4]||e[5]||"").replace(cs,c5);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){cw.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+((e[7]+e[8])||e[3]==="odd")}else{if(e[3]){cw.error(e[0])}}return e},PSEUDO:function(i){var e,dn=!i[6]&&i[2];if(c2.CHILD.test(i[0])){return null}if(i[3]){i[2]=i[4]||i[5]||""}else{if(dn&&cS.test(dn)&&(e=ci(dn,true))&&(e=dn.indexOf(")",dn.length-e)-dn.length)){i[0]=i[0].slice(0,e);i[2]=dn.slice(0,e)}}return i.slice(0,3)}},filter:{TAG:function(i){var e=i.replace(cs,c5).toLowerCase();return i==="*"?function(){return true}:function(dn){return dn.nodeName&&dn.nodeName.toLowerCase()===e}},CLASS:function(e){var i=b9[e+" "];return i||(i=new RegExp("(^|"+cp+")"+e+"("+cp+"|$)"))&&b9(e,function(dn){return i.test(typeof dn.className==="string"&&dn.className||typeof dn.getAttribute!=="undefined"&&dn.getAttribute("class")||"")})},ATTR:function(dn,i,e){return function(dq){var dp=cw.attr(dq,dn);if(dp==null){return i==="!="}if(!i){return true}dp+="";return i==="="?dp===e:i==="!="?dp!==e:i==="^="?e&&dp.indexOf(e)===0:i==="*="?e&&dp.indexOf(e)>-1:i==="$="?e&&dp.slice(-e.length)===e:i==="~="?(" "+dp.replace(cu," ")+" ").indexOf(e)>-1:i==="|="?dp===e||dp.slice(0,e.length+1)===e+"-":false}},CHILD:function(i,dq,dp,dr,dn){var dt=i.slice(0,3)!=="nth",e=i.slice(-4)!=="last",ds=dq==="of-type";return dr===1&&dn===0?function(du){return !!du.parentNode}:function(dA,dy,dD){var du,dG,dB,dF,dC,dx,dz=dt!==e?"nextSibling":"previousSibling",dE=dA.parentNode,dw=ds&&dA.nodeName.toLowerCase(),dv=!dD&&!ds;if(dE){if(dt){while(dz){dB=dA;while((dB=dB[dz])){if(ds?dB.nodeName.toLowerCase()===dw:dB.nodeType===1){return false}}dx=dz=i==="only"&&!dx&&"nextSibling"}return true}dx=[e?dE.firstChild:dE.lastChild];if(e&&dv){dG=dE[da]||(dE[da]={});du=dG[i]||[];dC=du[0]===di&&du[1];dF=du[0]===di&&du[2];dB=dC&&dE.childNodes[dC];while((dB=++dC&&dB&&dB[dz]||(dF=dC=0)||dx.pop())){if(dB.nodeType===1&&++dF&&dB===dA){dG[i]=[di,dC,dF];break}}}else{if(dv&&(du=(dA[da]||(dA[da]={}))[i])&&du[0]===di){dF=du[1]}else{while((dB=++dC&&dB&&dB[dz]||(dF=dC=0)||dx.pop())){if((ds?dB.nodeName.toLowerCase()===dw:dB.nodeType===1)&&++dF){if(dv){(dB[da]||(dB[da]={}))[i]=[di,dF]}if(dB===dA){break}}}}}dF-=dn;return dF===dr||(dF%dr===0&&dF/dr>=0)}}},PSEUDO:function(dp,dn){var e,i=cn.pseudos[dp]||cn.setFilters[dp.toLowerCase()]||cw.error("unsupported pseudo: "+dp);if(i[da]){return i(dn)}if(i.length>1){e=[dp,dp,"",dn];return cn.setFilters.hasOwnProperty(dp.toLowerCase())?cj(function(ds,du){var dr,dq=i(ds,dn),dt=dq.length;while(dt--){dr=cd(ds,dq[dt]);ds[dr]=!(du[dr]=dq[dt])}}):function(dq){return i(dq,0,e)}}return i}},pseudos:{not:cj(function(e){var i=[],dn=[],dp=cW(e.replace(cr,"$1"));return dp[da]?cj(function(dr,dw,du,ds){var dv,dq=dp(dr,null,ds,[]),dt=dr.length;while(dt--){if((dv=dq[dt])){dr[dt]=!(dw[dt]=dv)}}}):function(ds,dr,dq){i[0]=ds;dp(i,null,dq,dn);i[0]=null;return !dn.pop()}}),has:cj(function(e){return function(i){return cw(e,i).length>0}}),contains:cj(function(e){e=e.replace(cs,c5);return function(i){return(i.textContent||i.innerText||cH(i)).indexOf(e)>-1}}),lang:cj(function(e){if(!cU.test(e||"")){cw.error("unsupported lang: "+e)}e=e.replace(cs,c5).toLowerCase();return function(dn){var i;do{if((i=c8?dn.lang:dn.getAttribute("xml:lang")||dn.getAttribute("lang"))){i=i.toLowerCase();return i===e||i.indexOf(e+"-")===0}}while((dn=dn.parentNode)&&dn.nodeType===1);return false}}),target:function(e){var i=de.location&&de.location.hash;return i&&i.slice(1)===e.id},root:function(e){return e===co},focus:function(e){return e===cC.activeElement&&(!cC.hasFocus||cC.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var i=e.nodeName.toLowerCase();return(i==="input"&&!!e.checked)||(i==="option"&&!!e.selected)},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeType<6){return false}}return true},parent:function(e){return !cn.pseudos.empty(e)},header:function(e){return cl.test(e.nodeName)},input:function(e){return cc.test(e.nodeName)},button:function(i){var e=i.nodeName.toLowerCase();return e==="input"&&i.type==="button"||e==="button"},text:function(i){var e;return i.nodeName.toLowerCase()==="input"&&i.type==="text"&&((e=i.getAttribute("type"))==null||e.toLowerCase()==="text")},first:c7(function(){return[0]}),last:c7(function(e,i){return[i-1]}),eq:c7(function(e,dn,i){return[i<0?i+dn:i]}),even:c7(function(e,dp){var dn=0;for(;dn<dp;dn+=2){e.push(dn)}return e}),odd:c7(function(e,dp){var dn=1;for(;dn<dp;dn+=2){e.push(dn)}return e}),lt:c7(function(e,dq,dp){var dn=dp<0?dp+dq:dp;for(;--dn>=0;){e.push(dn)}return e}),gt:c7(function(e,dq,dp){var dn=dp<0?dp+dq:dp;for(;++dn<dq;){e.push(dn)}return e})}};cn.pseudos.nth=cn.pseudos.eq;for(cy in {radio:true,checkbox:true,file:true,password:true,image:true}){cn.pseudos[cy]=cx(cy)}for(cy in {submit:true,reset:true}){cn.pseudos[cy]=cb(cy)}function cV(){}cV.prototype=cn.filters=cn.pseudos;cn.setFilters=new cV();ci=cw.tokenize=function(dq,dv){var i,dr,dt,du,ds,dn,e,dp=c9[dq+" "];if(dp){return dv?0:dp.slice(0)}ds=dq;dn=[];e=cn.preFilter;while(ds){if(!i||(dr=cv.exec(ds))){if(dr){ds=ds.slice(dr[0].length)||ds}dn.push((dt=[]))}i=false;if((dr=cB.exec(ds))){i=dr.shift();dt.push({value:i,type:dr[0].replace(cr," ")});ds=ds.slice(i.length)}for(du in cn.filter){if((dr=c2[du].exec(ds))&&(!e[du]||(dr=e[du](dr)))){i=dr.shift();dt.push({value:i,type:du,matches:dr});ds=ds.slice(i.length)}}if(!i){break}}return dv?ds.length:ds?cw.error(dq):c9(dq,dn).slice(0)};function ch(dq){var dp=0,dn=dq.length,e="";for(;dp<dn;dp++){e+=dq[dp].value}return e}function cq(dq,dn,dp){var e=dn.dir,dr=dp&&e==="parentNode",i=c4++;return dn.first?function(du,dt,ds){while((du=du[e])){if(du.nodeType===1||dr){return dq(du,dt,ds)}}}:function(dw,du,dt){var dx,dv,ds=[di,i];if(dt){while((dw=dw[e])){if(dw.nodeType===1||dr){if(dq(dw,du,dt)){return true}}}}else{while((dw=dw[e])){if(dw.nodeType===1||dr){dv=dw[da]||(dw[da]={});if((dx=dv[e])&&dx[0]===di&&dx[1]===i){return(ds[2]=dx[2])}else{dv[e]=ds;if((ds[2]=dq(dw,du,dt))){return true}}}}}}}function dk(e){return e.length>1?function(dr,dq,dn){var dp=e.length;while(dp--){if(!e[dp](dr,dq,dn)){return false}}return true}:e[0]}function cz(dn,dr,dq){var dp=0,e=dr.length;for(;dp<e;dp++){cw(dn,dr[dp],dq)}return dq}function c0(e,dn,dp,dq,dt){var dr,dw=[],ds=0,du=e.length,dv=dn!=null;for(;ds<du;ds++){if((dr=e[ds])){if(!dp||dp(dr,dq,dt)){dw.push(dr);if(dv){dn.push(ds)}}}}return dw}function cg(dn,i,dq,dp,dr,e){if(dp&&!dp[da]){dp=cg(dp)}if(dr&&!dr[da]){dr=cg(dr,e)}return cj(function(dC,dz,du,dB){var dE,dA,dw,dv=[],dD=[],dt=dz.length,ds=dC||cz(i||"*",du.nodeType?[du]:du,[]),dx=dn&&(dC||!i)?c0(ds,dv,dn,du,dB):ds,dy=dq?dr||(dC?dn:dt||dp)?[]:dz:dx;if(dq){dq(dx,dy,du,dB)}if(dp){dE=c0(dy,dD);dp(dE,[],du,dB);dA=dE.length;while(dA--){if((dw=dE[dA])){dy[dD[dA]]=!(dx[dD[dA]]=dw)}}}if(dC){if(dr||dn){if(dr){dE=[];dA=dy.length;while(dA--){if((dw=dy[dA])){dE.push((dx[dA]=dw))}}dr(null,(dy=[]),dE,dB)}dA=dy.length;while(dA--){if((dw=dy[dA])&&(dE=dr?cd(dC,dw):dv[dA])>-1){dC[dE]=!(dz[dE]=dw)}}}}else{dy=c0(dy===dz?dy.splice(dt,dy.length):dy);if(dr){dr(null,dz,dy,dB)}else{b7.apply(dz,dy)}}})}function db(dt){var dn,dr,dp,ds=dt.length,dw=cn.relative[dt[0].type],dx=dw||cn.relative[" "],dq=dw?1:0,du=cq(function(i){return i===dn},dx,true),dv=cq(function(i){return cd(dn,i)>-1},dx,true),e=[function(dA,dz,dy){var i=(!dw&&(dy||dz!==dm))||((dn=dz).nodeType?du(dA,dz,dy):dv(dA,dz,dy));dn=null;return i}];for(;dq<ds;dq++){if((dr=cn.relative[dt[dq].type])){e=[cq(dk(e),dr)]}else{dr=cn.filter[dt[dq].type].apply(null,dt[dq].matches);if(dr[da]){dp=++dq;for(;dp<ds;dp++){if(cn.relative[dt[dp].type]){break}}return cg(dq>1&&dk(e),dq>1&&ch(dt.slice(0,dq-1).concat({value:dt[dq-2].type===" "?"*":""})).replace(cr,"$1"),dr,dq<dp&&db(dt.slice(dq,dp)),dp<ds&&db((dt=dt.slice(dp))),dp<ds&&ch(dt))}e.push(dr)}}return dk(e)}function cY(dp,dn){var e=dn.length>0,dq=dp.length>0,i=function(dA,du,dz,dy,dD){var dv,dw,dB,dF=0,dx="0",dr=dA&&[],dG=[],dE=dm,dt=dA||dq&&cn.find.TAG("*",dD),ds=(di+=dE==null?1:Math.random()||0.1),dC=dt.length;if(dD){dm=du!==cC&&du}for(;dx!==dC&&(dv=dt[dx])!=null;dx++){if(dq&&dv){dw=0;while((dB=dp[dw++])){if(dB(dv,du,dz)){dy.push(dv);break}}if(dD){di=ds}}if(e){if((dv=!dB&&dv)){dF--}if(dA){dr.push(dv)}}}dF+=dx;if(e&&dx!==dF){dw=0;while((dB=dn[dw++])){dB(dr,dG,du,dz)}if(dA){if(dF>0){while(dx--){if(!(dr[dx]||dG[dx])){dG[dx]=dd.call(dy)}}}dG=c0(dG)}b7.apply(dy,dG);if(dD&&!dA&&dG.length>0&&(dF+dn.length)>1){cw.uniqueSort(dy)}}if(dD){di=ds;dm=dE}return dr};return e?cj(i):i}cW=cw.compile=function(e,dp){var dq,dn=[],ds=[],dr=cG[e+" "];if(!dr){if(!dp){dp=ci(e)}dq=dp.length;while(dq--){dr=db(dp[dq]);if(dr[da]){dn.push(dr)}else{ds.push(dr)}}dr=cG(e,cY(ds,dn));dr.selector=e}return dr};dg=cw.select=function(dp,e,dq,dt){var dr,dw,dn,dx,du,dv=typeof dp==="function"&&dp,ds=!dt&&ci((dp=dv.selector||dp));dq=dq||[];if(ds.length===1){dw=ds[0]=ds[0].slice(0);if(dw.length>2&&(dn=dw[0]).type==="ID"&&dh.getById&&e.nodeType===9&&c8&&cn.relative[dw[1].type]){e=(cn.find.ID(dn.matches[0].replace(cs,c5),e)||[])[0];if(!e){return dq}else{if(dv){e=e.parentNode}}dp=dp.slice(dw.shift().value.length)}dr=c2.needsContext.test(dp)?0:dw.length;while(dr--){dn=dw[dr];if(cn.relative[(dx=dn.type)]){break}if((du=cn.find[dx])){if((dt=du(dn.matches[0].replace(cs,c5),c1.test(dw[0].type)&&cT(e.parentNode)||e))){dw.splice(dr,1);dp=dt.length&&ch(dw);if(!dp){b7.apply(dq,dt);return dq}break}}}}(dv||cW(dp,ds))(dt,e,!c8,dq,c1.test(dp)&&cT(e.parentNode)||e);return dq};dh.sortStable=da.split("").sort(cE).join("")===da;dh.detectDuplicates=!!cX;cZ();dh.sortDetached=cf(function(e){return e.compareDocumentPosition(cC.createElement("div"))&1});if(!cf(function(e){e.innerHTML="<a href='#'></a>";return e.firstChild.getAttribute("href")==="#"})){dj("type|href|height|width",function(i,e,dn){if(!dn){return i.getAttribute(e,e.toLowerCase()==="type"?1:2)}})}if(!dh.attributes||!cf(function(e){e.innerHTML="<input/>";e.firstChild.setAttribute("value","");return e.firstChild.getAttribute("value")===""})){dj("value",function(i,e,dn){if(!dn&&i.nodeName.toLowerCase()==="input"){return i.defaultValue}})}if(!cf(function(e){return e.getAttribute("disabled")==null})){dj(b8,function(i,e,dp){var dn;if(!dp){return i[e]===true?e.toLowerCase():(dn=i.getAttributeNode(e))&&dn.specified?dn.value:null}})}return cw})(a5);bI.find=m;bI.expr=m.selectors;bI.expr[":"]=bI.expr.pseudos;bI.unique=m.uniqueSort;bI.text=m.getText;bI.isXMLDoc=m.isXML;bI.contains=m.contains;var A=bI.expr.match.needsContext;var a=(/^<(\w+)\s*\/?>(?:<\/\1>|)$/);var aL=/^.[^:#\[\.,]*$/;function aR(b6,e,i){if(bI.isFunction(e)){return bI.grep(b6,function(b8,b7){return !!e.call(b8,b7,b8)!==i})}if(e.nodeType){return bI.grep(b6,function(b7){return(b7===e)!==i})}if(typeof e==="string"){if(aL.test(e)){return bI.filter(e,b6,i)}e=bI.filter(e,b6)}return bI.grep(b6,function(b7){return(bI.inArray(b7,e)>=0)!==i})}bI.filter=function(b7,e,b6){var i=e[0];if(b6){b7=":not("+b7+")"}return e.length===1&&i.nodeType===1?bI.find.matchesSelector(i,b7)?[i]:[]:bI.find.matches(b7,bI.grep(e,function(b8){return b8.nodeType===1}))};bI.fn.extend({find:function(b6){var b9,b8=[],b7=this,e=b7.length;if(typeof b6!=="string"){return this.pushStack(bI(b6).filter(function(){for(b9=0;b9<e;b9++){if(bI.contains(b7[b9],this)){return true}}}))}for(b9=0;b9<e;b9++){bI.find(b6,b7[b9],b8)}b8=this.pushStack(e>1?bI.unique(b8):b8);b8.selector=this.selector?this.selector+" "+b6:b6;return b8},filter:function(e){return this.pushStack(aR(this,e||[],false))},not:function(e){return this.pushStack(aR(this,e||[],true))},is:function(e){return !!aR(this,typeof e==="string"&&A.test(e)?bI(e):e||[],false).length}});var z,n=a5.document,bt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,bV=bI.fn.init=function(e,b6){var i,b7;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){i=[null,e,null]}else{i=bt.exec(e)}if(i&&(i[1]||!b6)){if(i[1]){b6=b6 instanceof bI?b6[0]:b6;bI.merge(this,bI.parseHTML(i[1],b6&&b6.nodeType?b6.ownerDocument||b6:n,true));if(a.test(i[1])&&bI.isPlainObject(b6)){for(i in b6){if(bI.isFunction(this[i])){this[i](b6[i])}else{this.attr(i,b6[i])}}}return this}else{b7=n.getElementById(i[2]);if(b7&&b7.parentNode){if(b7.id!==i[2]){return z.find(e)}this.length=1;this[0]=b7}this.context=n;this.selector=e;return this}}else{if(!b6||b6.jquery){return(b6||z).find(e)}else{return this.constructor(b6).find(e)}}}else{if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else{if(bI.isFunction(e)){return typeof z.ready!=="undefined"?z.ready(e):e(bI)}}}if(e.selector!==undefined){this.selector=e.selector;this.context=e.context}return bI.makeArray(e,this)};bV.prototype=bI.fn;z=bI(n);var bv=/^(?:parents|prev(?:Until|All))/,bz={children:true,contents:true,next:true,prev:true};bI.extend({dir:function(b6,i,b8){var e=[],b7=b6[i];while(b7&&b7.nodeType!==9&&(b8===undefined||b7.nodeType!==1||!bI(b7).is(b8))){if(b7.nodeType===1){e.push(b7)}b7=b7[i]}return e},sibling:function(b6,i){var e=[];for(;b6;b6=b6.nextSibling){if(b6.nodeType===1&&b6!==i){e.push(b6)}}return e}});bI.fn.extend({has:function(b8){var b7,b6=bI(b8,this),e=b6.length;return this.filter(function(){for(b7=0;b7<e;b7++){if(bI.contains(this,b6[b7])){return true}}})},closest:function(b9,b8){var ca,b7=0,b6=this.length,e=[],cb=A.test(b9)||typeof b9!=="string"?bI(b9,b8||this.context):0;for(;b7<b6;b7++){for(ca=this[b7];ca&&ca!==b8;ca=ca.parentNode){if(ca.nodeType<11&&(cb?cb.index(ca)>-1:ca.nodeType===1&&bI.find.matchesSelector(ca,b9))){e.push(ca);break}}}return this.pushStack(e.length>1?bI.unique(e):e)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1}if(typeof e==="string"){return bI.inArray(this[0],bI(e))}return bI.inArray(e.jquery?e[0]:e,this)},add:function(e,i){return this.pushStack(bI.unique(bI.merge(this.get(),bI(e,i))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});function aY(i,e){do{i=i[e]}while(i&&i.nodeType!==1);return i}bI.each({parent:function(i){var e=i.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return bI.dir(e,"parentNode")},parentsUntil:function(b6,e,b7){return bI.dir(b6,"parentNode",b7)},next:function(e){return aY(e,"nextSibling")},prev:function(e){return aY(e,"previousSibling")},nextAll:function(e){return bI.dir(e,"nextSibling")},prevAll:function(e){return bI.dir(e,"previousSibling")},nextUntil:function(b6,e,b7){return bI.dir(b6,"nextSibling",b7)},prevUntil:function(b6,e,b7){return bI.dir(b6,"previousSibling",b7)},siblings:function(e){return bI.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return bI.sibling(e.firstChild)},contents:function(e){return bI.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:bI.merge([],e.childNodes)}},function(e,i){bI.fn[e]=function(b8,b6){var b7=bI.map(this,i,b8);if(e.slice(-5)!=="Until"){b6=b8}if(b6&&typeof b6==="string"){b7=bI.filter(b6,b7)}if(this.length>1){if(!bz[e]){b7=bI.unique(b7)}if(bv.test(e)){b7=b7.reverse()}}return this.pushStack(b7)}});var aF=(/\S+/g);var b2={};function af(i){var e=b2[i]={};bI.each(i.match(aF)||[],function(b7,b6){e[b6]=true});return e}bI.Callbacks=function(ce){ce=typeof ce==="string"?(b2[ce]||af(ce)):bI.extend({},ce);var b8,b7,e,b9,ca,b6,cb=[],cc=!ce.once&&[],i=function(cf){b7=ce.memory&&cf;e=true;ca=b6||0;b6=0;b9=cb.length;b8=true;for(;cb&&ca<b9;ca++){if(cb[ca].apply(cf[0],cf[1])===false&&ce.stopOnFalse){b7=false;break}}b8=false;if(cb){if(cc){if(cc.length){i(cc.shift())}}else{if(b7){cb=[]}else{cd.disable()}}}},cd={add:function(){if(cb){var cg=cb.length;(function cf(ch){bI.each(ch,function(cj,ci){var ck=bI.type(ci);if(ck==="function"){if(!ce.unique||!cd.has(ci)){cb.push(ci)}}else{if(ci&&ci.length&&ck!=="string"){cf(ci)}}})})(arguments);if(b8){b9=cb.length}else{if(b7){b6=cg;i(b7)}}}return this},remove:function(){if(cb){bI.each(arguments,function(ch,cf){var cg;while((cg=bI.inArray(cf,cb,cg))>-1){cb.splice(cg,1);if(b8){if(cg<=b9){b9--}if(cg<=ca){ca--}}}})}return this},has:function(cf){return cf?bI.inArray(cf,cb)>-1:!!(cb&&cb.length)},empty:function(){cb=[];b9=0;return this},disable:function(){cb=cc=b7=undefined;return this},disabled:function(){return !cb},lock:function(){cc=undefined;if(!b7){cd.disable()}return this},locked:function(){return !cc},fireWith:function(cg,cf){if(cb&&(!e||cc)){cf=cf||[];cf=[cg,cf.slice?cf.slice():cf];if(b8){cc.push(cf)}else{i(cf)}}return this},fire:function(){cd.fireWith(this,arguments);return this},fired:function(){return !!e}};return cd};bI.extend({Deferred:function(b6){var i=[["resolve","done",bI.Callbacks("once memory"),"resolved"],["reject","fail",bI.Callbacks("once memory"),"rejected"],["notify","progress",bI.Callbacks("memory")]],b7="pending",b8={state:function(){return b7},always:function(){e.done(arguments).fail(arguments);return this},then:function(){var b9=arguments;return bI.Deferred(function(ca){bI.each(i,function(cc,cb){var cd=bI.isFunction(b9[cc])&&b9[cc];e[cb[1]](function(){var ce=cd&&cd.apply(this,arguments);if(ce&&bI.isFunction(ce.promise)){ce.promise().done(ca.resolve).fail(ca.reject).progress(ca.notify)}else{ca[cb[0]+"With"](this===b8?ca.promise():this,cd?[ce]:arguments)}})});b9=null}).promise()},promise:function(b9){return b9!=null?bI.extend(b9,b8):b8}},e={};b8.pipe=b8.then;bI.each(i,function(ca,b9){var cc=b9[2],cb=b9[3];b8[b9[1]]=cc.add;if(cb){cc.add(function(){b7=cb},i[ca^1][2].disable,i[2][2].lock)}e[b9[0]]=function(){e[b9[0]+"With"](this===e?b8:this,arguments);return this};e[b9[0]+"With"]=cc.fireWith});b8.promise(e);if(b6){b6.call(e,e)}return e},when:function(b9){var b7=0,cb=P.call(arguments),e=cb.length,b6=e!==1||(b9&&bI.isFunction(b9.promise))?e:0,ce=b6===1?b9:bI.Deferred(),b8=function(cg,ch,cf){return function(i){ch[cg]=this;cf[cg]=arguments.length>1?P.call(arguments):i;if(cf===cd){ce.notifyWith(ch,cf)}else{if(!(--b6)){ce.resolveWith(ch,cf)}}}},cd,ca,cc;if(e>1){cd=new Array(e);ca=new Array(e);cc=new Array(e);for(;b7<e;b7++){if(cb[b7]&&bI.isFunction(cb[b7].promise)){cb[b7].promise().done(b8(b7,cc,cb)).fail(ce.reject).progress(b8(b7,ca,cd))}else{--b6}}}if(!b6){ce.resolveWith(cc,cb)}return ce.promise()}});var ak;bI.fn.ready=function(e){bI.ready.promise().done(e);return this};bI.extend({isReady:false,readyWait:1,holdReady:function(e){if(e){bI.readyWait++}else{bI.ready(true)}},ready:function(e){if(e===true?--bI.readyWait:bI.isReady){return}if(!n.body){return setTimeout(bI.ready)}bI.isReady=true;if(e!==true&&--bI.readyWait>0){return}ak.resolveWith(n,[bI]);if(bI.fn.triggerHandler){bI(n).triggerHandler("ready");bI(n).off("ready")}}});function bm(){if(n.addEventListener){n.removeEventListener("DOMContentLoaded",bZ,false);a5.removeEventListener("load",bZ,false)}else{n.detachEvent("onreadystatechange",bZ);a5.detachEvent("onload",bZ)}}function bZ(){if(n.addEventListener||event.type==="load"||n.readyState==="complete"){bm();bI.ready()}}bI.ready.promise=function(b8){if(!ak){ak=bI.Deferred();if(n.readyState==="complete"){setTimeout(bI.ready)}else{if(n.addEventListener){n.addEventListener("DOMContentLoaded",bZ,false);a5.addEventListener("load",bZ,false)}else{n.attachEvent("onreadystatechange",bZ);a5.attachEvent("onload",bZ);var b7=false;try{b7=a5.frameElement==null&&n.documentElement}catch(b6){}if(b7&&b7.doScroll){(function i(){if(!bI.isReady){try{b7.doScroll("left")}catch(b9){return setTimeout(i,50)}bm();bI.ready()}})()}}}}return ak.promise(b8)};var aC=typeof undefined;var bh;for(bh in bI(D)){break}D.ownLast=bh!=="0";D.inlineBlockNeedsLayout=false;bI(function(){var b6,b7,e,i;e=n.getElementsByTagName("body")[0];if(!e||!e.style){return}b7=n.createElement("div");i=n.createElement("div");i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";e.appendChild(i).appendChild(b7);if(typeof b7.style.zoom!==aC){b7.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";D.inlineBlockNeedsLayout=b6=b7.offsetWidth===3;if(b6){e.style.zoom=1}}e.removeChild(i)});(function(){var b6=n.createElement("div");if(D.deleteExpando==null){D.deleteExpando=true;try{delete b6.test}catch(i){D.deleteExpando=false}}b6=null})();bI.acceptData=function(b6){var i=bI.noData[(b6.nodeName+" ").toLowerCase()],e=+b6.nodeType||1;return e!==1&&e!==9?false:!i||i!==true&&b6.getAttribute("classid")===i};var by=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,aQ=/([A-Z])/g;function bA(b7,b6,b8){if(b8===undefined&&b7.nodeType===1){var i="data-"+b6.replace(aQ,"-$1").toLowerCase();b8=b7.getAttribute(i);if(typeof b8==="string"){try{b8=b8==="true"?true:b8==="false"?false:b8==="null"?null:+b8+""===b8?+b8:by.test(b8)?bI.parseJSON(b8):b8}catch(b9){}bI.data(b7,b6,b8)}else{b8=undefined}}return b8}function Q(i){var e;for(e in i){if(e==="data"&&bI.isEmptyObject(i[e])){continue}if(e!=="toJSON"){return false}}return true}function bc(b7,i,b9,b8){if(!bI.acceptData(b7)){return}var cb,ca,cc=bI.expando,cd=b7.nodeType,e=cd?bI.cache:b7,b6=cd?b7[cc]:b7[cc]&&cc;if((!b6||!e[b6]||(!b8&&!e[b6].data))&&b9===undefined&&typeof i==="string"){return}if(!b6){if(cd){b6=b7[cc]=aP.pop()||bI.guid++}else{b6=cc}}if(!e[b6]){e[b6]=cd?{}:{toJSON:bI.noop}}if(typeof i==="object"||typeof i==="function"){if(b8){e[b6]=bI.extend(e[b6],i)}else{e[b6].data=bI.extend(e[b6].data,i)}}ca=e[b6];if(!b8){if(!ca.data){ca.data={}}ca=ca.data}if(b9!==undefined){ca[bI.camelCase(i)]=b9}if(typeof i==="string"){cb=ca[i];if(cb==null){cb=ca[bI.camelCase(i)]}}else{cb=ca}return cb}function ab(b9,b7,e){if(!bI.acceptData(b9)){return}var cb,b8,ca=b9.nodeType,b6=ca?bI.cache:b9,cc=ca?b9[bI.expando]:bI.expando;if(!b6[cc]){return}if(b7){cb=e?b6[cc]:b6[cc].data;if(cb){if(!bI.isArray(b7)){if(b7 in cb){b7=[b7]}else{b7=bI.camelCase(b7);if(b7 in cb){b7=[b7]}else{b7=b7.split(" ")}}}else{b7=b7.concat(bI.map(b7,bI.camelCase))}b8=b7.length;while(b8--){delete cb[b7[b8]]}if(e?!Q(cb):!bI.isEmptyObject(cb)){return}}}if(!e){delete b6[cc].data;if(!Q(b6[cc])){return}}if(ca){bI.cleanData([b9],true)}else{if(D.deleteExpando||b6!=b6.window){delete b6[cc]}else{b6[cc]=null}}}bI.extend({cache:{},noData:{"applet ":true,"embed ":true,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){e=e.nodeType?bI.cache[e[bI.expando]]:e[bI.expando];return !!e&&!Q(e)},data:function(i,e,b6){return bc(i,e,b6)},removeData:function(i,e){return ab(i,e)},_data:function(i,e,b6){return bc(i,e,b6,true)},_removeData:function(i,e){return ab(i,e,true)}});bI.fn.extend({data:function(b8,cb){var b7,b6,ca,b9=this[0],e=b9&&b9.attributes;if(b8===undefined){if(this.length){ca=bI.data(b9);if(b9.nodeType===1&&!bI._data(b9,"parsedAttrs")){b7=e.length;while(b7--){if(e[b7]){b6=e[b7].name;if(b6.indexOf("data-")===0){b6=bI.camelCase(b6.slice(5));bA(b9,b6,ca[b6])}}}bI._data(b9,"parsedAttrs",true)}}return ca}if(typeof b8==="object"){return this.each(function(){bI.data(this,b8)})}return arguments.length>1?this.each(function(){bI.data(this,b8,cb)}):b9?bA(b9,b8,bI.data(b9,b8)):undefined},removeData:function(e){return this.each(function(){bI.removeData(this,e)})}});bI.extend({queue:function(b6,i,b7){var e;if(b6){i=(i||"fx")+"queue";e=bI._data(b6,i);if(b7){if(!e||bI.isArray(b7)){e=bI._data(b6,i,bI.makeArray(b7))}else{e.push(b7)}}return e||[]}},dequeue:function(b9,b8){b8=b8||"fx";var i=bI.queue(b9,b8),ca=i.length,b7=i.shift(),e=bI._queueHooks(b9,b8),b6=function(){bI.dequeue(b9,b8)};if(b7==="inprogress"){b7=i.shift();ca--}if(b7){if(b8==="fx"){i.unshift("inprogress")}delete e.stop;b7.call(b9,b6,e)}if(!ca&&e){e.empty.fire()}},_queueHooks:function(b6,i){var e=i+"queueHooks";return bI._data(b6,e)||bI._data(b6,e,{empty:bI.Callbacks("once memory").add(function(){bI._removeData(b6,i+"queue");bI._removeData(b6,e)})})}});bI.fn.extend({queue:function(e,i){var b6=2;if(typeof e!=="string"){i=e;e="fx";b6--}if(arguments.length<b6){return bI.queue(this[0],e)}return i===undefined?this:this.each(function(){var b7=bI.queue(this,e,i);bI._queueHooks(this,e);if(e==="fx"&&b7[0]!=="inprogress"){bI.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){bI.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(b7,cb){var b6,b8=1,cc=bI.Deferred(),ca=this,e=this.length,b9=function(){if(!(--b8)){cc.resolveWith(ca,[ca])}};if(typeof b7!=="string"){cb=b7;b7=undefined}b7=b7||"fx";while(e--){b6=bI._data(ca[e],b7+"queueHooks");if(b6&&b6.empty){b8++;b6.empty.add(b9)}}b9();return cc.promise(cb)}});var aE=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var bT=["Top","Right","Bottom","Left"];var S=function(i,e){i=e||i;return bI.css(i,"display")==="none"||!bI.contains(i.ownerDocument,i)};var aB=bI.access=function(e,ca,cc,cb,b8,ce,cd){var b7=0,b6=e.length,b9=cc==null;if(bI.type(cc)==="object"){b8=true;for(b7 in cc){bI.access(e,ca,b7,cc[b7],true,ce,cd)}}else{if(cb!==undefined){b8=true;if(!bI.isFunction(cb)){cd=true}if(b9){if(cd){ca.call(e,cb);ca=null}else{b9=ca;ca=function(cf,i,cg){return b9.call(bI(cf),cg)}}}if(ca){for(;b7<b6;b7++){ca(e[b7],cc,cd?cb:cb.call(e[b7],b7,ca(e[b7],cc)))}}}}return b8?e:b9?ca.call(e):b6?ca(e[0],cc):ce};var aM=(/^(?:checkbox|radio)$/i);(function(){var i=n.createElement("input"),b8=n.createElement("div"),b6=n.createDocumentFragment();b8.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";D.leadingWhitespace=b8.firstChild.nodeType===3;D.tbody=!b8.getElementsByTagName("tbody").length;D.htmlSerialize=!!b8.getElementsByTagName("link").length;D.html5Clone=n.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>";i.type="checkbox";i.checked=true;b6.appendChild(i);D.appendChecked=i.checked;b8.innerHTML="<textarea>x</textarea>";D.noCloneChecked=!!b8.cloneNode(true).lastChild.defaultValue;b6.appendChild(b8);b8.innerHTML="<input type='radio' checked='checked' name='t'/>";D.checkClone=b8.cloneNode(true).cloneNode(true).lastChild.checked;D.noCloneEvent=true;if(b8.attachEvent){b8.attachEvent("onclick",function(){D.noCloneEvent=false});b8.cloneNode(true).click()}if(D.deleteExpando==null){D.deleteExpando=true;try{delete b8.test}catch(b7){D.deleteExpando=false}}})();(function(){var b6,e,b7=n.createElement("div");for(b6 in {submit:true,change:true,focusin:true}){e="on"+b6;if(!(D[b6+"Bubbles"]=e in a5)){b7.setAttribute(e,"t");D[b6+"Bubbles"]=b7.attributes[e].expando===false}}b7=null})();var bG=/^(?:input|select|textarea)$/i,a6=/^key/,bM=/^(?:mouse|pointer|contextmenu)|click/,bC=/^(?:focusinfocus|focusoutblur)$/,bx=/^([^.]*)(?:\.(.+)|)$/;function U(){return true}function Z(){return false}function am(){try{return n.activeElement}catch(e){}}bI.event={global:{},add:function(b8,cd,ci,ca,b9){var cb,cj,ck,b6,cf,cc,ch,b7,cg,e,i,ce=bI._data(b8);if(!ce){return}if(ci.handler){b6=ci;ci=b6.handler;b9=b6.selector}if(!ci.guid){ci.guid=bI.guid++}if(!(cj=ce.events)){cj=ce.events={}}if(!(cc=ce.handle)){cc=ce.handle=function(cl){return typeof bI!==aC&&(!cl||bI.event.triggered!==cl.type)?bI.event.dispatch.apply(cc.elem,arguments):undefined};cc.elem=b8}cd=(cd||"").match(aF)||[""];ck=cd.length;while(ck--){cb=bx.exec(cd[ck])||[];cg=i=cb[1];e=(cb[2]||"").split(".").sort();if(!cg){continue}cf=bI.event.special[cg]||{};cg=(b9?cf.delegateType:cf.bindType)||cg;cf=bI.event.special[cg]||{};ch=bI.extend({type:cg,origType:i,data:ca,handler:ci,guid:ci.guid,selector:b9,needsContext:b9&&bI.expr.match.needsContext.test(b9),namespace:e.join(".")},b6);if(!(b7=cj[cg])){b7=cj[cg]=[];b7.delegateCount=0;if(!cf.setup||cf.setup.call(b8,ca,e,cc)===false){if(b8.addEventListener){b8.addEventListener(cg,cc,false)}else{if(b8.attachEvent){b8.attachEvent("on"+cg,cc)}}}}if(cf.add){cf.add.call(b8,ch);if(!ch.handler.guid){ch.handler.guid=ci.guid}}if(b9){b7.splice(b7.delegateCount++,0,ch)}else{b7.push(ch)}bI.event.global[cg]=true}b8=null},remove:function(b7,cd,ck,b8,cc){var ca,ch,cb,b9,cj,ci,cf,b6,cg,e,i,ce=bI.hasData(b7)&&bI._data(b7);if(!ce||!(ci=ce.events)){return}cd=(cd||"").match(aF)||[""];cj=cd.length;while(cj--){cb=bx.exec(cd[cj])||[];cg=i=cb[1];e=(cb[2]||"").split(".").sort();if(!cg){for(cg in ci){bI.event.remove(b7,cg+cd[cj],ck,b8,true)}continue}cf=bI.event.special[cg]||{};cg=(b8?cf.delegateType:cf.bindType)||cg;b6=ci[cg]||[];cb=cb[2]&&new RegExp("(^|\\.)"+e.join("\\.(?:.*\\.|)")+"(\\.|$)");b9=ca=b6.length;while(ca--){ch=b6[ca];if((cc||i===ch.origType)&&(!ck||ck.guid===ch.guid)&&(!cb||cb.test(ch.namespace))&&(!b8||b8===ch.selector||b8==="**"&&ch.selector)){b6.splice(ca,1);if(ch.selector){b6.delegateCount--}if(cf.remove){cf.remove.call(b7,ch)}}}if(b9&&!b6.length){if(!cf.teardown||cf.teardown.call(b7,e,ce.handle)===false){bI.removeEvent(b7,cg,ce.handle)}delete ci[cg]}}if(bI.isEmptyObject(ci)){delete ce.handle;bI._removeData(b7,"events")}},trigger:function(b6,cd,b9,ck){var ce,b8,ci,cj,cg,cc,cb,ca=[b9||n],ch=K.call(b6,"type")?b6.type:b6,b7=K.call(b6,"namespace")?b6.namespace.split("."):[];ci=cc=b9=b9||n;if(b9.nodeType===3||b9.nodeType===8){return}if(bC.test(ch+bI.event.triggered)){return}if(ch.indexOf(".")>=0){b7=ch.split(".");ch=b7.shift();b7.sort()}b8=ch.indexOf(":")<0&&"on"+ch;b6=b6[bI.expando]?b6:new bI.Event(ch,typeof b6==="object"&&b6);b6.isTrigger=ck?2:3;b6.namespace=b7.join(".");b6.namespace_re=b6.namespace?new RegExp("(^|\\.)"+b7.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;b6.result=undefined;if(!b6.target){b6.target=b9}cd=cd==null?[b6]:bI.makeArray(cd,[b6]);cg=bI.event.special[ch]||{};if(!ck&&cg.trigger&&cg.trigger.apply(b9,cd)===false){return}if(!ck&&!cg.noBubble&&!bI.isWindow(b9)){cj=cg.delegateType||ch;if(!bC.test(cj+ch)){ci=ci.parentNode}for(;ci;ci=ci.parentNode){ca.push(ci);cc=ci}if(cc===(b9.ownerDocument||n)){ca.push(cc.defaultView||cc.parentWindow||a5)}}cb=0;while((ci=ca[cb++])&&!b6.isPropagationStopped()){b6.type=cb>1?cj:cg.bindType||ch;ce=(bI._data(ci,"events")||{})[b6.type]&&bI._data(ci,"handle");if(ce){ce.apply(ci,cd)}ce=b8&&ci[b8];if(ce&&ce.apply&&bI.acceptData(ci)){b6.result=ce.apply(ci,cd);if(b6.result===false){b6.preventDefault()}}}b6.type=ch;if(!ck&&!b6.isDefaultPrevented()){if((!cg._default||cg._default.apply(ca.pop(),cd)===false)&&bI.acceptData(b9)){if(b8&&b9[ch]&&!bI.isWindow(b9)){cc=b9[b8];if(cc){b9[b8]=null}bI.event.triggered=ch;try{b9[ch]()}catch(cf){}bI.event.triggered=undefined;if(cc){b9[b8]=cc}}}}return b6.result},dispatch:function(e){e=bI.event.fix(e);var b9,ca,ce,b6,b8,cd=[],cc=P.call(arguments),b7=(bI._data(this,"events")||{})[e.type]||[],cb=bI.event.special[e.type]||{};cc[0]=e;e.delegateTarget=this;if(cb.preDispatch&&cb.preDispatch.call(this,e)===false){return}cd=bI.event.handlers.call(this,e,b7);b9=0;while((b6=cd[b9++])&&!e.isPropagationStopped()){e.currentTarget=b6.elem;b8=0;while((ce=b6.handlers[b8++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(ce.namespace)){e.handleObj=ce;e.data=ce.data;ca=((bI.event.special[ce.origType]||{}).handle||ce.handler).apply(b6.elem,cc);if(ca!==undefined){if((e.result=ca)===false){e.preventDefault();e.stopPropagation()}}}}}if(cb.postDispatch){cb.postDispatch.call(this,e)}return e.result},handlers:function(e,b7){var b6,cc,ca,b9,cb=[],b8=b7.delegateCount,cd=e.target;if(b8&&cd.nodeType&&(!e.button||e.type!=="click")){for(;cd!=this;cd=cd.parentNode||this){if(cd.nodeType===1&&(cd.disabled!==true||e.type!=="click")){ca=[];for(b9=0;b9<b8;b9++){cc=b7[b9];b6=cc.selector+" ";if(ca[b6]===undefined){ca[b6]=cc.needsContext?bI(b6,this).index(cd)>=0:bI.find(b6,this,null,[cd]).length}if(ca[b6]){ca.push(cc)}}if(ca.length){cb.push({elem:cd,handlers:ca})}}}}if(b8<b7.length){cb.push({elem:this,handlers:b7.slice(b8)})}return cb},fix:function(b8){if(b8[bI.expando]){return b8}var b6,cb,ca,b7=b8.type,e=b8,b9=this.fixHooks[b7];if(!b9){this.fixHooks[b7]=b9=bM.test(b7)?this.mouseHooks:a6.test(b7)?this.keyHooks:{}}ca=b9.props?this.props.concat(b9.props):this.props;b8=new bI.Event(e);b6=ca.length;while(b6--){cb=ca[b6];b8[cb]=e[cb]}if(!b8.target){b8.target=e.srcElement||n}if(b8.target.nodeType===3){b8.target=b8.target.parentNode}b8.metaKey=!!b8.metaKey;return b9.filter?b9.filter(b8,e):b8},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(i,e){if(i.which==null){i.which=e.charCode!=null?e.charCode:e.keyCode}return i}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(b7,b6){var e,b8,b9,i=b6.button,ca=b6.fromElement;if(b7.pageX==null&&b6.clientX!=null){b8=b7.target.ownerDocument||n;b9=b8.documentElement;e=b8.body;b7.pageX=b6.clientX+(b9&&b9.scrollLeft||e&&e.scrollLeft||0)-(b9&&b9.clientLeft||e&&e.clientLeft||0);b7.pageY=b6.clientY+(b9&&b9.scrollTop||e&&e.scrollTop||0)-(b9&&b9.clientTop||e&&e.clientTop||0)}if(!b7.relatedTarget&&ca){b7.relatedTarget=ca===b7.target?b6.toElement:ca}if(!b7.which&&i!==undefined){b7.which=(i&1?1:(i&2?3:(i&4?2:0)))}return b7}},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==am()&&this.focus){try{this.focus();return false}catch(i){}}},delegateType:"focusin"},blur:{trigger:function(){if(this===am()&&this.blur){this.blur();return false}},delegateType:"focusout"},click:{trigger:function(){if(bI.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}},_default:function(e){return bI.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){if(e.result!==undefined&&e.originalEvent){e.originalEvent.returnValue=e.result}}}},simulate:function(b6,b8,b7,i){var b9=bI.extend(new bI.Event(),b7,{type:b6,isSimulated:true,originalEvent:{}});if(i){bI.event.trigger(b9,null,b8)}else{bI.event.dispatch.call(b8,b9)}if(b9.isDefaultPrevented()){b7.preventDefault()}}};bI.removeEvent=n.removeEventListener?function(i,e,b6){if(i.removeEventListener){i.removeEventListener(e,b6,false)}}:function(b6,i,b7){var e="on"+i;if(b6.detachEvent){if(typeof b6[e]===aC){b6[e]=null}b6.detachEvent(e,b7)}};bI.Event=function(i,e){if(!(this instanceof bI.Event)){return new bI.Event(i,e)}if(i&&i.type){this.originalEvent=i;this.type=i.type;this.isDefaultPrevented=i.defaultPrevented||i.defaultPrevented===undefined&&i.returnValue===false?U:Z}else{this.type=i}if(e){bI.extend(this,e)}this.timeStamp=i&&i.timeStamp||bI.now();this[bI.expando]=true};bI.Event.prototype={isDefaultPrevented:Z,isPropagationStopped:Z,isImmediatePropagationStopped:Z,preventDefault:function(){var i=this.originalEvent;this.isDefaultPrevented=U;if(!i){return}if(i.preventDefault){i.preventDefault()}else{i.returnValue=false}},stopPropagation:function(){var i=this.originalEvent;this.isPropagationStopped=U;if(!i){return}if(i.stopPropagation){i.stopPropagation()}i.cancelBubble=true},stopImmediatePropagation:function(){var i=this.originalEvent;this.isImmediatePropagationStopped=U;if(i&&i.stopImmediatePropagation){i.stopImmediatePropagation()}this.stopPropagation()}};bI.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(i,e){bI.event.special[i]={delegateType:e,bindType:e,handle:function(b8){var b6,ca=this,b9=b8.relatedTarget,b7=b8.handleObj;if(!b9||(b9!==ca&&!bI.contains(ca,b9))){b8.type=b7.origType;b6=b7.handler.apply(this,arguments);b8.type=e}return b6}}});if(!D.submitBubbles){bI.event.special.submit={setup:function(){if(bI.nodeName(this,"form")){return false}bI.event.add(this,"click._submit keypress._submit",function(b7){var b6=b7.target,i=bI.nodeName(b6,"input")||bI.nodeName(b6,"button")?b6.form:undefined;if(i&&!bI._data(i,"submitBubbles")){bI.event.add(i,"submit._submit",function(e){e._submit_bubble=true});bI._data(i,"submitBubbles",true)}})},postDispatch:function(e){if(e._submit_bubble){delete e._submit_bubble;if(this.parentNode&&!e.isTrigger){bI.event.simulate("submit",this.parentNode,e,true)}}},teardown:function(){if(bI.nodeName(this,"form")){return false}bI.event.remove(this,"._submit")}}}if(!D.changeBubbles){bI.event.special.change={setup:function(){if(bG.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){bI.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});bI.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false}bI.event.simulate("change",this,e,true)})}return false}bI.event.add(this,"beforeactivate._change",function(b6){var i=b6.target;if(bG.test(i.nodeName)&&!bI._data(i,"changeBubbles")){bI.event.add(i,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){bI.event.simulate("change",this.parentNode,e,true)}});bI._data(i,"changeBubbles",true)}})},handle:function(i){var e=i.target;if(this!==e||i.isSimulated||i.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return i.handleObj.handler.apply(this,arguments)}},teardown:function(){bI.event.remove(this,"._change");return !bG.test(this.nodeName)}}}if(!D.focusinBubbles){bI.each({focus:"focusin",blur:"focusout"},function(b6,e){var i=function(b7){bI.event.simulate(e,b7.target,bI.event.fix(b7),true)};bI.event.special[e]={setup:function(){var b8=this.ownerDocument||this,b7=bI._data(b8,e);if(!b7){b8.addEventListener(b6,i,true)}bI._data(b8,e,(b7||0)+1)},teardown:function(){var b8=this.ownerDocument||this,b7=bI._data(b8,e)-1;if(!b7){b8.removeEventListener(b6,i,true);bI._removeData(b8,e)}else{bI._data(b8,e,b7)}}}})}bI.fn.extend({on:function(b6,e,b9,b8,i){var b7,ca;if(typeof b6==="object"){if(typeof e!=="string"){b9=b9||e;e=undefined}for(b7 in b6){this.on(b7,e,b9,b6[b7],i)}return this}if(b9==null&&b8==null){b8=e;b9=e=undefined}else{if(b8==null){if(typeof e==="string"){b8=b9;b9=undefined}else{b8=b9;b9=e;e=undefined}}}if(b8===false){b8=Z}else{if(!b8){return this}}if(i===1){ca=b8;b8=function(cb){bI().off(cb);return ca.apply(this,arguments)};b8.guid=ca.guid||(ca.guid=bI.guid++)}return this.each(function(){bI.event.add(this,b6,b8,b9,e)})},one:function(i,e,b7,b6){return this.on(i,e,b7,b6,1)},off:function(b6,e,b8){var i,b7;if(b6&&b6.preventDefault&&b6.handleObj){i=b6.handleObj;bI(b6.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler);return this}if(typeof b6==="object"){for(b7 in b6){this.off(b7,e,b6[b7])}return this}if(e===false||typeof e==="function"){b8=e;e=undefined}if(b8===false){b8=Z}return this.each(function(){bI.event.remove(this,b6,b8,e)})},trigger:function(e,i){return this.each(function(){bI.event.trigger(e,i,this)})},triggerHandler:function(e,b6){var i=this[0];if(i){return bI.event.trigger(e,b6,i,true)}}});function B(e){var b6=d.split("|"),i=e.createDocumentFragment();if(i.createElement){while(b6.length){i.createElement(b6.pop())}}return i}var d="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",aD=/ jQuery\d+="(?:null|\d+)"/g,M=new RegExp("<(?:"+d+")[\\s/>]","i"),b5=/^\s+/,aH=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,o=/<([\w:]+)/,b0=/<tbody/i,L=/<|&#?\w+;/,an=/<(?:script|style|link)/i,bW=/checked\s*(?:[^=]|=\s*.checked.)/i,bB=/^$|\/(?:java|ecma)script/i,ar=/^true\/(.*)/,aO=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,W={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:D.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},aT=B(n),k=aT.appendChild(n.createElement("div"));W.optgroup=W.option;W.tbody=W.tfoot=W.colgroup=W.caption=W.thead;W.th=W.td;function l(b8,e){var b6,b9,b7=0,ca=typeof b8.getElementsByTagName!==aC?b8.getElementsByTagName(e||"*"):typeof b8.querySelectorAll!==aC?b8.querySelectorAll(e||"*"):undefined;if(!ca){for(ca=[],b6=b8.childNodes||b8;(b9=b6[b7])!=null;b7++){if(!e||bI.nodeName(b9,e)){ca.push(b9)}else{bI.merge(ca,l(b9,e))}}}return e===undefined||e&&bI.nodeName(b8,e)?bI.merge([b8],ca):ca}function bY(e){if(aM.test(e.type)){e.defaultChecked=e.checked}}function a3(i,e){return bI.nodeName(i,"table")&&bI.nodeName(e.nodeType!==11?e:e.firstChild,"tr")?i.getElementsByTagName("tbody")[0]||i.appendChild(i.ownerDocument.createElement("tbody")):i}function u(e){e.type=(bI.find.attr(e,"type")!==null)+"/"+e.type;return e}function bf(i){var e=ar.exec(i.type);if(e){i.type=e[1]}else{i.removeAttribute("type")}return i}function bu(e,b7){var b8,b6=0;for(;(b8=e[b6])!=null;b6++){bI._data(b8,"globalEval",!b7||bI._data(b7[b6],"globalEval"))}}function at(cc,b6){if(b6.nodeType!==1||!bI.hasData(cc)){return}var b9,b8,e,cb=bI._data(cc),ca=bI._data(b6,cb),b7=cb.events;if(b7){delete ca.handle;ca.events={};for(b9 in b7){for(b8=0,e=b7[b9].length;b8<e;b8++){bI.event.add(b6,b9,b7[b9][b8])}}}if(ca.data){ca.data=bI.extend({},ca.data)}}function T(b8,i){var b9,b7,b6;if(i.nodeType!==1){return}b9=i.nodeName.toLowerCase();if(!D.noCloneEvent&&i[bI.expando]){b6=bI._data(i);for(b7 in b6.events){bI.removeEvent(i,b7,b6.handle)}i.removeAttribute(bI.expando)}if(b9==="script"&&i.text!==b8.text){u(i).text=b8.text;bf(i)}else{if(b9==="object"){if(i.parentNode){i.outerHTML=b8.outerHTML}if(D.html5Clone&&(b8.innerHTML&&!bI.trim(i.innerHTML))){i.innerHTML=b8.innerHTML}}else{if(b9==="input"&&aM.test(b8.type)){i.defaultChecked=i.checked=b8.checked;if(i.value!==b8.value){i.value=b8.value}}else{if(b9==="option"){i.defaultSelected=i.selected=b8.defaultSelected}else{if(b9==="input"||b9==="textarea"){i.defaultValue=b8.defaultValue}}}}}}bI.extend({clone:function(b6,b8,e){var ca,b7,cd,b9,cb,cc=bI.contains(b6.ownerDocument,b6);if(D.html5Clone||bI.isXMLDoc(b6)||!M.test("<"+b6.nodeName+">")){cd=b6.cloneNode(true)}else{k.innerHTML=b6.outerHTML;k.removeChild(cd=k.firstChild)}if((!D.noCloneEvent||!D.noCloneChecked)&&(b6.nodeType===1||b6.nodeType===11)&&!bI.isXMLDoc(b6)){ca=l(cd);cb=l(b6);for(b9=0;(b7=cb[b9])!=null;++b9){if(ca[b9]){T(b7,ca[b9])}}}if(b8){if(e){cb=cb||l(b6);ca=ca||l(cd);for(b9=0;(b7=cb[b9])!=null;b9++){at(b7,ca[b9])}}else{at(b6,cd)}}ca=l(cd,"script");if(ca.length>0){bu(ca,!cc&&l(b6,"script"))}ca=cb=b7=null;return cd},buildFragment:function(b6,b8,cd,ci){var ce,ca,cc,ch,cj,cg,b7,cb=b6.length,b9=B(b8),e=[],cf=0;for(;cf<cb;cf++){ca=b6[cf];if(ca||ca===0){if(bI.type(ca)==="object"){bI.merge(e,ca.nodeType?[ca]:ca)}else{if(!L.test(ca)){e.push(b8.createTextNode(ca))}else{ch=ch||b9.appendChild(b8.createElement("div"));cj=(o.exec(ca)||["",""])[1].toLowerCase();b7=W[cj]||W._default;ch.innerHTML=b7[1]+ca.replace(aH,"<$1></$2>")+b7[2];ce=b7[0];while(ce--){ch=ch.lastChild}if(!D.leadingWhitespace&&b5.test(ca)){e.push(b8.createTextNode(b5.exec(ca)[0]))}if(!D.tbody){ca=cj==="table"&&!b0.test(ca)?ch.firstChild:b7[1]==="<table>"&&!b0.test(ca)?ch:0;ce=ca&&ca.childNodes.length;while(ce--){if(bI.nodeName((cg=ca.childNodes[ce]),"tbody")&&!cg.childNodes.length){ca.removeChild(cg)}}}bI.merge(e,ch.childNodes);ch.textContent="";while(ch.firstChild){ch.removeChild(ch.firstChild)}ch=b9.lastChild}}}}if(ch){b9.removeChild(ch)}if(!D.appendChecked){bI.grep(l(e,"input"),bY)}cf=0;while((ca=e[cf++])){if(ci&&bI.inArray(ca,ci)!==-1){continue}cc=bI.contains(ca.ownerDocument,ca);ch=l(b9.appendChild(ca),"script");if(cc){bu(ch)}if(cd){ce=0;while((ca=ch[ce++])){if(bB.test(ca.type||"")){cd.push(ca)}}}}ch=null;return b9},cleanData:function(b6,ce){var b8,cd,b7,b9,ca=0,cf=bI.expando,e=bI.cache,cb=D.deleteExpando,cc=bI.event.special;for(;(b8=b6[ca])!=null;ca++){if(ce||bI.acceptData(b8)){b7=b8[cf];b9=b7&&e[b7];if(b9){if(b9.events){for(cd in b9.events){if(cc[cd]){bI.event.remove(b8,cd)}else{bI.removeEvent(b8,cd,b9.handle)}}}if(e[b7]){delete e[b7];if(cb){delete b8[cf]}else{if(typeof b8.removeAttribute!==aC){b8.removeAttribute(cf)}else{b8[cf]=null}}aP.push(b7)}}}}}});bI.fn.extend({text:function(e){return aB(this,function(i){return i===undefined?bI.text(this):this.empty().append((this[0]&&this[0].ownerDocument||n).createTextNode(i))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=a3(this,e);i.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=a3(this,e);i.insertBefore(e,i.firstChild)}})},before:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,b9){var b8,b6=e?bI.filter(e,this):this,b7=0;for(;(b8=b6[b7])!=null;b7++){if(!b9&&b8.nodeType===1){bI.cleanData(l(b8))}if(b8.parentNode){if(b9&&bI.contains(b8.ownerDocument,b8)){bu(l(b8,"script"))}b8.parentNode.removeChild(b8)}}return this},empty:function(){var b6,e=0;for(;(b6=this[e])!=null;e++){if(b6.nodeType===1){bI.cleanData(l(b6,false))}while(b6.firstChild){b6.removeChild(b6.firstChild)}if(b6.options&&bI.nodeName(b6,"select")){b6.options.length=0}}return this},clone:function(i,e){i=i==null?false:i;e=e==null?i:e;return this.map(function(){return bI.clone(this,i,e)})},html:function(e){return aB(this,function(b9){var b8=this[0]||{},b7=0,b6=this.length;if(b9===undefined){return b8.nodeType===1?b8.innerHTML.replace(aD,""):undefined}if(typeof b9==="string"&&!an.test(b9)&&(D.htmlSerialize||!M.test(b9))&&(D.leadingWhitespace||!b5.test(b9))&&!W[(o.exec(b9)||["",""])[1].toLowerCase()]){b9=b9.replace(aH,"<$1></$2>");try{for(;b7<b6;b7++){b8=this[b7]||{};if(b8.nodeType===1){bI.cleanData(l(b8,false));b8.innerHTML=b9}}b8=0}catch(ca){}}if(b8){this.empty().append(b9)}},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];this.domManip(arguments,function(i){e=this.parentNode;bI.cleanData(l(this));if(e){e.replaceChild(i,this)}});return e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,true)},domManip:function(cd,ci){cd=az.apply([],cd);var cb,b7,e,b9,cg,cc,ca=0,b8=this.length,cf=this,ch=b8-1,ce=cd[0],b6=bI.isFunction(ce);if(b6||(b8>1&&typeof ce==="string"&&!D.checkClone&&bW.test(ce))){return this.each(function(cj){var i=cf.eq(cj);if(b6){cd[0]=ce.call(this,cj,i.html())}i.domManip(cd,ci)})}if(b8){cc=bI.buildFragment(cd,this[0].ownerDocument,false,this);cb=cc.firstChild;if(cc.childNodes.length===1){cc=cb}if(cb){b9=bI.map(l(cc,"script"),u);e=b9.length;for(;ca<b8;ca++){b7=cc;if(ca!==ch){b7=bI.clone(b7,true,true);if(e){bI.merge(b9,l(b7,"script"))}}ci.call(this[ca],b7,ca)}if(e){cg=b9[b9.length-1].ownerDocument;bI.map(b9,bf);for(ca=0;ca<e;ca++){b7=b9[ca];if(bB.test(b7.type||"")&&!bI._data(b7,"globalEval")&&bI.contains(cg,b7)){if(b7.src){if(bI._evalUrl){bI._evalUrl(b7.src)}}else{bI.globalEval((b7.text||b7.textContent||b7.innerHTML||"").replace(aO,""))}}}}cc=cb=null}}return this}});bI.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,i){bI.fn[e]=function(b6){var b7,b9=0,b8=[],cb=bI(b6),ca=cb.length-1;for(;b9<=ca;b9++){b7=b9===ca?this:this.clone(true);bI(cb[b9])[i](b7);x.apply(b8,b7.get())}return this.pushStack(b8)}});var aI,bl={};function a4(e,b8){var i,b6=bI(b8.createElement(e)).appendTo(b8.body),b7=a5.getDefaultComputedStyle&&(i=a5.getDefaultComputedStyle(b6[0]))?i.display:bI.css(b6[0],"display");b6.detach();return b7}function a0(b6){var i=n,e=bl[b6];if(!e){e=a4(b6,i);if(e==="none"||!e){aI=(aI||bI("<iframe frameborder='0' width='0' height='0'/>")).appendTo(i.documentElement);i=(aI[0].contentWindow||aI[0].contentDocument).document;i.write();i.close();e=a4(b6,i);aI.detach()}bl[b6]=e}return e}(function(){var e;D.shrinkWrapBlocks=function(){if(e!=null){return e}e=false;var b7,i,b6;i=n.getElementsByTagName("body")[0];if(!i||!i.style){return}b7=n.createElement("div");b6=n.createElement("div");b6.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";i.appendChild(b6).appendChild(b7);if(typeof b7.style.zoom!==aC){b7.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1";b7.appendChild(n.createElement("div")).style.width="5px";e=b7.offsetWidth!==3}i.removeChild(b6);return e}})();var aZ=(/^margin/);var Y=new RegExp("^("+aE+")(?!px)[a-z%]+$","i");var bq,G,bo=/^(top|right|bottom|left)$/;if(a5.getComputedStyle){bq=function(e){if(e.ownerDocument.defaultView.opener){return e.ownerDocument.defaultView.getComputedStyle(e,null)}return a5.getComputedStyle(e,null)};G=function(cb,i,ca){var b8,b7,b9,e,b6=cb.style;ca=ca||bq(cb);e=ca?ca.getPropertyValue(i)||ca[i]:undefined;if(ca){if(e===""&&!bI.contains(cb.ownerDocument,cb)){e=bI.style(cb,i)}if(Y.test(e)&&aZ.test(i)){b8=b6.width;b7=b6.minWidth;b9=b6.maxWidth;b6.minWidth=b6.maxWidth=b6.width=e;e=ca.width;b6.width=b8;b6.minWidth=b7;b6.maxWidth=b9}}return e===undefined?e:e+""}}else{if(n.documentElement.currentStyle){bq=function(e){return e.currentStyle};G=function(ca,b7,b9){var cb,i,e,b6,b8=ca.style;b9=b9||bq(ca);b6=b9?b9[b7]:undefined;if(b6==null&&b8&&b8[b7]){b6=b8[b7]}if(Y.test(b6)&&!bo.test(b7)){cb=b8.left;i=ca.runtimeStyle;e=i&&i.left;if(e){i.left=ca.currentStyle.left}b8.left=b7==="fontSize"?"1em":b6;b6=b8.pixelLeft+"px";b8.left=cb;if(e){i.left=e}}return b6===undefined?b6:b6+""||"auto"}}}function a7(e,i){return{get:function(){var b6=e();if(b6==null){return}if(b6){delete this.get;return}return(this.get=i).apply(this,arguments)}}}(function(){var cb,b9,b7,ca,b6,b8,i;cb=n.createElement("div");cb.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";b7=cb.getElementsByTagName("a")[0];b9=b7&&b7.style;if(!b9){return}b9.cssText="float:left;opacity:.5";D.opacity=b9.opacity==="0.5";D.cssFloat=!!b9.cssFloat;cb.style.backgroundClip="content-box";cb.cloneNode(true).style.backgroundClip="";D.clearCloneStyle=cb.style.backgroundClip==="content-box";D.boxSizing=b9.boxSizing===""||b9.MozBoxSizing===""||b9.WebkitBoxSizing==="";bI.extend(D,{reliableHiddenOffsets:function(){if(b8==null){e()}return b8},boxSizingReliable:function(){if(b6==null){e()}return b6},pixelPosition:function(){if(ca==null){e()}return ca},reliableMarginRight:function(){if(i==null){e()}return i}});function e(){var cf,cc,cd,ce;cc=n.getElementsByTagName("body")[0];if(!cc||!cc.style){return}cf=n.createElement("div");cd=n.createElement("div");cd.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";cc.appendChild(cd).appendChild(cf);cf.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute";ca=b6=false;i=true;if(a5.getComputedStyle){ca=(a5.getComputedStyle(cf,null)||{}).top!=="1%";b6=(a5.getComputedStyle(cf,null)||{width:"4px"}).width==="4px";ce=cf.appendChild(n.createElement("div"));ce.style.cssText=cf.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0";ce.style.marginRight=ce.style.width="0";cf.style.width="1px";i=!parseFloat((a5.getComputedStyle(ce,null)||{}).marginRight);cf.removeChild(ce)}cf.innerHTML="<table><tr><td></td><td>t</td></tr></table>";ce=cf.getElementsByTagName("td");ce[0].style.cssText="margin:0;border:0;padding:0;display:none";b8=ce[0].offsetHeight===0;if(b8){ce[0].style.display="";ce[1].style.display="none";b8=ce[0].offsetHeight===0}cc.removeChild(cd)}})();bI.swap=function(b9,b8,ca,b7){var b6,i,e={};for(i in b8){e[i]=b9.style[i];b9.style[i]=b8[i]}b6=ca.apply(b9,b7||[]);for(i in b8){b9.style[i]=e[i]}return b6};var bj=/alpha\([^)]*\)/i,aU=/opacity\s*=\s*([^)]*)/,H=/^(none|table(?!-c[ea]).+)/,bb=new RegExp("^("+aE+")(.*)$","i"),V=new RegExp("^([+-])=("+aE+")","i"),be={position:"absolute",visibility:"hidden",display:"block"},bD={letterSpacing:"0",fontWeight:"400"},aw=["Webkit","O","Moz","ms"];function c(b8,b6){if(b6 in b8){return b6}var b9=b6.charAt(0).toUpperCase()+b6.slice(1),e=b6,b7=aw.length;while(b7--){b6=aw[b7]+b9;if(b6 in b8){return b6}}return e}function s(ca,e){var cb,b8,b9,i=[],b6=0,b7=ca.length;for(;b6<b7;b6++){b8=ca[b6];if(!b8.style){continue}i[b6]=bI._data(b8,"olddisplay");cb=b8.style.display;if(e){if(!i[b6]&&cb==="none"){b8.style.display=""}if(b8.style.display===""&&S(b8)){i[b6]=bI._data(b8,"olddisplay",a0(b8.nodeName))}}else{b9=S(b8);if(cb&&cb!=="none"||!b9){bI._data(b8,"olddisplay",b9?cb:bI.css(b8,"display"))}}}for(b6=0;b6<b7;b6++){b8=ca[b6];if(!b8.style){continue}if(!e||b8.style.display==="none"||b8.style.display===""){b8.style.display=e?i[b6]||"":"none"}}return ca}function aN(e,b6,b7){var i=bb.exec(b6);return i?Math.max(0,i[1]-(b7||0))+(i[2]||"px"):b6}function ax(b9,b6,e,cb,b8){var b7=e===(cb?"border":"content")?4:b6==="width"?1:0,ca=0;for(;b7<4;b7+=2){if(e==="margin"){ca+=bI.css(b9,e+bT[b7],true,b8)}if(cb){if(e==="content"){ca-=bI.css(b9,"padding"+bT[b7],true,b8)}if(e!=="margin"){ca-=bI.css(b9,"border"+bT[b7]+"Width",true,b8)}}else{ca+=bI.css(b9,"padding"+bT[b7],true,b8);if(e!=="padding"){ca+=bI.css(b9,"border"+bT[b7]+"Width",true,b8)}}}return ca}function v(b8,i,e){var b7=true,b9=i==="width"?b8.offsetWidth:b8.offsetHeight,b6=bq(b8),ca=D.boxSizing&&bI.css(b8,"boxSizing",false,b6)==="border-box";if(b9<=0||b9==null){b9=G(b8,i,b6);if(b9<0||b9==null){b9=b8.style[i]}if(Y.test(b9)){return b9}b7=ca&&(D.boxSizingReliable()||b9===b8.style[i]);b9=parseFloat(b9)||0}return(b9+ax(b8,i,e||(ca?"border":"content"),b7,b6))+"px"}bI.extend({cssHooks:{opacity:{get:function(b6,i){if(i){var e=G(b6,"opacity");return e===""?"1":e}}}},cssNumber:{columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":D.cssFloat?"cssFloat":"styleFloat"},style:function(b7,b6,cd,b8){if(!b7||b7.nodeType===3||b7.nodeType===8||!b7.style){return}var cb,cc,ce,b9=bI.camelCase(b6),i=b7.style;b6=bI.cssProps[b9]||(bI.cssProps[b9]=c(i,b9));ce=bI.cssHooks[b6]||bI.cssHooks[b9];if(cd!==undefined){cc=typeof cd;if(cc==="string"&&(cb=V.exec(cd))){cd=(cb[1]+1)*cb[2]+parseFloat(bI.css(b7,b6));cc="number"}if(cd==null||cd!==cd){return}if(cc==="number"&&!bI.cssNumber[b9]){cd+="px"}if(!D.clearCloneStyle&&cd===""&&b6.indexOf("background")===0){i[b6]="inherit"}if(!ce||!("set" in ce)||(cd=ce.set(b7,cd,b8))!==undefined){try{i[b6]=cd}catch(ca){}}}else{if(ce&&"get" in ce&&(cb=ce.get(b7,false,b8))!==undefined){return cb}return i[b6]}},css:function(ca,b8,i,b9){var b7,cb,e,b6=bI.camelCase(b8);b8=bI.cssProps[b6]||(bI.cssProps[b6]=c(ca.style,b6));e=bI.cssHooks[b8]||bI.cssHooks[b6];if(e&&"get" in e){cb=e.get(ca,true,i)}if(cb===undefined){cb=G(ca,b8,b9)}if(cb==="normal"&&b8 in bD){cb=bD[b8]}if(i===""||i){b7=parseFloat(cb);return i===true||bI.isNumeric(b7)?b7||0:cb}return cb}});bI.each(["height","width"],function(b6,e){bI.cssHooks[e]={get:function(b8,b7,i){if(b7){return H.test(bI.css(b8,"display"))&&b8.offsetWidth===0?bI.swap(b8,be,function(){return v(b8,e,i)}):v(b8,e,i)}},set:function(b8,b9,i){var b7=i&&bq(b8);return aN(b8,b9,i?ax(b8,e,i,D.boxSizing&&bI.css(b8,"boxSizing",false,b7)==="border-box",b7):0)}}});if(!D.opacity){bI.cssHooks.opacity={get:function(i,e){return aU.test((e&&i.currentStyle?i.currentStyle.filter:i.style.filter)||"")?(0.01*parseFloat(RegExp.$1))+"":e?"1":""},set:function(b8,b9){var b7=b8.style,i=b8.currentStyle,e=bI.isNumeric(b9)?"alpha(opacity="+b9*100+")":"",b6=i&&i.filter||b7.filter||"";b7.zoom=1;if((b9>=1||b9==="")&&bI.trim(b6.replace(bj,""))===""&&b7.removeAttribute){b7.removeAttribute("filter");if(b9===""||i&&!i.filter){return}}b7.filter=bj.test(b6)?b6.replace(bj,e):b6+" "+e}}}bI.cssHooks.marginRight=a7(D.reliableMarginRight,function(i,e){if(e){return bI.swap(i,{display:"inline-block"},G,[i,"marginRight"])}});bI.each({margin:"",padding:"",border:"Width"},function(e,i){bI.cssHooks[e+i]={expand:function(b8){var b7=0,b6={},b9=typeof b8==="string"?b8.split(" "):[b8];for(;b7<4;b7++){b6[e+bT[b7]+i]=b9[b7]||b9[b7-2]||b9[0]}return b6}};if(!aZ.test(e)){bI.cssHooks[e+i].set=aN}});bI.fn.extend({css:function(e,i){return aB(this,function(ca,b7,cb){var b9,b6,cc={},b8=0;if(bI.isArray(b7)){b9=bq(ca);b6=b7.length;for(;b8<b6;b8++){cc[b7[b8]]=bI.css(ca,b7[b8],false,b9)}return cc}return cb!==undefined?bI.style(ca,b7,cb):bI.css(ca,b7)},e,i,arguments.length>1)},show:function(){return s(this,true)},hide:function(){return s(this)},toggle:function(e){if(typeof e==="boolean"){return e?this.show():this.hide()}return this.each(function(){if(S(this)){bI(this).show()}else{bI(this).hide()}})}});function J(b6,i,b8,e,b7){return new J.prototype.init(b6,i,b8,e,b7)}bI.Tween=J;J.prototype={constructor:J,init:function(b7,i,b9,e,b8,b6){this.elem=b7;this.prop=b9;this.easing=b8||"swing";this.options=i;this.start=this.now=this.cur();this.end=e;this.unit=b6||(bI.cssNumber[b9]?"":"px")},cur:function(){var e=J.propHooks[this.prop];return e&&e.get?e.get(this):J.propHooks._default.get(this)},run:function(b6){var i,e=J.propHooks[this.prop];if(this.options.duration){this.pos=i=bI.easing[this.easing](b6,this.options.duration*b6,0,1,this.options.duration)}else{this.pos=i=b6}this.now=(this.end-this.start)*i+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(e&&e.set){e.set(this)}else{J.propHooks._default.set(this)}return this}};J.prototype.init.prototype=J.prototype;J.propHooks={_default:{get:function(i){var e;if(i.elem[i.prop]!=null&&(!i.elem.style||i.elem.style[i.prop]==null)){return i.elem[i.prop]}e=bI.css(i.elem,i.prop,"");return !e||e==="auto"?0:e},set:function(e){if(bI.fx.step[e.prop]){bI.fx.step[e.prop](e)}else{if(e.elem.style&&(e.elem.style[bI.cssProps[e.prop]]!=null||bI.cssHooks[e.prop])){bI.style(e.elem,e.prop,e.now+e.unit)}else{e.elem[e.prop]=e.now}}}}};J.propHooks.scrollTop=J.propHooks.scrollLeft={set:function(e){if(e.elem.nodeType&&e.elem.parentNode){e.elem[e.prop]=e.now}}};bI.easing={linear:function(e){return e},swing:function(e){return 0.5-Math.cos(e*Math.PI)/2}};bI.fx=J.prototype.init;bI.fx.step={};var N,ae,bR=/^(?:toggle|show|hide)$/,bJ=new RegExp("^(?:([+-])=|)("+aE+")([a-z%]*)$","i"),bP=/queueHooks$/,aG=[h],a2={"*":[function(e,ca){var cc=this.createTween(e,ca),b8=cc.cur(),b7=bJ.exec(ca),cb=b7&&b7[3]||(bI.cssNumber[e]?"":"px"),i=(bI.cssNumber[e]||cb!=="px"&&+b8)&&bJ.exec(bI.css(cc.elem,e)),b6=1,b9=20;if(i&&i[3]!==cb){cb=cb||i[3];b7=b7||[];i=+b8||1;do{b6=b6||".5";i=i/b6;bI.style(cc.elem,e,i+cb)}while(b6!==(b6=cc.cur()/b8)&&b6!==1&&--b9)}if(b7){i=cc.start=+i||+b8||0;cc.unit=cb;cc.end=b7[1]?i+(b7[1]+1)*b7[2]:+b7[2]}return cc}]};function bn(){setTimeout(function(){N=undefined});return(N=bI.now())}function bH(b7,b9){var b8,e={height:b7},b6=0;b9=b9?1:0;for(;b6<4;b6+=2-b9){b8=bT[b6];e["margin"+b8]=e["padding"+b8]=b7}if(b9){e.opacity=e.width=b7}return e}function bd(b8,ca,b7){var i,b9=(a2[ca]||[]).concat(a2["*"]),e=0,b6=b9.length;for(;e<b6;e++){if((i=b9[e].call(b7,ca,b8))){return i}}}function h(b7,cc,e){var b6,cf,b9,ci,cj,cg,cb,ce,b8=this,cd={},i=b7.style,ca=b7.nodeType&&S(b7),ch=bI._data(b7,"fxshow");if(!e.queue){cj=bI._queueHooks(b7,"fx");if(cj.unqueued==null){cj.unqueued=0;cg=cj.empty.fire;cj.empty.fire=function(){if(!cj.unqueued){cg()}}}cj.unqueued++;b8.always(function(){b8.always(function(){cj.unqueued--;if(!bI.queue(b7,"fx").length){cj.empty.fire()}})})}if(b7.nodeType===1&&("height" in cc||"width" in cc)){e.overflow=[i.overflow,i.overflowX,i.overflowY];cb=bI.css(b7,"display");ce=cb==="none"?bI._data(b7,"olddisplay")||a0(b7.nodeName):cb;if(ce==="inline"&&bI.css(b7,"float")==="none"){if(!D.inlineBlockNeedsLayout||a0(b7.nodeName)==="inline"){i.display="inline-block"}else{i.zoom=1}}}if(e.overflow){i.overflow="hidden";if(!D.shrinkWrapBlocks()){b8.always(function(){i.overflow=e.overflow[0];i.overflowX=e.overflow[1];i.overflowY=e.overflow[2]})}}for(b6 in cc){cf=cc[b6];if(bR.exec(cf)){delete cc[b6];b9=b9||cf==="toggle";if(cf===(ca?"hide":"show")){if(cf==="show"&&ch&&ch[b6]!==undefined){ca=true}else{continue}}cd[b6]=ch&&ch[b6]||bI.style(b7,b6)}else{cb=undefined}}if(!bI.isEmptyObject(cd)){if(ch){if("hidden" in ch){ca=ch.hidden}}else{ch=bI._data(b7,"fxshow",{})}if(b9){ch.hidden=!ca}if(ca){bI(b7).show()}else{b8.done(function(){bI(b7).hide()})}b8.done(function(){var ck;bI._removeData(b7,"fxshow");for(ck in cd){bI.style(b7,ck,cd[ck])}});for(b6 in cd){ci=bd(ca?ch[b6]:0,b6,b8);if(!(b6 in ch)){ch[b6]=ci.start;if(ca){ci.end=ci.start;ci.start=b6==="width"||b6==="height"?1:0}}}}else{if((cb==="none"?a0(b7.nodeName):cb)==="inline"){i.display=cb}}}function ao(b7,b9){var b6,i,ca,b8,e;for(b6 in b7){i=bI.camelCase(b6);ca=b9[i];b8=b7[b6];if(bI.isArray(b8)){ca=b8[1];b8=b7[b6]=b8[0]}if(b6!==i){b7[i]=b8;delete b7[b6]}e=bI.cssHooks[i];if(e&&"expand" in e){b8=e.expand(b8);delete b7[i];for(b6 in b8){if(!(b6 in b7)){b7[b6]=b8[b6];b9[b6]=ca}}}else{b9[i]=ca}}}function f(b6,ca,cd){var ce,e,b9=0,i=aG.length,cc=bI.Deferred().always(function(){delete b8.elem}),b8=function(){if(e){return false}var ck=N||bn(),ch=Math.max(0,b7.startTime+b7.duration-ck),cf=ch/b7.duration||0,cj=1-cf,cg=0,ci=b7.tweens.length;for(;cg<ci;cg++){b7.tweens[cg].run(cj)}cc.notifyWith(b6,[b7,cj,ch]);if(cj<1&&ci){return ch}else{cc.resolveWith(b6,[b7]);return false}},b7=cc.promise({elem:b6,props:bI.extend({},ca),opts:bI.extend(true,{specialEasing:{}},cd),originalProperties:ca,originalOptions:cd,startTime:N||bn(),duration:cd.duration,tweens:[],createTween:function(ch,cf){var cg=bI.Tween(b6,b7.opts,ch,cf,b7.opts.specialEasing[ch]||b7.opts.easing);b7.tweens.push(cg);return cg},stop:function(cg){var cf=0,ch=cg?b7.tweens.length:0;if(e){return this}e=true;for(;cf<ch;cf++){b7.tweens[cf].run(1)}if(cg){cc.resolveWith(b6,[b7,cg])}else{cc.rejectWith(b6,[b7,cg])}return this}}),cb=b7.props;ao(cb,b7.opts.specialEasing);for(;b9<i;b9++){ce=aG[b9].call(b7,b6,cb,b7.opts);if(ce){return ce}}bI.map(cb,bd,b7);if(bI.isFunction(b7.opts.start)){b7.opts.start.call(b6,b7)}bI.fx.timer(bI.extend(b8,{elem:b6,anim:b7,queue:b7.opts.queue}));return b7.progress(b7.opts.progress).done(b7.opts.done,b7.opts.complete).fail(b7.opts.fail).always(b7.opts.always)}bI.Animation=bI.extend(f,{tweener:function(i,b8){if(bI.isFunction(i)){b8=i;i=["*"]}else{i=i.split(" ")}var b7,e=0,b6=i.length;for(;e<b6;e++){b7=i[e];a2[b7]=a2[b7]||[];a2[b7].unshift(b8)}},prefilter:function(i,e){if(e){aG.unshift(i)}else{aG.push(i)}}});bI.speed=function(b6,b7,i){var e=b6&&typeof b6==="object"?bI.extend({},b6):{complete:i||!i&&b7||bI.isFunction(b6)&&b6,duration:b6,easing:i&&b7||b7&&!bI.isFunction(b7)&&b7};e.duration=bI.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in bI.fx.speeds?bI.fx.speeds[e.duration]:bI.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(){if(bI.isFunction(e.old)){e.old.call(this)}if(e.queue){bI.dequeue(this,e.queue)}};return e};bI.fn.extend({fadeTo:function(e,b7,b6,i){return this.filter(S).css("opacity",0).show().end().animate({opacity:b7},e,b6,i)},animate:function(ca,b7,b9,b8){var b6=bI.isEmptyObject(ca),e=bI.speed(b7,b9,b8),i=function(){var cb=f(this,bI.extend({},ca),e);if(b6||bI._data(this,"finish")){cb.stop(true)}};i.finish=i;return b6||e.queue===false?this.each(i):this.queue(e.queue,i)},stop:function(b6,i,e){var b7=function(b8){var b9=b8.stop;delete b8.stop;b9(e)};if(typeof b6!=="string"){e=i;i=b6;b6=undefined}if(i&&b6!==false){this.queue(b6||"fx",[])}return this.each(function(){var cb=true,b8=b6!=null&&b6+"queueHooks",ca=bI.timers,b9=bI._data(this);if(b8){if(b9[b8]&&b9[b8].stop){b7(b9[b8])}}else{for(b8 in b9){if(b9[b8]&&b9[b8].stop&&bP.test(b8)){b7(b9[b8])}}}for(b8=ca.length;b8--;){if(ca[b8].elem===this&&(b6==null||ca[b8].queue===b6)){ca[b8].anim.stop(e);cb=false;ca.splice(b8,1)}}if(cb||!e){bI.dequeue(this,b6)}})},finish:function(e){if(e!==false){e=e||"fx"}return this.each(function(){var b7,ca=bI._data(this),b6=ca[e+"queue"],i=ca[e+"queueHooks"],b9=bI.timers,b8=b6?b6.length:0;ca.finish=true;bI.queue(this,e,[]);if(i&&i.stop){i.stop.call(this,true)}for(b7=b9.length;b7--;){if(b9[b7].elem===this&&b9[b7].queue===e){b9[b7].anim.stop(true);b9.splice(b7,1)}}for(b7=0;b7<b8;b7++){if(b6[b7]&&b6[b7].finish){b6[b7].finish.call(this)}}delete ca.finish})}});bI.each(["toggle","show","hide"],function(b6,e){var b7=bI.fn[e];bI.fn[e]=function(i,b9,b8){return i==null||typeof i==="boolean"?b7.apply(this,arguments):this.animate(bH(e,true),i,b9,b8)}});bI.each({slideDown:bH("show"),slideUp:bH("hide"),slideToggle:bH("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,i){bI.fn[e]=function(b6,b8,b7){return this.animate(i,b6,b8,b7)}});bI.timers=[];bI.fx.tick=function(){var b7,b6=bI.timers,e=0;N=bI.now();for(;e<b6.length;e++){b7=b6[e];if(!b7()&&b6[e]===b7){b6.splice(e--,1)}}if(!b6.length){bI.fx.stop()}N=undefined};bI.fx.timer=function(e){bI.timers.push(e);if(e()){bI.fx.start()}else{bI.timers.pop()}};bI.fx.interval=13;bI.fx.start=function(){if(!ae){ae=setInterval(bI.fx.tick,bI.fx.interval)}};bI.fx.stop=function(){clearInterval(ae);ae=null};bI.fx.speeds={slow:600,fast:200,_default:400};bI.fn.delay=function(i,e){i=bI.fx?bI.fx.speeds[i]||i:i;e=e||"fx";return this.queue(e,function(b7,b6){var b8=setTimeout(b7,i);b6.stop=function(){clearTimeout(b8)}})};(function(){var b6,b8,e,i,b7;b8=n.createElement("div");b8.setAttribute("className","t");b8.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";i=b8.getElementsByTagName("a")[0];e=n.createElement("select");b7=e.appendChild(n.createElement("option"));b6=b8.getElementsByTagName("input")[0];i.style.cssText="top:1px";D.getSetAttribute=b8.className!=="t";D.style=/top/.test(i.getAttribute("style"));D.hrefNormalized=i.getAttribute("href")==="/a";D.checkOn=!!b6.value;D.optSelected=b7.selected;D.enctype=!!n.createElement("form").enctype;e.disabled=true;D.optDisabled=!b7.disabled;b6=n.createElement("input");b6.setAttribute("value","");D.input=b6.getAttribute("value")==="";b6.value="t";b6.setAttribute("type","radio");D.radioValue=b6.value==="t"})();var al=/\r/g;bI.fn.extend({val:function(b7){var e,i,b8,b6=this[0];if(!arguments.length){if(b6){e=bI.valHooks[b6.type]||bI.valHooks[b6.nodeName.toLowerCase()];if(e&&"get" in e&&(i=e.get(b6,"value"))!==undefined){return i}i=b6.value;return typeof i==="string"?i.replace(al,""):i==null?"":i}return}b8=bI.isFunction(b7);return this.each(function(b9){var ca;if(this.nodeType!==1){return}if(b8){ca=b7.call(this,b9,bI(this).val())}else{ca=b7}if(ca==null){ca=""}else{if(typeof ca==="number"){ca+=""}else{if(bI.isArray(ca)){ca=bI.map(ca,function(cb){return cb==null?"":cb+""})}}}e=bI.valHooks[this.type]||bI.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,ca,"value")===undefined){this.value=ca}})}});bI.extend({valHooks:{option:{get:function(e){var i=bI.find.attr(e,"value");return i!=null?i:bI.trim(bI.text(e))}},select:{get:function(e){var cb,b7,cd=e.options,b9=e.selectedIndex,b8=e.type==="select-one"||b9<0,cc=b8?null:[],ca=b8?b9+1:cd.length,b6=b9<0?ca:b8?b9:0;for(;b6<ca;b6++){b7=cd[b6];if((b7.selected||b6===b9)&&(D.optDisabled?!b7.disabled:b7.getAttribute("disabled")===null)&&(!b7.parentNode.disabled||!bI.nodeName(b7.parentNode,"optgroup"))){cb=bI(b7).val();if(b8){return cb}cc.push(cb)}}return cc},set:function(ca,cb){var cc,b9,b7=ca.options,e=bI.makeArray(cb),b8=b7.length;while(b8--){b9=b7[b8];if(bI.inArray(bI.valHooks.option.get(b9),e)>=0){try{b9.selected=cc=true}catch(b6){b9.scrollHeight}}else{b9.selected=false}}if(!cc){ca.selectedIndex=-1}return b7}}}});bI.each(["radio","checkbox"],function(){bI.valHooks[this]={set:function(e,i){if(bI.isArray(i)){return(e.checked=bI.inArray(bI(e).val(),i)>=0)}}};if(!D.checkOn){bI.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value}}});var ba,b3,bO=bI.expr.attrHandle,aq=/^(?:checked|selected)$/i,bN=D.getSetAttribute,bF=D.input;bI.fn.extend({attr:function(e,i){return aB(this,bI.attr,e,i,arguments.length>1)},removeAttr:function(e){return this.each(function(){bI.removeAttr(this,e)})}});bI.extend({attr:function(b8,b7,b9){var e,b6,i=b8.nodeType;if(!b8||i===3||i===8||i===2){return}if(typeof b8.getAttribute===aC){return bI.prop(b8,b7,b9)}if(i!==1||!bI.isXMLDoc(b8)){b7=b7.toLowerCase();e=bI.attrHooks[b7]||(bI.expr.match.bool.test(b7)?b3:ba)}if(b9!==undefined){if(b9===null){bI.removeAttr(b8,b7)}else{if(e&&"set" in e&&(b6=e.set(b8,b9,b7))!==undefined){return b6}else{b8.setAttribute(b7,b9+"");return b9}}}else{if(e&&"get" in e&&(b6=e.get(b8,b7))!==null){return b6}else{b6=bI.find.attr(b8,b7);return b6==null?undefined:b6}}},removeAttr:function(b7,b9){var e,b8,b6=0,ca=b9&&b9.match(aF);if(ca&&b7.nodeType===1){while((e=ca[b6++])){b8=bI.propFix[e]||e;if(bI.expr.match.bool.test(e)){if(bF&&bN||!aq.test(e)){b7[b8]=false}else{b7[bI.camelCase("default-"+e)]=b7[b8]=false}}else{bI.attr(b7,e,"")}b7.removeAttribute(bN?e:b8)}}},attrHooks:{type:{set:function(e,i){if(!D.radioValue&&i==="radio"&&bI.nodeName(e,"input")){var b6=e.value;e.setAttribute("type",i);if(b6){e.value=b6}return i}}}}});b3={set:function(i,b6,e){if(b6===false){bI.removeAttr(i,e)}else{if(bF&&bN||!aq.test(e)){i.setAttribute(!bN&&bI.propFix[e]||e,e)}else{i[bI.camelCase("default-"+e)]=i[e]=true}}return e}};bI.each(bI.expr.match.bool.source.match(/\w+/g),function(b7,b6){var e=bO[b6]||bI.find.attr;bO[b6]=bF&&bN||!aq.test(b6)?function(b9,b8,cb){var i,ca;if(!cb){ca=bO[b8];bO[b8]=i;i=e(b9,b8,cb)!=null?b8.toLowerCase():null;bO[b8]=ca}return i}:function(b8,i,b9){if(!b9){return b8[bI.camelCase("default-"+i)]?i.toLowerCase():null}}});if(!bF||!bN){bI.attrHooks.value={set:function(i,b6,e){if(bI.nodeName(i,"input")){i.defaultValue=b6}else{return ba&&ba.set(i,b6,e)}}}}if(!bN){ba={set:function(b6,b7,i){var e=b6.getAttributeNode(i);if(!e){b6.setAttributeNode((e=b6.ownerDocument.createAttribute(i)))}e.value=b7+="";if(i==="value"||b7===b6.getAttribute(i)){return b7}}};bO.id=bO.name=bO.coords=function(b6,i,b7){var e;if(!b7){return(e=b6.getAttributeNode(i))&&e.value!==""?e.value:null}};bI.valHooks.button={get:function(b6,i){var e=b6.getAttributeNode(i);if(e&&e.specified){return e.value}},set:ba.set};bI.attrHooks.contenteditable={set:function(i,b6,e){ba.set(i,b6===""?false:b6,e)}};bI.each(["width","height"],function(b6,e){bI.attrHooks[e]={set:function(i,b7){if(b7===""){i.setAttribute(e,"auto");return b7}}}})}if(!D.style){bI.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,i){return(e.style.cssText=i+"")}}}var aJ=/^(?:input|select|textarea|button|object)$/i,F=/^(?:a|area)$/i;bI.fn.extend({prop:function(e,i){return aB(this,bI.prop,e,i,arguments.length>1)},removeProp:function(e){e=bI.propFix[e]||e;return this.each(function(){try{this[e]=undefined;delete this[e]}catch(i){}})}});bI.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(b9,b7,ca){var b6,e,b8,i=b9.nodeType;if(!b9||i===3||i===8||i===2){return}b8=i!==1||!bI.isXMLDoc(b9);if(b8){b7=bI.propFix[b7]||b7;e=bI.propHooks[b7]}if(ca!==undefined){return e&&"set" in e&&(b6=e.set(b9,ca,b7))!==undefined?b6:(b9[b7]=ca)}else{return e&&"get" in e&&(b6=e.get(b9,b7))!==null?b6:b9[b7]}},propHooks:{tabIndex:{get:function(i){var e=bI.find.attr(i,"tabindex");return e?parseInt(e,10):aJ.test(i.nodeName)||F.test(i.nodeName)&&i.href?0:-1}}}});if(!D.hrefNormalized){bI.each(["href","src"],function(b6,e){bI.propHooks[e]={get:function(i){return i.getAttribute(e,4)}}})}if(!D.optSelected){bI.propHooks.selected={get:function(i){var e=i.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}}}bI.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){bI.propFix[this.toLowerCase()]=this});if(!D.enctype){bI.propFix.enctype="encoding"}var bL=/[\t\r\n\f]/g;bI.fn.extend({addClass:function(cd){var b7,b6,ce,cb,b8,e,b9=0,ca=this.length,cc=typeof cd==="string"&&cd;if(bI.isFunction(cd)){return this.each(function(i){bI(this).addClass(cd.call(this,i,this.className))})}if(cc){b7=(cd||"").match(aF)||[];for(;b9<ca;b9++){b6=this[b9];ce=b6.nodeType===1&&(b6.className?(" "+b6.className+" ").replace(bL," "):" ");if(ce){b8=0;while((cb=b7[b8++])){if(ce.indexOf(" "+cb+" ")<0){ce+=cb+" "}}e=bI.trim(ce);if(b6.className!==e){b6.className=e}}}}return this},removeClass:function(cd){var b7,b6,ce,cb,b8,e,b9=0,ca=this.length,cc=arguments.length===0||typeof cd==="string"&&cd;if(bI.isFunction(cd)){return this.each(function(i){bI(this).removeClass(cd.call(this,i,this.className))})}if(cc){b7=(cd||"").match(aF)||[];for(;b9<ca;b9++){b6=this[b9];ce=b6.nodeType===1&&(b6.className?(" "+b6.className+" ").replace(bL," "):"");if(ce){b8=0;while((cb=b7[b8++])){while(ce.indexOf(" "+cb+" ")>=0){ce=ce.replace(" "+cb+" "," ")}}e=cd?bI.trim(ce):"";if(b6.className!==e){b6.className=e}}}}return this},toggleClass:function(b6,e){var i=typeof b6;if(typeof e==="boolean"&&i==="string"){return e?this.addClass(b6):this.removeClass(b6)}if(bI.isFunction(b6)){return this.each(function(b7){bI(this).toggleClass(b6.call(this,b7,this.className,e),e)})}return this.each(function(){if(i==="string"){var b9,b8=0,b7=bI(this),ca=b6.match(aF)||[];while((b9=ca[b8++])){if(b7.hasClass(b9)){b7.removeClass(b9)}else{b7.addClass(b9)}}}else{if(i===aC||i==="boolean"){if(this.className){bI._data(this,"__className__",this.className)}this.className=this.className||b6===false?"":bI._data(this,"__className__")||""}}})},hasClass:function(e){var b8=" "+e+" ",b7=0,b6=this.length;for(;b7<b6;b7++){if(this[b7].nodeType===1&&(" "+this[b7].className+" ").replace(bL," ").indexOf(b8)>=0){return true}}return false}});bI.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(b6,e){bI.fn[e]=function(b7,i){return arguments.length>0?this.on(e,null,b7,i):this.trigger(e)}});bI.fn.extend({hover:function(e,i){return this.mouseenter(e).mouseleave(i||e)},bind:function(e,b6,i){return this.on(e,null,b6,i)},unbind:function(e,i){return this.off(e,null,i)},delegate:function(e,i,b7,b6){return this.on(i,e,b7,b6)},undelegate:function(e,i,b6){return arguments.length===1?this.off(e,"**"):this.off(i,e||"**",b6)}});var bp=bI.now();var bQ=(/\?/);var a1=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;bI.parseJSON=function(e){if(a5.JSON&&a5.JSON.parse){return a5.JSON.parse(e+"")}var b7,b6=null,i=bI.trim(e+"");return i&&!bI.trim(i.replace(a1,function(ca,b8,b9,cb){if(b7&&b8){b6=0}if(b6===0){return ca}b7=b9||b8;b6+=!cb-!b9;return""}))?(Function("return "+i))():bI.error("Invalid JSON: "+e)};bI.parseXML=function(b7){var i,b6;if(!b7||typeof b7!=="string"){return null}try{if(a5.DOMParser){b6=new DOMParser();i=b6.parseFromString(b7,"text/xml")}else{i=new ActiveXObject("Microsoft.XMLDOM");i.async="false";i.loadXML(b7)}}catch(b8){i=undefined}if(!i||!i.documentElement||i.getElementsByTagName("parsererror").length){bI.error("Invalid XML: "+b7)}return i};var b4,aa,ap=/#.*$/,R=/([?&])_=[^&]*/,ah=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,C=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,r=/^(?:GET|HEAD)$/,aK=/^\/\//,aV=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,w={},a9={},aX="*/".concat("*");try{aa=location.href}catch(bi){aa=n.createElement("a");aa.href="";aa=aa.href}b4=aV.exec(aa.toLowerCase())||[];function bK(e){return function(b9,ca){if(typeof b9!=="string"){ca=b9;b9="*"}var b6,b7=0,b8=b9.toLowerCase().match(aF)||[];if(bI.isFunction(ca)){while((b6=b8[b7++])){if(b6.charAt(0)==="+"){b6=b6.slice(1)||"*";(e[b6]=e[b6]||[]).unshift(ca)}else{(e[b6]=e[b6]||[]).push(ca)}}}}}function p(e,b6,ca,b7){var i={},b8=(e===a9);function b9(cb){var cc;i[cb]=true;bI.each(e[cb]||[],function(ce,cd){var cf=cd(b6,ca,b7);if(typeof cf==="string"&&!b8&&!i[cf]){b6.dataTypes.unshift(cf);b9(cf);return false}else{if(b8){return !(cc=cf)}}});return cc}return b9(b6.dataTypes[0])||!i["*"]&&b9("*")}function t(b6,b7){var e,i,b8=bI.ajaxSettings.flatOptions||{};for(i in b7){if(b7[i]!==undefined){(b8[i]?b6:(e||(e={})))[i]=b7[i]}}if(e){bI.extend(true,b6,e)}return b6}function g(cc,cb,b8){var e,b7,b6,b9,i=cc.contents,ca=cc.dataTypes;while(ca[0]==="*"){ca.shift();if(b7===undefined){b7=cc.mimeType||cb.getResponseHeader("Content-Type")}}if(b7){for(b9 in i){if(i[b9]&&i[b9].test(b7)){ca.unshift(b9);break}}}if(ca[0] in b8){b6=ca[0]}else{for(b9 in b8){if(!ca[0]||cc.converters[b9+" "+ca[0]]){b6=b9;break}if(!e){e=b9}}b6=b6||e}if(b6){if(b6!==ca[0]){ca.unshift(b6)}return b8[b6]}}function ag(cg,b8,cd,b6){var i,cb,ce,b9,b7,cf={},cc=cg.dataTypes.slice();if(cc[1]){for(ce in cg.converters){cf[ce.toLowerCase()]=cg.converters[ce]}}cb=cc.shift();while(cb){if(cg.responseFields[cb]){cd[cg.responseFields[cb]]=b8}if(!b7&&b6&&cg.dataFilter){b8=cg.dataFilter(b8,cg.dataType)}b7=cb;cb=cc.shift();if(cb){if(cb==="*"){cb=b7}else{if(b7!=="*"&&b7!==cb){ce=cf[b7+" "+cb]||cf["* "+cb];if(!ce){for(i in cf){b9=i.split(" ");if(b9[1]===cb){ce=cf[b7+" "+b9[0]]||cf["* "+b9[0]];if(ce){if(ce===true){ce=cf[i]}else{if(cf[i]!==true){cb=b9[0];cc.unshift(b9[1])}}break}}}}if(ce!==true){if(ce&&cg["throws"]){b8=ce(b8)}else{try{b8=ce(b8)}catch(ca){return{state:"parsererror",error:ce?ca:"No conversion from "+b7+" to "+cb}}}}}}}}return{state:"success",data:b8}}bI.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:aa,type:"GET",isLocal:C.test(b4[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":aX,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":bI.parseJSON,"text xml":bI.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(i,e){return e?t(t(i,bI.ajaxSettings),e):t(bI.ajaxSettings,i)},ajaxPrefilter:bK(w),ajaxTransport:bK(a9),ajax:function(ca,b7){if(typeof ca==="object"){b7=ca;ca=undefined}b7=b7||{};var cj,cl,cb,cq,cf,b6,cm,b8,ce=bI.ajaxSetup({},b7),cs=ce.context||ce,ch=ce.context&&(cs.nodeType||cs.jquery)?bI(cs):bI.event,cr=bI.Deferred(),co=bI.Callbacks("once memory"),cc=ce.statusCode||{},ci={},cp={},b9=0,cd="canceled",ck={readyState:0,getResponseHeader:function(i){var e;if(b9===2){if(!b8){b8={};while((e=ah.exec(cq))){b8[e[1].toLowerCase()]=e[2]}}e=b8[i.toLowerCase()]}return e==null?null:e},getAllResponseHeaders:function(){return b9===2?cq:null},setRequestHeader:function(i,ct){var e=i.toLowerCase();if(!b9){i=cp[e]=cp[e]||i;ci[i]=ct}return this},overrideMimeType:function(e){if(!b9){ce.mimeType=e}return this},statusCode:function(i){var e;if(i){if(b9<2){for(e in i){cc[e]=[cc[e],i[e]]}}else{ck.always(i[ck.status])}}return this},abort:function(i){var e=i||cd;if(cm){cm.abort(e)}cg(0,e);return this}};cr.promise(ck).complete=co.add;ck.success=ck.done;ck.error=ck.fail;ce.url=((ca||ce.url||aa)+"").replace(ap,"").replace(aK,b4[1]+"//");ce.type=b7.method||b7.type||ce.method||ce.type;ce.dataTypes=bI.trim(ce.dataType||"*").toLowerCase().match(aF)||[""];if(ce.crossDomain==null){cj=aV.exec(ce.url.toLowerCase());ce.crossDomain=!!(cj&&(cj[1]!==b4[1]||cj[2]!==b4[2]||(cj[3]||(cj[1]==="http:"?"80":"443"))!==(b4[3]||(b4[1]==="http:"?"80":"443"))))}if(ce.data&&ce.processData&&typeof ce.data!=="string"){ce.data=bI.param(ce.data,ce.traditional)}p(w,ce,b7,ck);if(b9===2){return ck}b6=bI.event&&ce.global;if(b6&&bI.active++===0){bI.event.trigger("ajaxStart")}ce.type=ce.type.toUpperCase();ce.hasContent=!r.test(ce.type);cb=ce.url;if(!ce.hasContent){if(ce.data){cb=(ce.url+=(bQ.test(cb)?"&":"?")+ce.data);delete ce.data}if(ce.cache===false){ce.url=R.test(cb)?cb.replace(R,"$1_="+bp++):cb+(bQ.test(cb)?"&":"?")+"_="+bp++}}if(ce.ifModified){if(bI.lastModified[cb]){ck.setRequestHeader("If-Modified-Since",bI.lastModified[cb])}if(bI.etag[cb]){ck.setRequestHeader("If-None-Match",bI.etag[cb])}}if(ce.data&&ce.hasContent&&ce.contentType!==false||b7.contentType){ck.setRequestHeader("Content-Type",ce.contentType)}ck.setRequestHeader("Accept",ce.dataTypes[0]&&ce.accepts[ce.dataTypes[0]]?ce.accepts[ce.dataTypes[0]]+(ce.dataTypes[0]!=="*"?", "+aX+"; q=0.01":""):ce.accepts["*"]);for(cl in ce.headers){ck.setRequestHeader(cl,ce.headers[cl])}if(ce.beforeSend&&(ce.beforeSend.call(cs,ck,ce)===false||b9===2)){return ck.abort()}cd="abort";for(cl in {success:1,error:1,complete:1}){ck[cl](ce[cl])}cm=p(a9,ce,b7,ck);if(!cm){cg(-1,"No Transport")}else{ck.readyState=1;if(b6){ch.trigger("ajaxSend",[ck,ce])}if(ce.async&&ce.timeout>0){cf=setTimeout(function(){ck.abort("timeout")},ce.timeout)}try{b9=1;cm.send(ci,cg)}catch(cn){if(b9<2){cg(-1,cn)}else{throw cn}}}function cg(cw,i,cx,cu){var e,cA,cy,cv,cz,ct=i;if(b9===2){return}b9=2;if(cf){clearTimeout(cf)}cm=undefined;cq=cu||"";ck.readyState=cw>0?4:0;e=cw>=200&&cw<300||cw===304;if(cx){cv=g(ce,ck,cx)}cv=ag(ce,cv,ck,e);if(e){if(ce.ifModified){cz=ck.getResponseHeader("Last-Modified");if(cz){bI.lastModified[cb]=cz}cz=ck.getResponseHeader("etag");if(cz){bI.etag[cb]=cz}}if(cw===204||ce.type==="HEAD"){ct="nocontent"}else{if(cw===304){ct="notmodified"}else{ct=cv.state;cA=cv.data;cy=cv.error;e=!cy}}}else{cy=ct;if(cw||!ct){ct="error";if(cw<0){cw=0}}}ck.status=cw;ck.statusText=(i||ct)+"";if(e){cr.resolveWith(cs,[cA,ct,ck])}else{cr.rejectWith(cs,[ck,ct,cy])}ck.statusCode(cc);cc=undefined;if(b6){ch.trigger(e?"ajaxSuccess":"ajaxError",[ck,ce,e?cA:cy])}co.fireWith(cs,[ck,ct]);if(b6){ch.trigger("ajaxComplete",[ck,ce]);if(!(--bI.active)){bI.event.trigger("ajaxStop")}}}return ck},getJSON:function(e,i,b6){return bI.get(e,i,b6,"json")},getScript:function(e,i){return bI.get(e,undefined,i,"script")}});bI.each(["get","post"],function(e,b6){bI[b6]=function(i,b8,b9,b7){if(bI.isFunction(b8)){b7=b7||b9;b9=b8;b8=undefined}return bI.ajax({url:i,type:b6,dataType:b7,data:b8,success:b9})}});bI._evalUrl=function(e){return bI.ajax({url:e,type:"GET",dataType:"script",async:false,global:false,"throws":true})};bI.fn.extend({wrapAll:function(e){if(bI.isFunction(e)){return this.each(function(b6){bI(this).wrapAll(e.call(this,b6))})}if(this[0]){var i=bI(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){i.insertBefore(this[0])}i.map(function(){var b6=this;while(b6.firstChild&&b6.firstChild.nodeType===1){b6=b6.firstChild}return b6}).append(this)}return this},wrapInner:function(e){if(bI.isFunction(e)){return this.each(function(b6){bI(this).wrapInner(e.call(this,b6))})}return this.each(function(){var i=bI(this),b6=i.contents();if(b6.length){b6.wrapAll(e)}else{i.append(e)}})},wrap:function(e){var i=bI.isFunction(e);return this.each(function(b6){bI(this).wrapAll(i?e.call(this,b6):e)})},unwrap:function(){return this.parent().each(function(){if(!bI.nodeName(this,"body")){bI(this).replaceWith(this.childNodes)}}).end()}});bI.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||(!D.reliableHiddenOffsets()&&((e.style&&e.style.display)||bI.css(e,"display"))==="none")};bI.expr.filters.visible=function(e){return !bI.expr.filters.hidden(e)};var bw=/%20/g,aS=/\[\]$/,X=/\r?\n/g,b=/^(?:submit|button|image|reset|file)$/i,au=/^(?:input|select|textarea|keygen)/i;function j(b6,b8,i,b7){var e;if(bI.isArray(b8)){bI.each(b8,function(ca,b9){if(i||aS.test(b6)){b7(b6,b9)}else{j(b6+"["+(typeof b9==="object"?ca:"")+"]",b9,i,b7)}})}else{if(!i&&bI.type(b8)==="object"){for(e in b8){j(b6+"["+e+"]",b8[e],i,b7)}}else{b7(b6,b8)}}}bI.param=function(e,b6){var b7,i=[],b8=function(b9,ca){ca=bI.isFunction(ca)?ca():(ca==null?"":ca);i[i.length]=encodeURIComponent(b9)+"="+encodeURIComponent(ca)};if(b6===undefined){b6=bI.ajaxSettings&&bI.ajaxSettings.traditional}if(bI.isArray(e)||(e.jquery&&!bI.isPlainObject(e))){bI.each(e,function(){b8(this.name,this.value)})}else{for(b7 in e){j(b7,e[b7],b6,b8)}}return i.join("&").replace(bw,"+")};bI.fn.extend({serialize:function(){return bI.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=bI.prop(this,"elements");return e?bI.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!bI(this).is(":disabled")&&au.test(this.nodeName)&&!b.test(e)&&(this.checked||!aM.test(e))}).map(function(e,b6){var b7=bI(this).val();return b7==null?null:bI.isArray(b7)?bI.map(b7,function(i){return{name:b6.name,value:i.replace(X,"\r\n")}}):{name:b6.name,value:b7.replace(X,"\r\n")}}).get()}});bI.ajaxSettings.xhr=a5.ActiveXObject!==undefined?function(){return !this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&bE()||bg()}:bE;var aA=0,aj={},ay=bI.ajaxSettings.xhr();if(a5.attachEvent){a5.attachEvent("onunload",function(){for(var e in aj){aj[e](undefined,true)}})}D.cors=!!ay&&("withCredentials" in ay);ay=D.ajax=!!ay;if(ay){bI.ajaxTransport(function(e){if(!e.crossDomain||D.cors){var i;return{send:function(b9,b6){var b7,b8=e.xhr(),ca=++aA;b8.open(e.type,e.url,e.async,e.username,e.password);if(e.xhrFields){for(b7 in e.xhrFields){b8[b7]=e.xhrFields[b7]}}if(e.mimeType&&b8.overrideMimeType){b8.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!b9["X-Requested-With"]){b9["X-Requested-With"]="XMLHttpRequest"}for(b7 in b9){if(b9[b7]!==undefined){b8.setRequestHeader(b7,b9[b7]+"")}}b8.send((e.hasContent&&e.data)||null);i=function(cd,cc){var cb,cg,ce;if(i&&(cc||b8.readyState===4)){delete aj[ca];i=undefined;b8.onreadystatechange=bI.noop;if(cc){if(b8.readyState!==4){b8.abort()}}else{ce={};cb=b8.status;if(typeof b8.responseText==="string"){ce.text=b8.responseText}try{cg=b8.statusText}catch(cf){cg=""}if(!cb&&e.isLocal&&!e.crossDomain){cb=ce.text?200:404}else{if(cb===1223){cb=204}}}}if(ce){b6(cb,cg,ce,b8.getAllResponseHeaders())}};if(!e.async){i()}else{if(b8.readyState===4){setTimeout(i)}else{b8.onreadystatechange=aj[ca]=i}}},abort:function(){if(i){i(undefined,true)}}}}})}function bE(){try{return new a5.XMLHttpRequest()}catch(i){}}function bg(){try{return new a5.ActiveXObject("Microsoft.XMLHTTP")}catch(i){}}bI.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){bI.globalEval(e);return e}}});bI.ajaxPrefilter("script",function(e){if(e.cache===undefined){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});bI.ajaxTransport("script",function(b6){if(b6.crossDomain){var e,i=n.head||bI("head")[0]||n.documentElement;return{send:function(b7,b8){e=n.createElement("script");e.async=true;if(b6.scriptCharset){e.charset=b6.scriptCharset}e.src=b6.url;e.onload=e.onreadystatechange=function(ca,b9){if(b9||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(e.parentNode){e.parentNode.removeChild(e)}e=null;if(!b9){b8(200,"success")}}};i.insertBefore(e,i.firstChild)},abort:function(){if(e){e.onload(undefined,true)}}}}});var bs=[],a8=/(=)\?(?=&|$)|\?\?/;bI.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=bs.pop()||(bI.expando+"_"+(bp++));this[e]=true;return e}});bI.ajaxPrefilter("json jsonp",function(b7,e,b8){var ca,i,b6,b9=b7.jsonp!==false&&(a8.test(b7.url)?"url":typeof b7.data==="string"&&!(b7.contentType||"").indexOf("application/x-www-form-urlencoded")&&a8.test(b7.data)&&"data");if(b9||b7.dataTypes[0]==="jsonp"){ca=b7.jsonpCallback=bI.isFunction(b7.jsonpCallback)?b7.jsonpCallback():b7.jsonpCallback;if(b9){b7[b9]=b7[b9].replace(a8,"$1"+ca)}else{if(b7.jsonp!==false){b7.url+=(bQ.test(b7.url)?"&":"?")+b7.jsonp+"="+ca}}b7.converters["script json"]=function(){if(!b6){bI.error(ca+" was not called")}return b6[0]};b7.dataTypes[0]="json";i=a5[ca];a5[ca]=function(){b6=arguments};b8.always(function(){a5[ca]=i;if(b7[ca]){b7.jsonpCallback=e.jsonpCallback;bs.push(ca)}if(b6&&bI.isFunction(i)){i(b6[0])}b6=i=undefined});return"script"}});bI.parseHTML=function(b8,b6,b7){if(!b8||typeof b8!=="string"){return null}if(typeof b6==="boolean"){b7=b6;b6=false}b6=b6||n;var i=a.exec(b8),e=!b7&&[];if(i){return[b6.createElement(i[1])]}i=bI.buildFragment([b8],b6,e);if(e&&e.length){bI(e).remove()}return bI.merge([],i.childNodes)};var b1=bI.fn.load;bI.fn.load=function(b7,ca,cb){if(typeof b7!=="string"&&b1){return b1.apply(this,arguments)}var e,b6,b8,i=this,b9=b7.indexOf(" ");if(b9>=0){e=bI.trim(b7.slice(b9,b7.length));b7=b7.slice(0,b9)}if(bI.isFunction(ca)){cb=ca;ca=undefined}else{if(ca&&typeof ca==="object"){b8="POST"}}if(i.length>0){bI.ajax({url:b7,type:b8,dataType:"html",data:ca}).done(function(cc){b6=arguments;i.html(e?bI("<div>").append(bI.parseHTML(cc)).find(e):cc)}).complete(cb&&function(cd,cc){i.each(cb,b6||[cd.responseText,cc,cd])})}return this};bI.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,b6){bI.fn[b6]=function(i){return this.on(b6,i)}});bI.expr.filters.animated=function(e){return bI.grep(bI.timers,function(i){return e===i.elem}).length};var bX=a5.document.documentElement;function br(e){return bI.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}bI.offset={setOffset:function(b7,ch,cb){var cd,ca,e,b8,b6,cf,cg,cc=bI.css(b7,"position"),b9=bI(b7),ce={};if(cc==="static"){b7.style.position="relative"}b6=b9.offset();e=bI.css(b7,"top");cf=bI.css(b7,"left");cg=(cc==="absolute"||cc==="fixed")&&bI.inArray("auto",[e,cf])>-1;if(cg){cd=b9.position();b8=cd.top;ca=cd.left}else{b8=parseFloat(e)||0;ca=parseFloat(cf)||0}if(bI.isFunction(ch)){ch=ch.call(b7,cb,b6)}if(ch.top!=null){ce.top=(ch.top-b6.top)+b8}if(ch.left!=null){ce.left=(ch.left-b6.left)+ca}if("using" in ch){ch.using.call(b7,ce)}else{b9.css(ce)}}};bI.fn.extend({offset:function(i){if(arguments.length){return i===undefined?this:this.each(function(ca){bI.offset.setOffset(this,i,ca)})}var e,b9,b7={top:0,left:0},b6=this[0],b8=b6&&b6.ownerDocument;if(!b8){return}e=b8.documentElement;if(!bI.contains(e,b6)){return b7}if(typeof b6.getBoundingClientRect!==aC){b7=b6.getBoundingClientRect()}b9=br(b8);return{top:b7.top+(b9.pageYOffset||e.scrollTop)-(e.clientTop||0),left:b7.left+(b9.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}},position:function(){if(!this[0]){return}var b6,b7,e={top:0,left:0},i=this[0];if(bI.css(i,"position")==="fixed"){b7=i.getBoundingClientRect()}else{b6=this.offsetParent();b7=this.offset();if(!bI.nodeName(b6[0],"html")){e=b6.offset()}e.top+=bI.css(b6[0],"borderTopWidth",true);e.left+=bI.css(b6[0],"borderLeftWidth",true)}return{top:b7.top-e.top-bI.css(i,"marginTop",true),left:b7.left-e.left-bI.css(i,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||bX;while(e&&(!bI.nodeName(e,"html")&&bI.css(e,"position")==="static")){e=e.offsetParent}return e||bX})}});bI.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b6,i){var e=/Y/.test(i);bI.fn[b6]=function(b7){return aB(this,function(b8,cb,ca){var b9=br(b8);if(ca===undefined){return b9?(i in b9)?b9[i]:b9.document.documentElement[cb]:b8[cb]}if(b9){b9.scrollTo(!e?ca:bI(b9).scrollLeft(),e?ca:bI(b9).scrollTop())}else{b8[cb]=ca}},b6,b7,arguments.length,null)}});bI.each(["top","left"],function(e,b6){bI.cssHooks[b6]=a7(D.pixelPosition,function(b7,i){if(i){i=G(b7,b6);return Y.test(i)?bI(b7).position()[b6]+"px":i}})});bI.each({Height:"height",Width:"width"},function(e,i){bI.each({padding:"inner"+e,content:i,"":"outer"+e},function(b6,b7){bI.fn[b7]=function(cb,ca){var b9=arguments.length&&(b6||typeof cb!=="boolean"),b8=b6||(cb===true||ca===true?"margin":"border");return aB(this,function(cd,cc,ce){var cf;if(bI.isWindow(cd)){return cd.document.documentElement["client"+e]}if(cd.nodeType===9){cf=cd.documentElement;return Math.max(cd.body["scroll"+e],cf["scroll"+e],cd.body["offset"+e],cf["offset"+e],cf["client"+e])}return ce===undefined?bI.css(cd,cc,b8):bI.style(cd,cc,ce,b8)},i,b9?cb:undefined,b9,null)}})});bI.fn.size=function(){return this.length};bI.fn.andSelf=bI.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return bI})}var bk=a5.jQuery,I=a5.$;bI.noConflict=function(e){if(a5.$===bI){a5.$=I}if(e&&a5.jQuery===bI){a5.jQuery=bk}return bI};if(typeof av===aC){a5.jQuery=a5.$=bI}return bI}));!function(a){a(function(){a.support.transition=(function(){var b=(function(){var e=document.createElement("bootstrap"),d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in d){if(e.style[c]!==undefined){return d[c]}}}());return b&&{end:b}})()})}(window.jQuery);!function(d){var c='[data-dismiss="alert"]',b=function(e){d(e).on("click",c,this.close)};b.prototype.close=function(j){var i=d(this),g=i.attr("data-target"),h;if(!g){g=i.attr("href");g=g&&g.replace(/.*(?=#[^\s]*$)/,"")}h=d(g);j&&j.preventDefault();h.length||(h=i.hasClass("alert")?i:i.parent());h.trigger(j=d.Event("close"));if(j.isDefaultPrevented()){return}h.removeClass("in");function f(){h.trigger("closed").remove()}d.support.transition&&h.hasClass("fade")?h.on(d.support.transition.end,f):f()};var a=d.fn.alert;d.fn.alert=function(e){return this.each(function(){var g=d(this),f=g.data("alert");if(!f){g.data("alert",(f=new b(this)))}if(typeof e=="string"){f[e].call(g)}})};d.fn.alert.Constructor=b;d.fn.alert.noConflict=function(){d.fn.alert=a;return this};d(document).on("click.alert.data-api",c,b.prototype.close)}(window.jQuery);!function(c){var b=function(e,d){this.$element=c(e);this.options=c.extend({},c.fn.button.defaults,d)};b.prototype.setState=function(g){var i="disabled",e=this.$element,f=e.data(),h=e.is("input")?"val":"html";g=g+"Text";f.resetText||e.data("resetText",e[h]());e[h](f[g]||this.options[g]);setTimeout(function(){g=="loadingText"?e.addClass(i).attr(i,i):e.removeClass(i).removeAttr(i)},0)};b.prototype.toggle=function(){var d=this.$element.closest('[data-toggle="buttons-radio"]');d&&d.find(".active").removeClass("active");this.$element.toggleClass("active")};var a=c.fn.button;c.fn.button=function(d){return this.each(function(){var g=c(this),f=g.data("button"),e=typeof d=="object"&&d;if(!f){g.data("button",(f=new b(this,e)))}if(d=="toggle"){f.toggle()}else{if(d){f.setState(d)}}})};c.fn.button.defaults={loadingText:"loading..."};c.fn.button.Constructor=b;c.fn.button.noConflict=function(){c.fn.button=a;return this};c(document).on("click.button.data-api","[data-toggle^=button]",function(f){var d=c(f.target);if(!d.hasClass("btn")){d=d.closest(".btn")}d.button("toggle")})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.$indicators=this.$element.find(".carousel-indicators");this.options=d;this.options.pause=="hover"&&this.$element.on("mouseenter",b.proxy(this.pause,this)).on("mouseleave",b.proxy(this.cycle,this))};c.prototype={cycle:function(d){if(!d){this.paused=false}if(this.interval){clearInterval(this.interval)}this.options.interval&&!this.paused&&(this.interval=setInterval(b.proxy(this.next,this),this.options.interval));return this},getActiveIndex:function(){this.$active=this.$element.find(".item.active");this.$items=this.$active.parent().children();return this.$items.index(this.$active)},to:function(f){var d=this.getActiveIndex(),e=this;if(f>(this.$items.length-1)||f<0){return}if(this.sliding){return this.$element.one("slid",function(){e.to(f)})}if(d==f){return this.pause().cycle()}return this.slide(f>d?"next":"prev",b(this.$items[f]))},pause:function(d){if(!d){this.paused=true}if(this.$element.find(".next, .prev").length&&b.support.transition.end){this.$element.trigger(b.support.transition.end);this.cycle(true)}clearInterval(this.interval);this.interval=null;return this},next:function(){if(this.sliding){return}return this.slide("next")},prev:function(){if(this.sliding){return}return this.slide("prev")},slide:function(k,f){var m=this.$element.find(".item.active"),d=f||m[k](),j=this.interval,l=k=="next"?"left":"right",g=k=="next"?"first":"last",h=this,i;this.sliding=true;j&&this.pause();d=d.length?d:this.$element.find(".item")[g]();i=b.Event("slide",{relatedTarget:d[0],direction:l});if(d.hasClass("active")){return}if(this.$indicators.length){this.$indicators.find(".active").removeClass("active");this.$element.one("slid",function(){var e=b(h.$indicators.children()[h.getActiveIndex()]);e&&e.addClass("active")})}if(b.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(i);if(i.isDefaultPrevented()){return}d.addClass(k);d[0].offsetWidth;m.addClass(l);d.addClass(l);this.$element.one(b.support.transition.end,function(){d.removeClass([k,l].join(" ")).addClass("active");m.removeClass(["active",l].join(" "));h.sliding=false;setTimeout(function(){h.$element.trigger("slid")},0)})}else{this.$element.trigger(i);if(i.isDefaultPrevented()){return}m.removeClass("active");d.addClass("active");this.sliding=false;this.$element.trigger("slid")}j&&this.cycle();return this}};var a=b.fn.carousel;b.fn.carousel=function(d){return this.each(function(){var h=b(this),g=h.data("carousel"),e=b.extend({},b.fn.carousel.defaults,typeof d=="object"&&d),f=typeof d=="string"?d:e.slide;if(!g){h.data("carousel",(g=new c(this,e)))}if(typeof d=="number"){g.to(d)}else{if(f){g[f]()}else{if(e.interval){g.pause().cycle()}}}})};b.fn.carousel.defaults={interval:5000,pause:"hover"};b.fn.carousel.Constructor=c;b.fn.carousel.noConflict=function(){b.fn.carousel=a;return this};b(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(j){var i=b(this),f,d=b(i.attr("data-target")||(f=i.attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")),g=b.extend({},d.data(),i.data()),h;d.carousel(g);if(h=i.attr("data-slide-to")){d.data("carousel").pause().to(h).cycle()}j.preventDefault()})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.collapse.defaults,d);if(this.options.parent){this.$parent=b(this.options.parent)}this.options.toggle&&this.toggle()};c.prototype={constructor:c,dimension:function(){var d=this.$element.hasClass("width");return d?"width":"height"},show:function(){var g,d,f,e;if(this.transitioning||this.$element.hasClass("in")){return}g=this.dimension();d=b.camelCase(["scroll",g].join("-"));f=this.$parent&&this.$parent.find("> .accordion-group > .in");if(f&&f.length){e=f.data("collapse");if(e&&e.transitioning){return}f.collapse("hide");e||f.data("collapse",null)}this.$element[g](0);this.transition("addClass",b.Event("show"),"shown");b.support.transition&&this.$element[g](this.$element[0][d])},hide:function(){var d;if(this.transitioning||!this.$element.hasClass("in")){return}d=this.dimension();this.reset(this.$element[d]());this.transition("removeClass",b.Event("hide"),"hidden");this.$element[d](0)},reset:function(d){var e=this.dimension();this.$element.removeClass("collapse")[e](d||"auto")[0].offsetWidth;this.$element[d!==null?"addClass":"removeClass"]("collapse");return this},transition:function(h,e,f){var g=this,d=function(){if(e.type=="show"){g.reset()}g.transitioning=0;g.$element.trigger(f)};this.$element.trigger(e);if(e.isDefaultPrevented()){return}this.transitioning=1;this.$element[h]("in");b.support.transition&&this.$element.hasClass("collapse")?this.$element.one(b.support.transition.end,d):d()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var a=b.fn.collapse;b.fn.collapse=function(d){return this.each(function(){var g=b(this),f=g.data("collapse"),e=b.extend({},b.fn.collapse.defaults,g.data(),typeof d=="object"&&d);if(!f){g.data("collapse",(f=new c(this,e)))}if(typeof d=="string"){f[d]()}})};b.fn.collapse.defaults={toggle:true};b.fn.collapse.Constructor=c;b.fn.collapse.noConflict=function(){b.fn.collapse=a;return this};b(document).on("click.collapse.data-api","[data-toggle=collapse]",function(i){var h=b(this),d,g=h.attr("data-target")||i.preventDefault()||(d=h.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=b(g).data("collapse")?"toggle":h.data();h[b(g).hasClass("in")?"addClass":"removeClass"]("collapsed");b(g).collapse(f)})}(window.jQuery);!function(f){var b="[data-toggle=dropdown]",a=function(h){var g=f(h).on("click.dropdown.data-api",this.toggle);f("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};a.prototype={constructor:a,toggle:function(j){var i=f(this),h,g;if(i.is(".disabled, :disabled")){return}h=e(i);g=h.hasClass("open");d();if(!g){if("ontouchstart" in document.documentElement){f('<div class="dropdown-backdrop"/>').insertBefore(f(this)).on("click",d)}h.toggleClass("open")}i.focus();return false},keydown:function(l){var k,m,g,j,i,h;if(!/(38|40|27)/.test(l.keyCode)){return}k=f(this);l.preventDefault();l.stopPropagation();if(k.is(".disabled, :disabled")){return}j=e(k);i=j.hasClass("open");if(!i||(i&&l.keyCode==27)){if(l.which==27){j.find(b).focus()}return k.click()}m=f("[role=menu] li:not(.divider):visible a",j);if(!m.length){return}h=m.index(m.filter(":focus"));if(l.keyCode==38&&h>0){h--}if(l.keyCode==40&&h<m.length-1){h++}if(!~h){h=0}m.eq(h).focus()}};function d(){f(".dropdown-backdrop").remove();f(b).each(function(){e(f(this)).removeClass("open")})}function e(i){var g=i.attr("data-target"),h;if(!g){g=i.attr("href");g=g&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,"")}h=g&&f(g);if(!h||!h.length){h=i.parent()}return h}var c=f.fn.dropdown;f.fn.dropdown=function(g){return this.each(function(){var i=f(this),h=i.data("dropdown");if(!h){i.data("dropdown",(h=new a(this)))}if(typeof g=="string"){h[g].call(i)}})};f.fn.dropdown.Constructor=a;f.fn.dropdown.noConflict=function(){f.fn.dropdown=c;return this};f(document).on("click.dropdown.data-api",d).on("click.dropdown.data-api",".dropdown form",function(g){g.stopPropagation()}).on("click.dropdown.data-api",b,a.prototype.toggle).on("keydown.dropdown.data-api",b+", [role=menu]",a.prototype.keydown)}(window.jQuery);!function(c){var b=function(e,d){this.options=d;this.$element=c(e).delegate('[data-dismiss="modal"]',"click.dismiss.modal",c.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var d=this,f=c.Event("show");this.$element.trigger(f);if(this.isShown||f.isDefaultPrevented()){return}this.isShown=true;this.escape();this.backdrop(function(){var e=c.support.transition&&d.$element.hasClass("fade");if(!d.$element.parent().length){d.$element.appendTo(document.body)}d.$element.show();if(e){d.$element[0].offsetWidth}d.$element.addClass("in").attr("aria-hidden",false);d.enforceFocus();e?d.$element.one(c.support.transition.end,function(){d.$element.focus().trigger("shown")}):d.$element.focus().trigger("shown")})},hide:function(f){f&&f.preventDefault();var d=this;f=c.Event("hide");this.$element.trigger(f);if(!this.isShown||f.isDefaultPrevented()){return}this.isShown=false;this.escape();c(document).off("focusin.modal");this.$element.removeClass("in").attr("aria-hidden",true);c.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var d=this;c(document).on("focusin.modal",function(f){if(d.$element[0]!==f.target&&!d.$element.has(f.target).length){d.$element.focus()}})},escape:function(){var d=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.modal",function(f){f.which==27&&d.hide()})}else{if(!this.isShown){this.$element.off("keyup.dismiss.modal")}}},hideWithTransition:function(){var d=this,e=setTimeout(function(){d.$element.off(c.support.transition.end);d.hideModal()},500);this.$element.one(c.support.transition.end,function(){clearTimeout(e);d.hideModal()})},hideModal:function(){var d=this;this.$element.hide();this.backdrop(function(){d.removeBackdrop();d.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null},backdrop:function(g){var f=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=c.support.transition&&e;this.$backdrop=c('<div class="modal-backdrop '+e+'" />').appendTo(document.body);this.$backdrop.click(this.options.backdrop=="static"?c.proxy(this.$element[0].focus,this.$element[0]):c.proxy(this.hide,this));if(d){this.$backdrop[0].offsetWidth}this.$backdrop.addClass("in");if(!g){return}d?this.$backdrop.one(c.support.transition.end,g):g()}else{if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");c.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(c.support.transition.end,g):g()}else{if(g){g()}}}}};var a=c.fn.modal;c.fn.modal=function(d){return this.each(function(){var g=c(this),f=g.data("modal"),e=c.extend({},c.fn.modal.defaults,g.data(),typeof d=="object"&&d);if(!f){g.data("modal",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}else{if(e.show){f.show()}}})};c.fn.modal.defaults={backdrop:true,keyboard:true,show:true};c.fn.modal.Constructor=b;c.fn.modal.noConflict=function(){c.fn.modal=a;return this};c(document).on("click.modal.data-api",'[data-toggle="modal"]',function(i){var h=c(this),f=h.attr("href"),d=c(h.attr("data-target")||(f&&f.replace(/.*(?=#[^\s]+$)/,""))),g=d.data("modal")?"toggle":c.extend({remote:!/#/.test(f)&&f},d.data(),h.data());i.preventDefault();d.modal(g).one("hide",function(){h.focus()})})}(window.jQuery);!function(c){var b=function(e,d){this.init("tooltip",e,d)};b.prototype={constructor:b,init:function(k,h,f){var l,d,j,e,g;this.type=k;this.$element=c(h);this.options=this.getOptions(f);this.enabled=true;j=this.options.trigger.split(" ");for(g=j.length;g--;){e=j[g];if(e=="click"){this.$element.on("click."+this.type,this.options.selector,c.proxy(this.toggle,this))}else{if(e!="manual"){l=e=="hover"?"mouseenter":"focus";d=e=="hover"?"mouseleave":"blur";this.$element.on(l+"."+this.type,this.options.selector,c.proxy(this.enter,this));this.$element.on(d+"."+this.type,this.options.selector,c.proxy(this.leave,this))}}}this.options.selector?(this._options=c.extend({},this.options,{trigger:"manual",selector:""})):this.fixTitle()},getOptions:function(d){d=c.extend({},c.fn[this.type].defaults,this.$element.data(),d);if(d.delay&&typeof d.delay=="number"){d.delay={show:d.delay,hide:d.delay}}return d},enter:function(h){var g=c.fn[this.type].defaults,f={},d;this._options&&c.each(this._options,function(e,i){if(g[e]!=i){f[e]=i}},this);d=c(h.currentTarget)[this.type](f).data(this.type);if(!d.options.delay||!d.options.delay.show){return d.show()}clearTimeout(this.timeout);d.hoverState="in";this.timeout=setTimeout(function(){if(d.hoverState=="in"){d.show()}},d.options.delay.show)},leave:function(f){var d=c(f.currentTarget)[this.type](this._options).data(this.type);if(this.timeout){clearTimeout(this.timeout)}if(!d.options.delay||!d.options.delay.hide){return d.hide()}d.hoverState="out";this.timeout=setTimeout(function(){if(d.hoverState=="out"){d.hide()}},d.options.delay.hide)},show:function(){var i,k,g,j,d,h,f=c.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(f);if(f.isDefaultPrevented()){return}i=this.tip();this.setContent();if(this.options.animation){i.addClass("fade")}d=typeof this.options.placement=="function"?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement;i.detach().css({top:0,left:0,display:"block"});this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element);k=this.getPosition();g=i[0].offsetWidth;j=i[0].offsetHeight;switch(d){case"bottom":h={top:k.top+k.height,left:k.left+k.width/2-g/2};break;case"top":h={top:k.top-j,left:k.left+k.width/2-g/2};break;case"left":h={top:k.top+k.height/2-j/2,left:k.left-g};break;case"right":h={top:k.top+k.height/2-j/2,left:k.left+k.width};break}this.applyPlacement(h,d);this.$element.trigger("shown")}},applyPlacement:function(g,h){var i=this.tip(),e=i[0].offsetWidth,l=i[0].offsetHeight,d,j,k,f;i.offset(g).addClass(h).addClass("in");d=i[0].offsetWidth;j=i[0].offsetHeight;if(h=="top"&&j!=l){g.top=g.top+l-j;f=true}if(h=="bottom"||h=="top"){k=0;if(g.left<0){k=g.left*-2;g.left=0;i.offset(g);d=i[0].offsetWidth;j=i[0].offsetHeight}this.replaceArrow(k-e+d,d,"left")}else{this.replaceArrow(j-l,j,"top")}if(f){i.offset(g)}},replaceArrow:function(f,e,d){this.arrow().css(d,f?(50*(1-f/e)+"%"):"")},setContent:function(){var e=this.tip(),d=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](d);e.removeClass("fade in top bottom left right")},hide:function(){var d=this,g=this.tip(),f=c.Event("hide");this.$element.trigger(f);if(f.isDefaultPrevented()){return}g.removeClass("in");function h(){var e=setTimeout(function(){g.off(c.support.transition.end).detach()},500);g.one(c.support.transition.end,function(){clearTimeout(e);g.detach()})}c.support.transition&&this.$tip.hasClass("fade")?h():g.detach();this.$element.trigger("hidden");return this},fixTitle:function(){var d=this.$element;if(d.attr("title")||typeof(d.attr("data-original-title"))!="string"){d.attr("data-original-title",d.attr("title")||"").attr("title","")}},hasContent:function(){return this.getTitle()},getPosition:function(){var d=this.$element[0];return c.extend({},(typeof d.getBoundingClientRect=="function")?d.getBoundingClientRect():{width:d.offsetWidth,height:d.offsetHeight},this.$element.offset())},getTitle:function(){var f,d=this.$element,e=this.options;f=d.attr("data-original-title")||(typeof e.title=="function"?e.title.call(d[0]):e.title);return f},tip:function(){return this.$tip=this.$tip||c(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){if(!this.$element[0].parentNode){this.hide();this.$element=null;this.options=null}},enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(f){var d=f?c(f.currentTarget)[this.type](this._options).data(this.type):this;d.tip().hasClass("in")?d.hide():d.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var a=c.fn.tooltip;c.fn.tooltip=function(d){return this.each(function(){var g=c(this),f=g.data("tooltip"),e=typeof d=="object"&&d;if(!f){g.data("tooltip",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.tooltip.Constructor=b;c.fn.tooltip.defaults={animation:true,placement:"top",selector:false,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:false,container:false};c.fn.tooltip.noConflict=function(){c.fn.tooltip=a;return this}}(window.jQuery);!function(c){var b=function(e,d){this.init("popover",e,d)};b.prototype=c.extend({},c.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var f=this.tip(),e=this.getTitle(),d=this.getContent();f.find(".popover-title")[this.options.html?"html":"text"](e);f.find(".popover-content")[this.options.html?"html":"text"](d);f.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,d=this.$element,f=this.options;e=(typeof f.content=="function"?f.content.call(d[0]):f.content)||d.attr("data-content");return e},tip:function(){if(!this.$tip){this.$tip=c(this.options.template)}return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var a=c.fn.popover;c.fn.popover=function(d){return this.each(function(){var g=c(this),f=g.data("popover"),e=typeof d=="object"&&d;if(!f){g.data("popover",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.popover.Constructor=b;c.fn.popover.defaults=c.extend({},c.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'});c.fn.popover.noConflict=function(){c.fn.popover=a;return this}}(window.jQuery);!function(c){function b(g,f){var h=c.proxy(this.process,this),d=c(g).is("body")?c(window):c(g),e;this.options=c.extend({},c.fn.scrollspy.defaults,f);this.$scrollElement=d.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||((e=c(g).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,""))||"")+" .nav li > a";this.$body=c("body");this.refresh();this.process()}b.prototype={constructor:b,refresh:function(){var d=this,e;this.offsets=c([]);this.targets=c([]);e=this.$body.find(this.selector).map(function(){var g=c(this),f=g.data("target")||g.attr("href"),h=/^#\w/.test(f)&&c(f);return(h&&h.length&&[[h.position().top+(!c.isWindow(d.$scrollElement.get(0))&&d.$scrollElement.scrollTop()),f]])||null}).sort(function(g,f){return g[0]-f[0]}).each(function(){d.offsets.push(this[0]);d.targets.push(this[1])})},process:function(){var j=this.$scrollElement.scrollTop()+this.options.offset,f=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,h=f-this.$scrollElement.height(),g=this.offsets,d=this.targets,k=this.activeTarget,e;if(j>=h){return k!=(e=d.last()[0])&&this.activate(e)}for(e=g.length;e--;){k!=d[e]&&j>=g[e]&&(!g[e+1]||j<=g[e+1])&&this.activate(d[e])}},activate:function(f){var e,d;this.activeTarget=f;c(this.selector).parent(".active").removeClass("active");d=this.selector+'[data-target="'+f+'"],'+this.selector+'[href="'+f+'"]';e=c(d).parent("li").addClass("active");if(e.parent(".dropdown-menu").length){e=e.closest("li.dropdown").addClass("active")}e.trigger("activate")}};var a=c.fn.scrollspy;c.fn.scrollspy=function(d){return this.each(function(){var g=c(this),f=g.data("scrollspy"),e=typeof d=="object"&&d;if(!f){g.data("scrollspy",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.scrollspy.Constructor=b;c.fn.scrollspy.defaults={offset:10};c.fn.scrollspy.noConflict=function(){c.fn.scrollspy=a;return this};c(window).on("load",function(){c('[data-spy="scroll"]').each(function(){var d=c(this);d.scrollspy(d.data())})})}(window.jQuery);!function(c){var b=function(d){this.element=c(d)};b.prototype={constructor:b,show:function(){var j=this.element,g=j.closest("ul:not(.dropdown-menu)"),f=j.attr("data-target"),h,d,i;if(!f){f=j.attr("href");f=f&&f.replace(/.*(?=#[^\s]*$)/,"")}if(j.parent("li").hasClass("active")){return}h=g.find(".active:last a")[0];i=c.Event("show",{relatedTarget:h});j.trigger(i);if(i.isDefaultPrevented()){return}d=c(f);this.activate(j.parent("li"),g);this.activate(d,d.parent(),function(){j.trigger({type:"shown",relatedTarget:h})})},activate:function(f,e,i){var d=e.find("> .active"),h=i&&c.support.transition&&d.hasClass("fade");function g(){d.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");f.addClass("active");if(h){f[0].offsetWidth;f.addClass("in")}else{f.removeClass("fade")}if(f.parent(".dropdown-menu")){f.closest("li.dropdown").addClass("active")}i&&i()}h?d.one(c.support.transition.end,g):g();d.removeClass("in")}};var a=c.fn.tab;c.fn.tab=function(d){return this.each(function(){var f=c(this),e=f.data("tab");if(!e){f.data("tab",(e=new b(this)))}if(typeof d=="string"){e[d]()}})};c.fn.tab.Constructor=b;c.fn.tab.noConflict=function(){c.fn.tab=a;return this};c(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(d){d.preventDefault();c(this).tab("show")})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.typeahead.defaults,d);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=b(this.options.menu);this.shown=false;this.listen()};c.prototype={constructor:c,select:function(){var d=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(d)).change();return this.hide()},updater:function(d){return d},show:function(){var d=b.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:d.top+d.height,left:d.left}).show();this.shown=true;return this},hide:function(){this.$menu.hide();this.shown=false;return this},lookup:function(e){var d;this.query=this.$element.val();if(!this.query||this.query.length<this.options.minLength){return this.shown?this.hide():this}d=b.isFunction(this.source)?this.source(this.query,b.proxy(this.process,this)):this.source;return d?this.process(d):this},process:function(d){var e=this;d=b.grep(d,function(f){return e.matcher(f)});d=this.sorter(d);if(!d.length){return this.shown?this.hide():this}return this.render(d.slice(0,this.options.items)).show()},matcher:function(d){return ~d.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(f){var g=[],e=[],d=[],h;while(h=f.shift()){if(!h.toLowerCase().indexOf(this.query.toLowerCase())){g.push(h)}else{if(~h.indexOf(this.query)){e.push(h)}else{d.push(h)}}}return g.concat(e,d)},highlighter:function(d){var e=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return d.replace(new RegExp("("+e+")","ig"),function(f,g){return"<strong>"+g+"</strong>"})},render:function(d){var e=this;d=b(d).map(function(f,g){f=b(e.options.item).attr("data-value",g);f.find("a").html(e.highlighter(g));return f[0]});d.first().addClass("active");this.$menu.html(d);return this},next:function(e){var f=this.$menu.find(".active").removeClass("active"),d=f.next();if(!d.length){d=b(this.$menu.find("li")[0])}d.addClass("active")},prev:function(e){var f=this.$menu.find(".active").removeClass("active"),d=f.prev();if(!d.length){d=this.$menu.find("li").last()}d.addClass("active")},listen:function(){this.$element.on("focus",b.proxy(this.focus,this)).on("blur",b.proxy(this.blur,this)).on("keypress",b.proxy(this.keypress,this)).on("keyup",b.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",b.proxy(this.keydown,this))}this.$menu.on("click",b.proxy(this.click,this)).on("mouseenter","li",b.proxy(this.mouseenter,this)).on("mouseleave","li",b.proxy(this.mouseleave,this))},eventSupported:function(d){var e=d in this.$element;if(!e){this.$element.setAttribute(d,"return;");e=typeof this.$element[d]==="function"}return e},move:function(d){if(!this.shown){return}switch(d.keyCode){case 9:case 13:case 27:d.preventDefault();break;case 38:d.preventDefault();this.prev();break;case 40:d.preventDefault();this.next();break}d.stopPropagation()},keydown:function(d){this.suppressKeyPressRepeat=~b.inArray(d.keyCode,[40,38,9,13,27]);this.move(d)},keypress:function(d){if(this.suppressKeyPressRepeat){return}this.move(d)},keyup:function(d){switch(d.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown){return}this.select();break;case 27:if(!this.shown){return}this.hide();break;default:this.lookup()}d.stopPropagation();d.preventDefault()},focus:function(d){this.focused=true},blur:function(d){this.focused=false;if(!this.mousedover&&this.shown){this.hide()}},click:function(d){d.stopPropagation();d.preventDefault();this.select();this.$element.focus()},mouseenter:function(d){this.mousedover=true;this.$menu.find(".active").removeClass("active");b(d.currentTarget).addClass("active")},mouseleave:function(d){this.mousedover=false;if(!this.focused&&this.shown){this.hide()}}};var a=b.fn.typeahead;b.fn.typeahead=function(d){return this.each(function(){var g=b(this),f=g.data("typeahead"),e=typeof d=="object"&&d;if(!f){g.data("typeahead",(f=new c(this,e)))}if(typeof d=="string"){f[d]()}})};b.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1};b.fn.typeahead.Constructor=c;b.fn.typeahead.noConflict=function(){b.fn.typeahead=a;return this};b(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(f){var d=b(this);if(d.data("typeahead")){return}d.typeahead(d.data())})}(window.jQuery);!function(c){var b=function(e,d){this.options=c.extend({},c.fn.affix.defaults,d);this.$window=c(window).on("scroll.affix.data-api",c.proxy(this.checkPosition,this)).on("click.affix.data-api",c.proxy(function(){setTimeout(c.proxy(this.checkPosition,this),1)},this));this.$element=c(e);this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible")){return}var h=c(document).height(),j=this.$window.scrollTop(),d=this.$element.offset(),k=this.options.offset,f=k.bottom,g=k.top,i="affix affix-top affix-bottom",e;if(typeof k!="object"){f=g=k}if(typeof g=="function"){g=k.top()}if(typeof f=="function"){f=k.bottom()}e=this.unpin!=null&&(j+this.unpin<=d.top)?false:f!=null&&(d.top+this.$element.height()>=h-f)?"bottom":g!=null&&j<=g?"top":false;if(this.affixed===e){return}this.affixed=e;this.unpin=e=="bottom"?d.top-j:null;this.$element.removeClass(i).addClass("affix"+(e?"-"+e:""))};var a=c.fn.affix;c.fn.affix=function(d){return this.each(function(){var g=c(this),f=g.data("affix"),e=typeof d=="object"&&d;if(!f){g.data("affix",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.affix.Constructor=b;c.fn.affix.defaults={offset:0};c.fn.affix.noConflict=function(){c.fn.affix=a;return this};c(window).on("load",function(){c('[data-spy="affix"]').each(function(){var e=c(this),d=e.data();d.offset=d.offset||{};d.offsetBottom&&(d.offset.bottom=d.offsetBottom);d.offsetTop&&(d.offset.top=d.offsetTop);e.affix(d)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function d(F){function w(J){var K=J.charCodeAt(0);if(K!==92){return K}var I=J.charAt(1);return(K=k[I])?K:"0"<=I&&I<="7"?parseInt(J.substring(1),8):I==="u"||I==="x"?parseInt(J.substring(2),16):J.charCodeAt(1)}function C(I){if(I<32){return(I<16?"\\x0":"\\x")+I.toString(16)}I=String.fromCharCode(I);if(I==="\\"||I==="-"||I==="["||I==="]"){I="\\"+I}return I}function A(J){for(var M=J.substring(1,J.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),J=[],I=[],O=M[0]==="^",P=O?1:0,L=M.length;P<L;++P){var K=M[P];if(/\\[bdsw]/i.test(K)){J.push(K)}else{var K=w(K),N;P+2<L&&"-"===M[P+1]?(N=w(M[P+2]),P+=2):N=K;I.push([K,N]);N<65||K>122||(N<65||K>90||I.push([Math.max(65,K)|32,Math.min(N,90)|32]),N<97||K>122||I.push([Math.max(97,K)&-33,Math.min(N,122)&-33]))}}I.sort(function(Q,R){return Q[0]-R[0]||R[1]-Q[1]});M=[];K=[NaN,NaN];for(P=0;P<I.length;++P){L=I[P],L[0]<=K[1]+1?K[1]=Math.max(K[1],L[1]):M.push(K=L)}I=["["];O&&I.push("^");I.push.apply(I,J);for(P=0;P<M.length;++P){L=M[P],I.push(C(L[0])),L[1]>L[0]&&(L[1]+1>L[0]&&I.push("-"),I.push(C(L[1])))}I.push("]");return I.join("")}function E(J){for(var M=J.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),I=M.length,N=[],O=0,L=0;O<I;++O){var K=M[O];K==="("?++L:"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(N[K]=-1)}for(O=1;O<N.length;++O){-1===N[O]&&(N[O]=++G)}for(L=O=0;O<I;++O){K=M[O],K==="("?(++L,N[L]===void 0&&(M[O]="(?:")):"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(M[O]="\\"+N[L])}for(L=O=0;O<I;++O){"^"===M[O]&&"^"!==M[O+1]&&(M[O]="")}if(J.ignoreCase&&H){for(O=0;O<I;++O){K=M[O],J=K.charAt(0),K.length>=2&&J==="["?M[O]=A(K):J!=="\\"&&(M[O]=K.replace(/[A-Za-z]/g,function(P){P=P.charCodeAt(0);return"["+String.fromCharCode(P&-33,P|32)+"]"}))}}return M.join("")}for(var G=0,H=!1,x=!1,u=0,D=F.length;u<D;++u){var B=F[u];if(B.ignoreCase){x=!0}else{if(/[a-z]/i.test(B.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){H=!0;x=!1;break}}}for(var k={b:8,t:9,n:10,v:11,f:12,r:13},v=[],u=0,D=F.length;u<D;++u){B=F[u];if(B.global||B.multiline){throw Error(""+B)}v.push("(?:"+E(B)+")")}return RegExp(v.join("|"),x?"gi":"g")}function c(B){function u(E){switch(E.nodeType){case 1:if(x.test(E.className)){break}for(var F=E.firstChild;F;F=F.nextSibling){u(F)}F=E.nodeName;if("BR"===F||"LI"===F){w[D]="\n",C[D<<1]=A++,C[D++<<1|1]=E}break;case 3:case 4:F=E.nodeValue,F.length&&(F=k?F.replace(/\r\n?/g,"\n"):F.replace(/[\t\n\r ]+/g," "),w[D]=F,C[D<<1]=A,A+=F.length,C[D++<<1|1]=E)}}var x=/(?:^|\s)nocode(?:\s|$)/,w=[],A=0,C=[],D=0,v;B.currentStyle?v=B.currentStyle.whiteSpace:window.getComputedStyle&&(v=document.defaultView.getComputedStyle(B,q).getPropertyValue("white-space"));var k=v&&"pre"===v.substring(0,3);u(B);return{a:w.join("").replace(/\n$/,""),c:C}}function t(u,k,w,v){k&&(u={a:k,d:u},w(u),v.push.apply(v,u.e))}function h(u,k){function x(P){for(var F=P.d,C=[F,"pln"],L=0,J=P.a.match(A)||[],B={},E=0,N=J.length;E<N;++E){var K=J[E],O=B[K],D=void 0,M;if(typeof O==="string"){M=!1}else{var I=w[K.charAt(0)];if(I){D=K.match(I[1]),O=I[0]}else{for(M=0;M<v;++M){if(I=k[M],D=K.match(I[1])){O=I[0];break}}D||(O="pln")}if((M=O.length>=5&&"lang-"===O.substring(0,5))&&!(D&&typeof D[1]==="string")){M=!1,O="src"}M||(B[K]=O)}I=L;L+=K.length;if(M){M=D[1];var H=K.indexOf(M),G=H+M.length;D[2]&&(G=K.length-D[2].length,H=G-M.length);O=O.substring(5);t(F+I,K.substring(0,H),x,C);t(F+I+H,M,s(O,M),C);t(F+I+G,K.substring(G),x,C)}else{C.push(F+I,O)}}P.e=C}var w={},A;(function(){for(var G=u.concat(k),B=[],F={},H=0,E=G.length;H<E;++H){var D=G[H],I=D[3];if(I){for(var C=I.length;--C>=0;){w[I.charAt(C)]=D}}D=D[1];I=""+D;F.hasOwnProperty(I)||(B.push(D),F[I]=q)}B.push(/[\S\s]/);A=d(B)})();var v=k.length;return x}function o(u){var k=[],w=[];u.tripleQuotedStrings?k.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):u.multiLineStrings?k.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):k.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);u.verbatimStrings&&w.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var v=u.hashComments;v&&(u.cStyleComments?(v>1?k.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):k.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),w.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):k.push(["com",/^#[^\n\r]*/,q,"#"]));u.cStyleComments&&(w.push(["com",/^\/\/[^\n\r]*/,q]),w.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));u.regexLiterals&&w.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(v=u.types)&&w.push(["typ",v]);u=(""+u.keywords).replace(/^ | $/g,"");u.length&&w.push(["kwd",RegExp("^(?:"+u.replace(/[\s,]+/g,"|")+")\\b"),q]);k.push(["pln",/^\s+/,q," \r\n\t\xa0"]);w.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return h(k,w)}function r(H,x){function E(K){switch(K.nodeType){case 1:if(B.test(K.className)){break}if("BR"===K.nodeName){C(K),K.parentNode&&K.parentNode.removeChild(K)}else{for(K=K.firstChild;K;K=K.nextSibling){E(K)}}break;case 3:case 4:if(v){var k=K.nodeValue,L=k.match(I);if(L){var M=k.substring(0,L.index);K.nodeValue=M;(k=k.substring(L.index+L[0].length))&&K.parentNode.insertBefore(J.createTextNode(k),K.nextSibling);C(K);M||K.parentNode.removeChild(K)}}}}function C(K){function k(M,R){var Q=R?M.cloneNode(!1):M,P=M.parentNode;if(P){var P=k(P,1),O=M.nextSibling;P.appendChild(Q);for(var N=O;N;N=O){O=N.nextSibling,P.appendChild(N)}}return Q}for(;!K.nextSibling;){if(K=K.parentNode,!K){return}}for(var K=k(K.nextSibling,0),L;(L=K.parentNode)&&L.nodeType===1;){K=L}F.push(K)}var B=/(?:^|\s)nocode(?:\s|$)/,I=/\r\n?|\n/,J=H.ownerDocument,A;H.currentStyle?A=H.currentStyle.whiteSpace:window.getComputedStyle&&(A=J.defaultView.getComputedStyle(H,q).getPropertyValue("white-space"));var v=A&&"pre"===A.substring(0,3);for(A=J.createElement("LI");H.firstChild;){A.appendChild(H.firstChild)}for(var F=[A],D=0;D<F.length;++D){E(F[D])}x===(x|0)&&F[0].setAttribute("value",x);var u=J.createElement("OL");u.className="linenums";for(var w=Math.max(0,x-1|0)||0,D=0,G=F.length;D<G;++D){A=F[D],A.className="L"+(D+w)%10,A.firstChild||A.appendChild(J.createTextNode("\xa0")),u.appendChild(A)}H.appendChild(u)}function z(u,k){for(var w=k.length;--w>=0;){var v=k[w];y.hasOwnProperty(v)?window.console&&console.warn("cannot override language handler %s",v):y[v]=u}}function s(u,k){if(!u||!y.hasOwnProperty(u)){u=/^\s*</.test(k)?"default-markup":"default-code"}return y[u]}function p(X){var L=X.g;try{var T=c(X.h),Q=T.a;X.a=Q;X.c=T.c;X.d=0;s(L,Q)(X);var N=/\bMSIE\b/.test(navigator.userAgent),L=/\n/g,F=X.a,G=F.length,T=0,M=X.c,I=M.length,Q=0,U=X.e,R=U.length,X=0;U[R]=G;var H,K;for(K=H=0;K<R;){U[K]!==U[K+2]?(U[H++]=U[K++],U[H++]=U[K++]):K+=2}R=H;for(K=H=0;K<R;){for(var A=U[K],S=U[K+1],W=K+2;W+2<=R&&U[W+1]===S;){W+=2}U[H++]=A;U[H++]=S;K=W}for(U.length=H;Q<I;){var J=M[Q+2]||G,V=U[X+2]||G,W=Math.min(J,V),P=M[Q+1],O;if(P.nodeType!==1&&(O=F.substring(T,W))){N&&(O=O.replace(L,"\r"));P.nodeValue=O;var E=P.ownerDocument,D=E.createElement("SPAN");D.className=U[X+1];var B=P.parentNode;B.replaceChild(D,P);D.appendChild(P);T<J&&(M[Q+1]=P=E.createTextNode(F.substring(W,J)),B.insertBefore(P,D.nextSibling))}T=W;T>=J&&(Q+=2);T>=V&&(X+=2)}}catch(C){"console" in window&&console.log(C&&C.stack?C.stack:C)}}var m=["break,continue,do,else,for,if,return,while"],j=[[m,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],n=[j,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],l=[j,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],i=[l,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],j=[j,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],g=[m,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],f=[m,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],m=[m,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,b=/\S/,a=o({keywords:[n,i,j,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+g,f,m],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),y={};z(a,["default-code"]);z(h([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);z(h([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);z(h([],[["atv",/^[\S\s]+/]]),["uq.val"]);z(o({keywords:n,hashComments:!0,cStyleComments:!0,types:e}),["c","cc","cpp","cxx","cyc","m"]);z(o({keywords:"null,true,false"}),["json"]);z(o({keywords:i,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:e}),["cs"]);z(o({keywords:l,cStyleComments:!0}),["java"]);z(o({keywords:m,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);z(o({keywords:g,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);z(o({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);z(o({keywords:f,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);z(o({keywords:j,cStyleComments:!0,regexLiterals:!0}),["js"]);z(o({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);z(h([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(u,k,w){var v=document.createElement("PRE");v.innerHTML=u;w&&r(v,w);p({g:k,i:w,h:v});return v.innerHTML};window.prettyPrint=function(E){function v(){for(var L=window.PR_SHOULD_USE_CONTINUATION?w.now()+250:Infinity;u<A.length&&w.now()<L;u++){var O=A[u],I=O.className;if(I.indexOf("prettyprint")>=0){var I=I.match(B),K,H;if(H=!I){H=O;for(var M=void 0,N=H.firstChild;N;N=N.nextSibling){var J=N.nodeType,M=J===1?M?H:N:J===3?b.test(N.nodeValue)?H:M:M}H=(K=M===H?void 0:M)&&"CODE"===K.tagName}H&&(I=K.className.match(B));I&&(I=I[1]);H=!1;for(M=O.parentNode;M;M=M.parentNode){if((M.tagName==="pre"||M.tagName==="code"||M.tagName==="xmp")&&M.className&&M.className.indexOf("prettyprint")>=0){H=!0;break}}H||((H=(H=O.className.match(/\blinenums\b(?::(\d+))?/))?H[1]&&H[1].length?+H[1]:!0:!1)&&r(O,H),D={g:I,h:O,i:H},p(D))}}u<A.length?setTimeout(v,250):E&&E()}for(var C=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],A=[],x=0;x<C.length;++x){for(var F=0,G=C[x].length;F<G;++F){A.push(C[x][F])}}var C=q,w=Date;w.now||(w={now:function(){return +new Date}});var u=0,D,B=/\blang(?:uage)?-([\w.]+)(?!\S)/;v()};window.PR={createSimpleLexer:h,registerLangHandler:z,sourceDecorator:o,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();jQuery(document).ready(function(){$(".topbar").dropdown();prettyPrint()});
    \ No newline at end of file
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/junit.html b/HEAD/spring-cloud-contract-maven-plugin/junit.html
    new file mode 100644
    index 0000000000..77aaee5195
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/junit.html
    @@ -0,0 +1,318 @@
    +<!DOCTYPE html>
    +<!--
    + | Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-07-27 
    + | Rendered using Apache Maven Fluido Skin 1.5
    +-->
    +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <meta name="Date-Revision-yyyymmdd" content="20160727" />
    +    <meta http-equiv="Content-Language" content="en" />
    +    <title>Spring Cloud Contract Verifier Maven Plugin &#x2013; </title>
    +    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
    +    <link rel="stylesheet" href="./css/site.css" />
    +    <link rel="stylesheet" href="./css/print.css" media="print" />
    +
    +      
    +    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
    +
    +                      </head>
    +        <body class="topBarEnabled">
    +          
    +    
    +    
    +            
    +    
    +        
    +    <a href="https://github.com/spring-cloud/spring-cloud-contract">
    +      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
    +        src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
    +        alt="Fork me on GitHub">
    +    </a>
    +  
    +                
    +                    
    +                
    +
    +    <div id="topbar" class="navbar navbar-fixed-top ">
    +      <div class="navbar-inner">
    +                <div class="container-fluid">
    +        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +        </a>
    +                
    +                                <ul class="nav">
    +                          <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="index.html"  title="Introduction">Introduction</a>
    +</li>
    +                  
    +                      <li>      <a href="usage.html"  title="Usage">Usage</a>
    +</li>
    +                  
    +                      <li>      <a href="plugin-info.html"  title="Goals">Goals</a>
    +</li>
    +                  
    +                      <li>      <a href="junit.html"  title="JUnit Configuration">JUnit Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="spock.html"  title="Spock Configuration">Spock Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="complex.html"  title="Complex Configuration">Complex Configuration</a>
    +</li>
    +                          </ul>
    +      </li>
    +                <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Related Projects <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="https://github.com/spring-cloud/spring-cloud-contract"  title="Spring Cloud Contract">Spring Cloud Contract</a>
    +</li>
    +                          </ul>
    +      </li>
    +                  </ul>
    +          
    +          
    +          
    +                   
    +                      </div>
    +          
    +        </div>
    +      </div>
    +    </div>
    +    
    +        <div class="container-fluid">
    +          <div id="banner">
    +        <div class="pull-left">
    +                                <div id="bannerLeft">
    +                <h2>Spring Cloud Contract Maven Plugin</h2>
    +                </div>
    +                      </div>
    +        <div class="pull-right">              <div id="bannerRight">
    +                                                                                                <img src="" />
    +                </div>
    +      </div>
    +        <div class="clear"><hr/></div>
    +      </div>
    +
    +      <div id="breadcrumbs">
    +        <ul class="breadcrumb">
    +              
    +                  <li id="publishDate">Last Published: 2016-07-27
    +                      <span class="divider">|</span>
    +                   </li>
    +                  <li id="projectVersion">Version: 1.0.0.BUILD-SNAPSHOT
    +                      </li>
    +                      
    +              
    +      
    +                            </ul>
    +      </div>
    +
    +            
    +      <div class="row-fluid">
    +        <div id="leftColumn" class="span2">
    +          <div class="well sidebar-nav">
    +              
    +                <ul class="nav nav-list">
    +                    <li class="nav-header">Overview</li>
    +                              
    +      <li>
    +  
    +                          <a href="index.html" title="Introduction">
    +          <span class="none"></span>
    +        Introduction</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="usage.html" title="Usage">
    +          <span class="none"></span>
    +        Usage</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="plugin-info.html" title="Goals">
    +          <span class="none"></span>
    +        Goals</a>
    +            </li>
    +                
    +      <li class="active">
    +  
    +            <a href="#"><span class="none"></span>JUnit Configuration</a>
    +          </li>
    +                
    +      <li>
    +  
    +                          <a href="spock.html" title="Spock Configuration">
    +          <span class="none"></span>
    +        Spock Configuration</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="complex.html" title="Complex Configuration">
    +          <span class="none"></span>
    +        Complex Configuration</a>
    +            </li>
    +                              <li class="nav-header">Related Projects</li>
    +                              
    +      <li>
    +  
    +                          <a href="https://github.com/spring-cloud/spring-cloud-contract" title="Spring Cloud Contract">
    +          <span class="none"></span>
    +        Spring Cloud Contract</a>
    +            </li>
    +            </ul>
    +              
    +                
    +          <hr />
    +
    +           <div id="poweredBy">
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
    +        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
    +      </a>
    +                  </div>
    +          </div>
    +        </div>
    +        
    +                
    +        <div id="bodyColumn"  class="span10" >
    +                                  
    +            <div class="sect1">
    +<h2 id="java_project_with_junit_tests">Java Project with JUnit Tests</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>Sample minimal configuration for Java Project with JUnit tests.</p>
    +</div>
    +<div class="sect2">
    +<h3 id="test_dependencies_for_generated_contract_verification_tests">Test dependencies for generated contract verification tests</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="xml">        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.jayway.restassured<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>rest-assured<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.9.0<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.jayway.restassured<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-mock-mvc<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.9.0<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.toomuchcoding.jsonassert<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>jsonassert<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>0.4.7<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.assertj<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>assertj-core<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.4.1<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span></code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="project_configuration_for_spring_cloud_contract_verifier_with_junit_tests_and_stub_publishing">Project configuration for Spring Cloud Contract Verifier with JUnit tests and stub publishing</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="xml">            <span style="color:#070;font-weight:bold">&lt;plugin&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;version&gt;</span>${spring-cloud-verifier-plugin.version}<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;executions&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;execution&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;goals&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>convert<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateStubs<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateTests<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/goals&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/execution&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/executions&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;baseClassForTests&gt;</span>hello.BaseAccurest<span style="color:#070;font-weight:bold">&lt;/baseClassForTests&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;/plugin&gt;</span></code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="base_test_class">Base Test class</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="java"><span style="color:#777">/**
    + *
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */</span>
    +<span style="color:#080;font-weight:bold">package</span> <span style="color:#707;font-weight:bold">hello</span>;
    +
    +<span style="color:#080;font-weight:bold">import</span> <span style="color:#B44;font-weight:bold">com.jayway.restassured.module.mockmvc.RestAssuredMockMvc</span>;
    +
    +<span style="color:#080;font-weight:bold">import</span> <span style="color:#B44;font-weight:bold">org.junit.Before</span>;
    +
    +<span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">class</span> <span style="color:#B06;font-weight:bold">BaseAccurest</span> {
    +
    +    <span style="color:#007">@Before</span>
    +    <span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">void</span> setup() {
    +        RestAssuredMockMvc.standaloneSetup(<span style="color:#080;font-weight:bold">new</span> GreetingController());
    +    }
    +
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="project_source_code">Project source code</h3>
    +<div class="paragraph">
    +<p><a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java" class="bare">https://github.com/spring-cloud/spring-cloud-contract/tree/master/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java</a></p>
    +</div>
    +</div>
    +</div>
    +</div>
    +                  </div>
    +            </div>
    +          </div>
    +
    +    <hr/>
    +
    +    <footer>
    +            <div class="container-fluid">
    +                      <div class="row-fluid">
    +                                      <p >Copyright &copy;                    2016
    +                        <a href="http://spring.io/">Spring</a>.
    +            All rights reserved.    
    +      </p>
    +                </div>
    +
    +        
    +                </div>
    +    </footer>
    +        </body>
    +</html>
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/sitemap.html b/HEAD/spring-cloud-contract-maven-plugin/sitemap.html
    new file mode 100644
    index 0000000000..5191e97172
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/sitemap.html
    @@ -0,0 +1,243 @@
    +<!DOCTYPE html>
    +<!--
    + | Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-07-27 
    + | Rendered using Apache Maven Fluido Skin 1.5
    +-->
    +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <meta name="Date-Revision-yyyymmdd" content="20160727" />
    +    <meta http-equiv="Content-Language" content="en" />
    +    <title>Spring Cloud Contract Verifier Maven Plugin &#x2013; Sitemap</title>
    +    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
    +    <link rel="stylesheet" href="./css/site.css" />
    +    <link rel="stylesheet" href="./css/print.css" media="print" />
    +
    +      
    +    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
    +
    +                      </head>
    +        <body class="topBarEnabled">
    +          
    +    
    +    
    +            
    +    
    +        
    +    <a href="https://github.com/spring-cloud/spring-cloud-contract">
    +      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
    +        src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
    +        alt="Fork me on GitHub">
    +    </a>
    +  
    +                
    +                    
    +                
    +
    +    <div id="topbar" class="navbar navbar-fixed-top ">
    +      <div class="navbar-inner">
    +                <div class="container-fluid">
    +        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +        </a>
    +                
    +                                <ul class="nav">
    +                          <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="index.html"  title="Introduction">Introduction</a>
    +</li>
    +                  
    +                      <li>      <a href="usage.html"  title="Usage">Usage</a>
    +</li>
    +                  
    +                      <li>      <a href="plugin-info.html"  title="Goals">Goals</a>
    +</li>
    +                  
    +                      <li>      <a href="junit.html"  title="JUnit Configuration">JUnit Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="spock.html"  title="Spock Configuration">Spock Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="complex.html"  title="Complex Configuration">Complex Configuration</a>
    +</li>
    +                          </ul>
    +      </li>
    +                <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Related Projects <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="https://github.com/spring-cloud/spring-cloud-contract"  title="Spring Cloud Contract">Spring Cloud Contract</a>
    +</li>
    +                          </ul>
    +      </li>
    +                  </ul>
    +          
    +          
    +          
    +                   
    +                      </div>
    +          
    +        </div>
    +      </div>
    +    </div>
    +    
    +        <div class="container-fluid">
    +          <div id="banner">
    +        <div class="pull-left">
    +                                <div id="bannerLeft">
    +                <h2>Spring Cloud Contract Maven Plugin</h2>
    +                </div>
    +                      </div>
    +        <div class="pull-right">              <div id="bannerRight">
    +                                                                                                <img src="" />
    +                </div>
    +      </div>
    +        <div class="clear"><hr/></div>
    +      </div>
    +
    +      <div id="breadcrumbs">
    +        <ul class="breadcrumb">
    +              
    +                  <li id="publishDate">Last Published: 2016-07-27
    +                      <span class="divider">|</span>
    +                   </li>
    +                  <li id="projectVersion">Version: 1.0.0.BUILD-SNAPSHOT
    +                      </li>
    +                      
    +              
    +      
    +                            </ul>
    +      </div>
    +
    +            
    +      <div class="row-fluid">
    +        <div id="leftColumn" class="span2">
    +          <div class="well sidebar-nav">
    +              
    +                <ul class="nav nav-list">
    +                    <li class="nav-header">Overview</li>
    +                              
    +      <li>
    +  
    +                          <a href="index.html" title="Introduction">
    +          <span class="none"></span>
    +        Introduction</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="usage.html" title="Usage">
    +          <span class="none"></span>
    +        Usage</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="plugin-info.html" title="Goals">
    +          <span class="none"></span>
    +        Goals</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="junit.html" title="JUnit Configuration">
    +          <span class="none"></span>
    +        JUnit Configuration</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="spock.html" title="Spock Configuration">
    +          <span class="none"></span>
    +        Spock Configuration</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="complex.html" title="Complex Configuration">
    +          <span class="none"></span>
    +        Complex Configuration</a>
    +            </li>
    +                              <li class="nav-header">Related Projects</li>
    +                              
    +      <li>
    +  
    +                          <a href="https://github.com/spring-cloud/spring-cloud-contract" title="Spring Cloud Contract">
    +          <span class="none"></span>
    +        Spring Cloud Contract</a>
    +            </li>
    +            </ul>
    +              
    +                
    +          <hr />
    +
    +           <div id="poweredBy">
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
    +        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
    +      </a>
    +                  </div>
    +          </div>
    +        </div>
    +        
    +                
    +        <div id="bodyColumn"  class="span10" >
    +                                  
    +            <div class="section">
    +<h2><a name="Sitemap"></a>Sitemap</h2>
    +
    +<p>This page lists all entries of the navigation menu in expanded form.</p>
    +
    +<div class="section">
    +<div class="section">
    +<h4><a name="Overview"></a>Overview</h4><hr />
    +
    +<ul>
    +
    +<li><a href="index.html">Introduction</a></li>
    +
    +<li><a href="usage.html">Usage</a></li>
    +
    +<li><a href="plugin-info.html">Goals</a></li>
    +
    +<li><a href="junit.html">JUnit Configuration</a></li>
    +
    +<li><a href="spock.html">Spock Configuration</a></li>
    +
    +<li><a href="complex.html">Complex Configuration</a></li></ul>
    +</div>
    +<div class="section">
    +<h4><a name="Related_Projects"></a>Related Projects</h4><hr />
    +
    +<ul>
    +
    +<li><a class="externalLink" href="https://github.com/spring-cloud/spring-cloud-contract">Spring Cloud Contract</a></li></ul></div></div></div>
    +                  </div>
    +            </div>
    +          </div>
    +
    +    <hr/>
    +
    +    <footer>
    +            <div class="container-fluid">
    +                      <div class="row-fluid">
    +                                      <p >Copyright &copy;                    2016
    +                        <a href="http://spring.io/">Spring</a>.
    +            All rights reserved.    
    +      </p>
    +                </div>
    +
    +        
    +                </div>
    +    </footer>
    +        </body>
    +</html>
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/spock.html b/HEAD/spring-cloud-contract-maven-plugin/spock.html
    new file mode 100644
    index 0000000000..4f1c6cd836
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/spock.html
    @@ -0,0 +1,354 @@
    +<!DOCTYPE html>
    +<!--
    + | Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-07-27 
    + | Rendered using Apache Maven Fluido Skin 1.5
    +-->
    +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <meta name="Date-Revision-yyyymmdd" content="20160727" />
    +    <meta http-equiv="Content-Language" content="en" />
    +    <title>Spring Cloud Contract Verifier Maven Plugin &#x2013; </title>
    +    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
    +    <link rel="stylesheet" href="./css/site.css" />
    +    <link rel="stylesheet" href="./css/print.css" media="print" />
    +
    +      
    +    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
    +
    +                      </head>
    +        <body class="topBarEnabled">
    +          
    +    
    +    
    +            
    +    
    +        
    +    <a href="https://github.com/spring-cloud/spring-cloud-contract">
    +      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
    +        src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
    +        alt="Fork me on GitHub">
    +    </a>
    +  
    +                
    +                    
    +                
    +
    +    <div id="topbar" class="navbar navbar-fixed-top ">
    +      <div class="navbar-inner">
    +                <div class="container-fluid">
    +        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +        </a>
    +                
    +                                <ul class="nav">
    +                          <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="index.html"  title="Introduction">Introduction</a>
    +</li>
    +                  
    +                      <li>      <a href="usage.html"  title="Usage">Usage</a>
    +</li>
    +                  
    +                      <li>      <a href="plugin-info.html"  title="Goals">Goals</a>
    +</li>
    +                  
    +                      <li>      <a href="junit.html"  title="JUnit Configuration">JUnit Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="spock.html"  title="Spock Configuration">Spock Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="complex.html"  title="Complex Configuration">Complex Configuration</a>
    +</li>
    +                          </ul>
    +      </li>
    +                <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Related Projects <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="https://github.com/spring-cloud/spring-cloud-contract"  title="Spring Cloud Contract">Spring Cloud Contract</a>
    +</li>
    +                          </ul>
    +      </li>
    +                  </ul>
    +          
    +          
    +          
    +                   
    +                      </div>
    +          
    +        </div>
    +      </div>
    +    </div>
    +    
    +        <div class="container-fluid">
    +          <div id="banner">
    +        <div class="pull-left">
    +                                <div id="bannerLeft">
    +                <h2>Spring Cloud Contract Maven Plugin</h2>
    +                </div>
    +                      </div>
    +        <div class="pull-right">              <div id="bannerRight">
    +                                                                                                <img src="" />
    +                </div>
    +      </div>
    +        <div class="clear"><hr/></div>
    +      </div>
    +
    +      <div id="breadcrumbs">
    +        <ul class="breadcrumb">
    +              
    +                  <li id="publishDate">Last Published: 2016-07-27
    +                      <span class="divider">|</span>
    +                   </li>
    +                  <li id="projectVersion">Version: 1.0.0.BUILD-SNAPSHOT
    +                      </li>
    +                      
    +              
    +      
    +                            </ul>
    +      </div>
    +
    +            
    +      <div class="row-fluid">
    +        <div id="leftColumn" class="span2">
    +          <div class="well sidebar-nav">
    +              
    +                <ul class="nav nav-list">
    +                    <li class="nav-header">Overview</li>
    +                              
    +      <li>
    +  
    +                          <a href="index.html" title="Introduction">
    +          <span class="none"></span>
    +        Introduction</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="usage.html" title="Usage">
    +          <span class="none"></span>
    +        Usage</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="plugin-info.html" title="Goals">
    +          <span class="none"></span>
    +        Goals</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="junit.html" title="JUnit Configuration">
    +          <span class="none"></span>
    +        JUnit Configuration</a>
    +            </li>
    +                
    +      <li class="active">
    +  
    +            <a href="#"><span class="none"></span>Spock Configuration</a>
    +          </li>
    +                
    +      <li>
    +  
    +                          <a href="complex.html" title="Complex Configuration">
    +          <span class="none"></span>
    +        Complex Configuration</a>
    +            </li>
    +                              <li class="nav-header">Related Projects</li>
    +                              
    +      <li>
    +  
    +                          <a href="https://github.com/spring-cloud/spring-cloud-contract" title="Spring Cloud Contract">
    +          <span class="none"></span>
    +        Spring Cloud Contract</a>
    +            </li>
    +            </ul>
    +              
    +                
    +          <hr />
    +
    +           <div id="poweredBy">
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
    +        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
    +      </a>
    +                  </div>
    +          </div>
    +        </div>
    +        
    +                
    +        <div id="bodyColumn"  class="span10" >
    +                                  
    +            <div class="sect1">
    +<h2 id="groovy_project_with_spock_specifications">Groovy Project with Spock Specifications</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>Sample minimal configuration for Groovy Project with Spock Specification</p>
    +</div>
    +<div class="sect2">
    +<h3 id="test_dependencies_for_generated_contract_verification_tests">Test dependencies for generated contract verification tests</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="xml">        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.spockframework<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spock-core<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.jayway.restassured<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>rest-assured<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.9.0<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.jayway.restassured<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-mock-mvc<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.9.0<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;dependency&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.toomuchcoding.jsonassert<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>jsonassert<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;version&gt;</span>0.4.7<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;scope&gt;</span>test<span style="color:#070;font-weight:bold">&lt;/scope&gt;</span>
    +        <span style="color:#070;font-weight:bold">&lt;/dependency&gt;</span></code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="project_configuration_for_spring_cloud_contract_verifier_groovy_spock_specifications_and_stub_publishing">Project configuration for Spring Cloud Contract Verifier, Groovy, Spock specifications and stub publishing</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="xml">            <span style="color:#070;font-weight:bold">&lt;plugin&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;version&gt;</span>${spring-cloud-verifier-plugin.version}<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;executions&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;execution&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;goals&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>convert<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateStubs<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateTests<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/goals&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/execution&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/executions&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;baseClassForTests&gt;</span>hello.BaseAccurest<span style="color:#070;font-weight:bold">&lt;/baseClassForTests&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;testFramework&gt;</span>SPOCK<span style="color:#070;font-weight:bold">&lt;/testFramework&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;/plugin&gt;</span>
    +
    +            <span style="color:#070;font-weight:bold">&lt;plugin&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.codehaus.gmavenplus<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>gmavenplus-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;version&gt;</span>1.5<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;executions&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;execution&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;goals&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>testCompile<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/goals&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/execution&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/executions&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;testSources&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;testSource&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;directory&gt;</span>${project.basedir}/src/test/groovy<span style="color:#070;font-weight:bold">&lt;/directory&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;includes&gt;</span>
    +                                <span style="color:#070;font-weight:bold">&lt;include&gt;</span>**/*.groovy<span style="color:#070;font-weight:bold">&lt;/include&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;/includes&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/testSource&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;testSource&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;directory&gt;</span>${project.build.directory}/generated-test-sources/contracts<span style="color:#070;font-weight:bold">&lt;/directory&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;includes&gt;</span>
    +                                <span style="color:#070;font-weight:bold">&lt;include&gt;</span>**/*.groovy<span style="color:#070;font-weight:bold">&lt;/include&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;/includes&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/testSource&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/testSources&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;/plugin&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;plugin&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>maven-surefire-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;version&gt;</span>2.19<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;includes&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;include&gt;</span>**/*Spec.java<span style="color:#070;font-weight:bold">&lt;/include&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/includes&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;/plugin&gt;</span></code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="base_specification_class">Base Specification class</h3>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="java"><span style="color:#777">/**
    + *
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */</span>
    +<span style="color:#080;font-weight:bold">package</span> <span style="color:#707;font-weight:bold">hello</span>
    +
    +<span style="color:#707;font-weight:bold">import</span> <span style="color:#707;font-weight:bold">com.jayway.restassured.module.mockmvc.RestAssuredMockMvc</span>
    +<span style="color:#707;font-weight:bold">import</span> <span style="color:#707;font-weight:bold">spock.lang.Specification</span>
    +
    +<span style="color:#707;font-weight:bold">public</span> <span style="color:#707;font-weight:bold">class</span> <span style="color:#707;font-weight:bold">BaseAccurest</span> <span style="color:#707;font-weight:bold">extends</span> <span style="color:#707;font-weight:bold">Specification</span> {
    +
    +    <span style="color:#707;font-weight:bold">def</span> <span style="color:#707;font-weight:bold">setup</span>() {
    +        <span style="color:#707;font-weight:bold">RestAssuredMockMvc.standaloneSetup</span>(<span style="color:#707;font-weight:bold">new</span> <span style="color:#707;font-weight:bold">GreetingController</span>())
    +    }
    +
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="project_source_code">Project source code</h3>
    +<div class="paragraph">
    +<p><a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy" class="bare">https://github.com/spring-cloud/spring-cloud-contract/tree/master/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy</a></p>
    +</div>
    +</div>
    +</div>
    +</div>
    +                  </div>
    +            </div>
    +          </div>
    +
    +    <hr/>
    +
    +    <footer>
    +            <div class="container-fluid">
    +                      <div class="row-fluid">
    +                                      <p >Copyright &copy;                    2016
    +                        <a href="http://spring.io/">Spring</a>.
    +            All rights reserved.    
    +      </p>
    +                </div>
    +
    +        
    +                </div>
    +    </footer>
    +        </body>
    +</html>
    diff --git a/HEAD/spring-cloud-contract-maven-plugin/usage.html b/HEAD/spring-cloud-contract-maven-plugin/usage.html
    new file mode 100644
    index 0000000000..a268962c96
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract-maven-plugin/usage.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE html>
    +<!--
    + | Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-07-27 
    + | Rendered using Apache Maven Fluido Skin 1.5
    +-->
    +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <meta name="Date-Revision-yyyymmdd" content="20160727" />
    +    <meta http-equiv="Content-Language" content="en" />
    +    <title>Spring Cloud Contract Verifier Maven Plugin &#x2013; </title>
    +    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
    +    <link rel="stylesheet" href="./css/site.css" />
    +    <link rel="stylesheet" href="./css/print.css" media="print" />
    +
    +      
    +    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
    +
    +                      </head>
    +        <body class="topBarEnabled">
    +          
    +    
    +    
    +            
    +    
    +        
    +    <a href="https://github.com/spring-cloud/spring-cloud-contract">
    +      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
    +        src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
    +        alt="Fork me on GitHub">
    +    </a>
    +  
    +                
    +                    
    +                
    +
    +    <div id="topbar" class="navbar navbar-fixed-top ">
    +      <div class="navbar-inner">
    +                <div class="container-fluid">
    +        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +          <span class="icon-bar"></span>
    +        </a>
    +                
    +                                <ul class="nav">
    +                          <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="index.html"  title="Introduction">Introduction</a>
    +</li>
    +                  
    +                      <li>      <a href="usage.html"  title="Usage">Usage</a>
    +</li>
    +                  
    +                      <li>      <a href="plugin-info.html"  title="Goals">Goals</a>
    +</li>
    +                  
    +                      <li>      <a href="junit.html"  title="JUnit Configuration">JUnit Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="spock.html"  title="Spock Configuration">Spock Configuration</a>
    +</li>
    +                  
    +                      <li>      <a href="complex.html"  title="Complex Configuration">Complex Configuration</a>
    +</li>
    +                          </ul>
    +      </li>
    +                <li class="dropdown">
    +        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Related Projects <b class="caret"></b></a>
    +        <ul class="dropdown-menu">
    +        
    +                      <li>      <a href="https://github.com/spring-cloud/spring-cloud-contract"  title="Spring Cloud Contract">Spring Cloud Contract</a>
    +</li>
    +                          </ul>
    +      </li>
    +                  </ul>
    +          
    +          
    +          
    +                   
    +                      </div>
    +          
    +        </div>
    +      </div>
    +    </div>
    +    
    +        <div class="container-fluid">
    +          <div id="banner">
    +        <div class="pull-left">
    +                                <div id="bannerLeft">
    +                <h2>Spring Cloud Contract Maven Plugin</h2>
    +                </div>
    +                      </div>
    +        <div class="pull-right">              <div id="bannerRight">
    +                                                                                                <img src="" />
    +                </div>
    +      </div>
    +        <div class="clear"><hr/></div>
    +      </div>
    +
    +      <div id="breadcrumbs">
    +        <ul class="breadcrumb">
    +              
    +                  <li id="publishDate">Last Published: 2016-07-27
    +                      <span class="divider">|</span>
    +                   </li>
    +                  <li id="projectVersion">Version: 1.0.0.BUILD-SNAPSHOT
    +                      </li>
    +                      
    +              
    +      
    +                            </ul>
    +      </div>
    +
    +            
    +      <div class="row-fluid">
    +        <div id="leftColumn" class="span2">
    +          <div class="well sidebar-nav">
    +              
    +                <ul class="nav nav-list">
    +                    <li class="nav-header">Overview</li>
    +                              
    +      <li>
    +  
    +                          <a href="index.html" title="Introduction">
    +          <span class="none"></span>
    +        Introduction</a>
    +            </li>
    +                
    +      <li class="active">
    +  
    +            <a href="#"><span class="none"></span>Usage</a>
    +          </li>
    +                
    +      <li>
    +  
    +                          <a href="plugin-info.html" title="Goals">
    +          <span class="none"></span>
    +        Goals</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="junit.html" title="JUnit Configuration">
    +          <span class="none"></span>
    +        JUnit Configuration</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="spock.html" title="Spock Configuration">
    +          <span class="none"></span>
    +        Spock Configuration</a>
    +            </li>
    +                
    +      <li>
    +  
    +                          <a href="complex.html" title="Complex Configuration">
    +          <span class="none"></span>
    +        Complex Configuration</a>
    +            </li>
    +                              <li class="nav-header">Related Projects</li>
    +                              
    +      <li>
    +  
    +                          <a href="https://github.com/spring-cloud/spring-cloud-contract" title="Spring Cloud Contract">
    +          <span class="none"></span>
    +        Spring Cloud Contract</a>
    +            </li>
    +            </ul>
    +              
    +                
    +          <hr />
    +
    +           <div id="poweredBy">
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                            <div class="clear"></div>
    +                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
    +        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
    +      </a>
    +                  </div>
    +          </div>
    +        </div>
    +        
    +                
    +        <div id="bodyColumn"  class="span10" >
    +                                  
    +            <h1>Usage</h1>
    +<div class="sect1">
    +<h2 id="converting_spring_cloud_contract_dsl_into_wiremock_stub_mappings">Converting Spring Cloud Contract DSL into WireMock stub mappings</h2>
    +<div class="sectionbody">
    +<div class="literalblock">
    +<div class="content">
    +<pre>mvn org.springramework.cloud:spring-cloud-contract-maven-plugin:convert</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>or shortly <sup class="footnote" id="_footnote_prefix">[<a id="_footnoteref_1" class="footnote" href="#_footnote_1" title="View footnote.">1</a>]</sup></p>
    +</div>
    +<div class="literalblock">
    +<div class="content">
    +<pre>mvn spring-cloud-contract-verifier:convert</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>For more information please go to the Spring Cloud Contract Wiki or Plugin Documentation Site.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="spring_cloud_contract_stub_runner">Spring Cloud Contract Stub Runner</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>Run stubs mappings from current directory:</p>
    +</div>
    +<div class="literalblock">
    +<div class="content">
    +<pre>mvn org.springramework.cloud:spring-cloud-contract-maven-plugin:run</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>or shortly <sup class="footnoteref">[<a class="footnote" href="#_footnote_1" title="View footnote.">1</a>]</sup></p>
    +</div>
    +<div class="literalblock">
    +<div class="content">
    +<pre>mvn spring-cloud-contract-verifier:run</pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="running_stubs_from_repository">Running stubs from repository</h2>
    +<div class="sectionbody">
    +<div class="literalblock">
    +<div class="content">
    +<pre>mvn spring-cloud-contract-verifier:run -Dstubs="org.springframework:gs-rest-service"</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>where <code>org.springframework:gs-rest-service</code> is artifact with stubs classifier contains WireMock mappings.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="project_configuration">Project configuration</h2>
    +<div class="sectionbody">
    +<div class="listingblock">
    +<div class="content">
    +<pre class="CodeRay highlight"><code data-lang="xml">            <span style="color:#070;font-weight:bold">&lt;plugin&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;version&gt;</span>${spring-cloud-verifier-plugin.version}<span style="color:#070;font-weight:bold">&lt;/version&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;executions&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;execution&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;goals&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>convert<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateStubs<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                            <span style="color:#070;font-weight:bold">&lt;goal&gt;</span>generateTests<span style="color:#070;font-weight:bold">&lt;/goal&gt;</span>
    +                        <span style="color:#070;font-weight:bold">&lt;/goals&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;/execution&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/executions&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
    +                    <span style="color:#070;font-weight:bold">&lt;baseClassForTests&gt;</span>hello.BaseAccurest<span style="color:#070;font-weight:bold">&lt;/baseClassForTests&gt;</span>
    +                <span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
    +            <span style="color:#070;font-weight:bold">&lt;/plugin&gt;</span></code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div id="footnotes">
    +<hr/>
    +<div class="footnote" id="_footnote_1">
    +<a href="#_footnoteref_1">1</a>. Additional configuration inside <code>~/.m2/settings.xml</code> is required: <code>&lt;pluginGroups&gt;&lt;pluginGroup&gt;io.codearte.Spring Cloud Contract&lt;/pluginGroup&gt;&lt;/pluginGroups&gt;</code>.
    +</div>
    +</div>
    +                  </div>
    +            </div>
    +          </div>
    +
    +    <hr/>
    +
    +    <footer>
    +            <div class="container-fluid">
    +                      <div class="row-fluid">
    +                                      <p >Copyright &copy;                    2016
    +                        <a href="http://spring.io/">Spring</a>.
    +            All rights reserved.    
    +      </p>
    +                </div>
    +
    +        
    +                </div>
    +    </footer>
    +        </body>
    +</html>
    diff --git a/HEAD/spring-cloud-contract.html b/HEAD/spring-cloud-contract.html
    new file mode 100644
    index 0000000000..cc11f4d7ea
    --- /dev/null
    +++ b/HEAD/spring-cloud-contract.html
    @@ -0,0 +1,5162 @@
    +<!DOCTYPE html>
    +<html lang="en">
    +<head>
    +<meta charset="UTF-8">
    +<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
    +<meta name="viewport" content="width=device-width, initial-scale=1.0">
    +<meta name="generator" content="Asciidoctor 1.5.3">
    +<title>Spring Cloud Contract</title>
    +<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
    +<style>
    +/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
    +/* Remove comment around @import statement below when using as a custom stylesheet */
    +/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
    +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
    +audio,canvas,video{display:inline-block}
    +audio:not([controls]){display:none;height:0}
    +[hidden],template{display:none}
    +script{display:none!important}
    +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
    +body{margin:0}
    +a{background:transparent}
    +a:focus{outline:thin dotted}
    +a:active,a:hover{outline:0}
    +h1{font-size:2em;margin:.67em 0}
    +abbr[title]{border-bottom:1px dotted}
    +b,strong{font-weight:bold}
    +dfn{font-style:italic}
    +hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
    +mark{background:#ff0;color:#000}
    +code,kbd,pre,samp{font-family:monospace;font-size:1em}
    +pre{white-space:pre-wrap}
    +q{quotes:"\201C" "\201D" "\2018" "\2019"}
    +small{font-size:80%}
    +sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
    +sup{top:-.5em}
    +sub{bottom:-.25em}
    +img{border:0}
    +svg:not(:root){overflow:hidden}
    +figure{margin:0}
    +fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
    +legend{border:0;padding:0}
    +button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
    +button,input{line-height:normal}
    +button,select{text-transform:none}
    +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
    +button[disabled],html input[disabled]{cursor:default}
    +input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
    +input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
    +input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
    +button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
    +textarea{overflow:auto;vertical-align:top}
    +table{border-collapse:collapse;border-spacing:0}
    +*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
    +html,body{font-size:100%}
    +body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
    +a:hover{cursor:pointer}
    +img,object,embed{max-width:100%;height:auto}
    +object,embed{height:100%}
    +img{-ms-interpolation-mode:bicubic}
    +.left{float:left!important}
    +.right{float:right!important}
    +.text-left{text-align:left!important}
    +.text-right{text-align:right!important}
    +.text-center{text-align:center!important}
    +.text-justify{text-align:justify!important}
    +.hide{display:none}
    +body{-webkit-font-smoothing:antialiased}
    +img,object,svg{display:inline-block;vertical-align:middle}
    +textarea{height:auto;min-height:50px}
    +select{width:100%}
    +.center{margin-left:auto;margin-right:auto}
    +.spread{width:100%}
    +p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
    +.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
    +div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
    +a{color:#2156a5;text-decoration:underline;line-height:inherit}
    +a:hover,a:focus{color:#1d4b8f}
    +a img{border:none}
    +p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
    +p aside{font-size:.875em;line-height:1.35;font-style:italic}
    +h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
    +h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
    +h1{font-size:2.125em}
    +h2{font-size:1.6875em}
    +h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
    +h4,h5{font-size:1.125em}
    +h6{font-size:1em}
    +hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
    +em,i{font-style:italic;line-height:inherit}
    +strong,b{font-weight:bold;line-height:inherit}
    +small{font-size:60%;line-height:inherit}
    +code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
    +ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
    +ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
    +ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
    +ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
    +ul.square{list-style-type:square}
    +ul.circle{list-style-type:circle}
    +ul.disc{list-style-type:disc}
    +ul.no-bullet{list-style:none}
    +ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
    +dl dt{margin-bottom:.3125em;font-weight:bold}
    +dl dd{margin-bottom:1.25em}
    +abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
    +abbr{text-transform:none}
    +blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
    +blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
    +blockquote cite:before{content:"\2014 \0020"}
    +blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
    +blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
    +@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
    +h1{font-size:2.75em}
    +h2{font-size:2.3125em}
    +h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
    +h4{font-size:1.4375em}}
    +table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
    +table thead,table tfoot{background:#f7f8f7;font-weight:bold}
    +table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
    +table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
    +table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
    +table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
    +body{tab-size:4}
    +h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
    +h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
    +.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
    +.clearfix:after,.float-group:after{clear:both}
    +*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
    +pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
    +.keyseq{color:rgba(51,51,51,.8)}
    +kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
    +.keyseq kbd:first-child{margin-left:0}
    +.keyseq kbd:last-child{margin-right:0}
    +.menuseq,.menu{color:rgba(0,0,0,.8)}
    +b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
    +b.button:before{content:"[";padding:0 3px 0 2px}
    +b.button:after{content:"]";padding:0 2px 0 3px}
    +p a>code:hover{color:rgba(0,0,0,.9)}
    +#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
    +#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
    +#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
    +#content{margin-top:1.25em}
    +#content:before{content:none}
    +#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
    +#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
    +#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
    +#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
    +#header .details span:first-child{margin-left:-.125em}
    +#header .details span.email a{color:rgba(0,0,0,.85)}
    +#header .details br{display:none}
    +#header .details br+span:before{content:"\00a0\2013\00a0"}
    +#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
    +#header .details br+span#revremark:before{content:"\00a0|\00a0"}
    +#header #revnumber{text-transform:capitalize}
    +#header #revnumber:after{content:"\00a0"}
    +#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
    +#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
    +#toc>ul{margin-left:.125em}
    +#toc ul.sectlevel0>li>a{font-style:italic}
    +#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
    +#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
    +#toc li{line-height:1.3334;margin-top:.3334em}
    +#toc a{text-decoration:none}
    +#toc a:active{text-decoration:underline}
    +#toctitle{color:#7a2518;font-size:1.2em}
    +@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
    +body.toc2{padding-left:15em;padding-right:0}
    +#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
    +#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
    +#toc.toc2>ul{font-size:.9em;margin-bottom:0}
    +#toc.toc2 ul ul{margin-left:0;padding-left:1em}
    +#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
    +body.toc2.toc-right{padding-left:0;padding-right:15em}
    +body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
    +@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
    +#toc.toc2{width:20em}
    +#toc.toc2 #toctitle{font-size:1.375em}
    +#toc.toc2>ul{font-size:.95em}
    +#toc.toc2 ul ul{padding-left:1.25em}
    +body.toc2.toc-right{padding-left:0;padding-right:20em}}
    +#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
    +#content #toc>:first-child{margin-top:0}
    +#content #toc>:last-child{margin-bottom:0}
    +#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
    +#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
    +.sect1{padding-bottom:.625em}
    +@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
    +.sect1+.sect1{border-top:1px solid #efefed}
    +#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
    +#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
    +#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
    +#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
    +#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
    +.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
    +.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
    +table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
    +.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
    +table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
    +.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
    +.admonitionblock>table td.icon{text-align:center;width:80px}
    +.admonitionblock>table td.icon img{max-width:none}
    +.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
    +.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
    +.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
    +.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
    +.exampleblock>.content>:first-child{margin-top:0}
    +.exampleblock>.content>:last-child{margin-bottom:0}
    +.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
    +.sidebarblock>:first-child{margin-top:0}
    +.sidebarblock>:last-child{margin-bottom:0}
    +.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
    +.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
    +.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
    +.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
    +.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
    +.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
    +@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
    +@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
    +.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
    +.listingblock pre.highlightjs{padding:0}
    +.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
    +.listingblock pre.prettyprint{border-width:0}
    +.listingblock>.content{position:relative}
    +.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
    +.listingblock:hover code[data-lang]:before{display:block}
    +.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
    +.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
    +table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
    +table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
    +table.pyhltable td.code{padding-left:.75em;padding-right:0}
    +pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
    +pre.pygments .lineno{display:inline-block;margin-right:.25em}
    +table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
    +.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
    +.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
    +.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
    +.quoteblock blockquote{margin:0;padding:0;border:0}
    +.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
    +.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
    +.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
    +.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
    +.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
    +.quoteblock .quoteblock blockquote:before{display:none}
    +.verseblock{margin:0 1em 1.25em 1em}
    +.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
    +.verseblock pre strong{font-weight:400}
    +.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
    +.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
    +.quoteblock .attribution br,.verseblock .attribution br{display:none}
    +.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
    +.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
    +.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
    +.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
    +table.tableblock{max-width:100%;border-collapse:separate}
    +table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
    +table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
    +table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
    +table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
    +table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
    +table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
    +table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
    +table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
    +table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
    +table.frame-all{border-width:1px}
    +table.frame-sides{border-width:0 1px}
    +table.frame-topbot{border-width:1px 0}
    +th.halign-left,td.halign-left{text-align:left}
    +th.halign-right,td.halign-right{text-align:right}
    +th.halign-center,td.halign-center{text-align:center}
    +th.valign-top,td.valign-top{vertical-align:top}
    +th.valign-bottom,td.valign-bottom{vertical-align:bottom}
    +th.valign-middle,td.valign-middle{vertical-align:middle}
    +table thead th,table tfoot th{font-weight:bold}
    +tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
    +tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
    +p.tableblock>code:only-child{background:none;padding:0}
    +p.tableblock{font-size:1em}
    +td>div.verse{white-space:pre}
    +ol{margin-left:1.75em}
    +ul li ol{margin-left:1.5em}
    +dl dd{margin-left:1.125em}
    +dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
    +ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
    +ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
    +ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
    +ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
    +ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
    +ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
    +ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
    +ul.inline>li>*{display:block}
    +.unstyled dl dt{font-weight:400;font-style:normal}
    +ol.arabic{list-style-type:decimal}
    +ol.decimal{list-style-type:decimal-leading-zero}
    +ol.loweralpha{list-style-type:lower-alpha}
    +ol.upperalpha{list-style-type:upper-alpha}
    +ol.lowerroman{list-style-type:lower-roman}
    +ol.upperroman{list-style-type:upper-roman}
    +ol.lowergreek{list-style-type:lower-greek}
    +.hdlist>table,.colist>table{border:0;background:none}
    +.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
    +td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
    +td.hdlist1{font-weight:bold;padding-bottom:1.25em}
    +.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
    +.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
    +.colist>table tr>td:last-of-type{padding:.25em 0}
    +.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
    +.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
    +.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
    +.imageblock>.title{margin-bottom:0}
    +.imageblock.thumb,.imageblock.th{border-width:6px}
    +.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
    +.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
    +.image.left{margin-right:.625em}
    +.image.right{margin-left:.625em}
    +a.image{text-decoration:none;display:inline-block}
    +a.image object{pointer-events:none}
    +sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
    +sup.footnote a,sup.footnoteref a{text-decoration:none}
    +sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
    +#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
    +#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
    +#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
    +#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
    +#footnotes .footnote:last-of-type{margin-bottom:0}
    +#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
    +.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
    +.gist .file-data>table td.line-data{width:99%}
    +div.unbreakable{page-break-inside:avoid}
    +.big{font-size:larger}
    +.small{font-size:smaller}
    +.underline{text-decoration:underline}
    +.overline{text-decoration:overline}
    +.line-through{text-decoration:line-through}
    +.aqua{color:#00bfbf}
    +.aqua-background{background-color:#00fafa}
    +.black{color:#000}
    +.black-background{background-color:#000}
    +.blue{color:#0000bf}
    +.blue-background{background-color:#0000fa}
    +.fuchsia{color:#bf00bf}
    +.fuchsia-background{background-color:#fa00fa}
    +.gray{color:#606060}
    +.gray-background{background-color:#7d7d7d}
    +.green{color:#006000}
    +.green-background{background-color:#007d00}
    +.lime{color:#00bf00}
    +.lime-background{background-color:#00fa00}
    +.maroon{color:#600000}
    +.maroon-background{background-color:#7d0000}
    +.navy{color:#000060}
    +.navy-background{background-color:#00007d}
    +.olive{color:#606000}
    +.olive-background{background-color:#7d7d00}
    +.purple{color:#600060}
    +.purple-background{background-color:#7d007d}
    +.red{color:#bf0000}
    +.red-background{background-color:#fa0000}
    +.silver{color:#909090}
    +.silver-background{background-color:#bcbcbc}
    +.teal{color:#006060}
    +.teal-background{background-color:#007d7d}
    +.white{color:#bfbfbf}
    +.white-background{background-color:#fafafa}
    +.yellow{color:#bfbf00}
    +.yellow-background{background-color:#fafa00}
    +span.icon>.fa{cursor:default}
    +.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
    +.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
    +.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
    +.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
    +.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
    +.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
    +.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
    +.conum[data-value] *{color:#fff!important}
    +.conum[data-value]+b{display:none}
    +.conum[data-value]:after{content:attr(data-value)}
    +pre .conum[data-value]{position:relative;top:-.125em}
    +b.conum *{color:inherit!important}
    +.conum:not([data-value]):empty{display:none}
    +dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
    +h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
    +p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
    +p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
    +p{margin-bottom:1.25rem}
    +.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
    +.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
    +.print-only{display:none!important}
    +@media print{@page{margin:1.25cm .75cm}
    +*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
    +a{color:inherit!important;text-decoration:underline!important}
    +a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
    +a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
    +abbr[title]:after{content:" (" attr(title) ")"}
    +pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
    +thead{display:table-header-group}
    +svg{max-width:100%}
    +p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
    +h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
    +#toc,.sidebarblock,.exampleblock>.content{background:none!important}
    +#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
    +.sect1{padding-bottom:0!important}
    +.sect1+.sect1{border:0!important}
    +#header>h1:first-child{margin-top:1.25rem}
    +body.book #header{text-align:center}
    +body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
    +body.book #header .details{border:0!important;display:block;padding:0!important}
    +body.book #header .details span:first-child{margin-left:0!important}
    +body.book #header .details br{display:block}
    +body.book #header .details br+span:before{content:none!important}
    +body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
    +body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
    +.listingblock code[data-lang]:before{display:block}
    +#footer{background:none!important;padding:0 .9375em}
    +#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
    +.hide-on-print{display:none!important}
    +.print-only{display:block!important}
    +.hide-for-print{display:none!important}
    +.show-for-print{display:inherit!important}}
    +</style>
    +</head>
    +<body class="article toc2 toc-left">
    +<div id="header">
    +<h1>Spring Cloud Contract</h1>
    +<div id="toc" class="toc2">
    +<div id="toctitle">Table of Contents</div>
    +<ul class="sectlevel1">
    +<li><a href="#_spring_cloud_contract">Spring Cloud Contract</a></li>
    +<li><a href="#_spring_cloud_contract_verifier">Spring Cloud Contract Verifier</a>
    +<ul class="sectlevel2">
    +<li><a href="#_introduction">Introduction</a>
    +<ul class="sectlevel3">
    +<li><a href="#_why">Why?</a>
    +<ul class="sectlevel4">
    +<li><a href="#_testing_issues">Testing issues</a></li>
    +</ul>
    +</li>
    +<li><a href="#_purposes">Purposes</a></li>
    +<li><a href="#_client_side">Client Side</a></li>
    +<li><a href="#_server_side">Server Side</a></li>
    +<li><a href="#_step_by_step_guide_to_cdc">Step by step guide to CDC</a>
    +<ul class="sectlevel4">
    +<li><a href="#_consumer_side_loan_issuance">Consumer side (Loan Issuance)</a></li>
    +<li><a href="#_producer_side_fraud_detection_server">Producer side (Fraud Detection server)</a></li>
    +</ul>
    +</li>
    +<li><a href="#_dependencies">Dependencies</a></li>
    +<li><a href="#_additional_links">Additional links</a>
    +<ul class="sectlevel4">
    +<li><a href="#_videos">Videos</a></li>
    +<li><a href="#_readings">Readings</a></li>
    +</ul>
    +</li>
    +<li><a href="#_samples">Samples</a></li>
    +<li><a href="#_why_use_spring_cloud_contract_verifier_and_not_x">Why use Spring Cloud Contract Verifier and not X ?</a></li>
    +</ul>
    +</li>
    +<li><a href="#_contract_dsl">Contract DSL</a>
    +<ul class="sectlevel3">
    +<li><a href="#_limitations">Limitations</a></li>
    +<li><a href="#_http_top_level_elements">HTTP Top-Level Elements</a></li>
    +<li><a href="#_request">Request</a></li>
    +<li><a href="#_response">Response</a></li>
    +<li><a href="#_dynamic_properties">Dynamic properties</a></li>
    +<li><a href="#_regular_expressions">Regular expressions</a></li>
    +<li><a href="#_passing_optional_parameters">Passing optional parameters</a></li>
    +<li><a href="#_executing_custom_methods_on_server_side">Executing custom methods on server side</a>
    +<ul class="sectlevel4">
    +<li><a href="#_contract_dsl_2">Contract DSL</a></li>
    +<li><a href="#_base_mock_spec">Base Mock Spec</a></li>
    +</ul>
    +</li>
    +<li><a href="#_jax_rs_support">JAX-RS support</a></li>
    +<li><a href="#_messaging_top_level_elements">Messaging Top-Level Elements</a>
    +<ul class="sectlevel4">
    +<li><a href="#_output_triggered_by_a_method">Output triggered by a method</a></li>
    +<li><a href="#_output_triggered_by_a_message">Output triggered by a message</a></li>
    +<li><a href="#_consumer_producer">Consumer / Producer</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_spring_cloud_contract_verifier_http">Spring Cloud Contract Verifier HTTP</a>
    +<ul class="sectlevel3">
    +<li><a href="#_gradle_project">Gradle Project</a>
    +<ul class="sectlevel4">
    +<li><a href="#_prerequisites">Prerequisites</a>
    +<ul class="sectlevel5">
    +<li><a href="#_add_gradle_plugin_with_dependencies">Add gradle plugin with dependencies</a></li>
    +<li><a href="#_snapshot_versions_for_gradle">Snapshot versions for Gradle</a></li>
    +<li><a href="#_add_maven_plugin_with_dependencies">Add maven plugin with dependencies</a></li>
    +<li><a href="#_add_stubs">Add stubs</a></li>
    +</ul>
    +</li>
    +<li><a href="#_run_plugin">Run plugin</a></li>
    +<li><a href="#_default_setup">Default setup</a></li>
    +<li><a href="#_configure_plugin">Configure plugin</a>
    +<ul class="sectlevel5">
    +<li><a href="#_configuration_options">Configuration options</a></li>
    +<li><a href="#_base_class_for_tests">Base class for tests</a></li>
    +</ul>
    +</li>
    +<li><a href="#_invoking_generated_tests">Invoking generated tests</a></li>
    +<li><a href="#_spring_cloud_contract_verifier_on_consumer_side">Spring Cloud Contract Verifier on consumer side</a></li>
    +</ul>
    +</li>
    +<li><a href="#_using_in_your_maven_project">Using in your Maven project</a>
    +<ul class="sectlevel4">
    +<li><a href="#_add_maven_plugin">Add maven plugin</a>
    +<ul class="sectlevel5">
    +<li><a href="#_snapshot_versions_for_maven">Snapshot versions for Maven</a></li>
    +</ul>
    +</li>
    +<li><a href="#_add_stubs_2">Add stubs</a></li>
    +<li><a href="#_run_plugin_2">Run plugin</a></li>
    +<li><a href="#_configure_plugin_2">Configure plugin</a>
    +<ul class="sectlevel5">
    +<li><a href="#_important_configuration_options">Important configuration options</a></li>
    +<li><a href="#_base_class_for_tests_2">Base class for tests</a></li>
    +</ul>
    +</li>
    +<li><a href="#_invoking_generated_tests_2">Invoking generated tests</a></li>
    +<li><a href="#_spring_cloud_contract_verifier_on_consumer_side_2">Spring Cloud Contract Verifier on consumer side</a></li>
    +</ul>
    +</li>
    +<li><a href="#_scenarios">Scenarios</a></li>
    +</ul>
    +</li>
    +<li><a href="#_spring_cloud_contract_verifier_messaging">Spring Cloud Contract Verifier Messaging</a>
    +<ul class="sectlevel3">
    +<li><a href="#_integrations">Integrations</a></li>
    +<li><a href="#_manual_integration_testing">Manual Integration Testing</a></li>
    +<li><a href="#_publisher_side_test_generation">Publisher side test generation</a>
    +<ul class="sectlevel4">
    +<li><a href="#_scenario_1_no_input_message">Scenario 1 (no input message)</a></li>
    +<li><a href="#_scenario_2_output_triggered_by_input">Scenario 2 (output triggered by input)</a></li>
    +<li><a href="#_scenario_3_no_output_message">Scenario 3 (no output message)</a></li>
    +</ul>
    +</li>
    +<li><a href="#_consumer_stub_side_generation">Consumer Stub Side generation</a>
    +<ul class="sectlevel4">
    +<li><a href="#_gradle_setup">Gradle Setup</a></li>
    +<li><a href="#_maven_setup">Maven Setup</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_spring_cloud_contract_stub_runner">Spring Cloud Contract Stub Runner</a>
    +<ul class="sectlevel3">
    +<li><a href="#_snapshot_versions">Snapshot versions</a></li>
    +<li><a href="#_publishing_stubs_as_jars">Publishing stubs as JARs</a>
    +<ul class="sectlevel4">
    +<li><a href="#_gradle">Gradle</a></li>
    +<li><a href="#_maven">Maven</a></li>
    +</ul>
    +</li>
    +<li><a href="#_modules">Modules</a></li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_core">Stub Runner Core</a>
    +<ul class="sectlevel3">
    +<li><a href="#_running_stubs">Running stubs</a>
    +<ul class="sectlevel4">
    +<li><a href="#_running_using_main_app">Running using main app</a></li>
    +<li><a href="#_http_stubs">HTTP Stubs</a></li>
    +<li><a href="#_viewing_registered_mappings">Viewing registered mappings</a></li>
    +<li><a href="#_messaging_stubs">Messaging Stubs</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_junit_rule">Stub Runner JUnit Rule</a>
    +<ul class="sectlevel3">
    +<li><a href="#_providing_fixed_ports">Providing fixed ports</a></li>
    +<li><a href="#_fluent_api">Fluent API</a></li>
    +<li><a href="#_stub_runner_with_spring">Stub Runner with Spring</a></li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_spring_cloud">Stub Runner Spring Cloud</a>
    +<ul class="sectlevel3">
    +<li><a href="#_stubbing_service_discovery">Stubbing Service Discovery</a></li>
    +<li><a href="#_additional_configuration">Additional Configuration</a></li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_boot_application">Stub Runner Boot Application</a>
    +<ul class="sectlevel3">
    +<li><a href="#_how_to_use_it">How to use it?</a></li>
    +<li><a href="#_endpoints">Endpoints</a>
    +<ul class="sectlevel4">
    +<li><a href="#_http">HTTP</a></li>
    +<li><a href="#_messaging">Messaging</a></li>
    +</ul>
    +</li>
    +<li><a href="#_example">Example</a></li>
    +<li><a href="#_common_properties_for_junit_and_spring">Common properties for JUnit and Spring</a>
    +<ul class="sectlevel4">
    +<li><a href="#_stub_runner_stubs_ids">Stub runner stubs ids</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_for_messaging">Stub Runner for Messaging</a>
    +<ul class="sectlevel3">
    +<li><a href="#_stub_triggering">Stub triggering</a>
    +<ul class="sectlevel4">
    +<li><a href="#_trigger_by_label">Trigger by label</a>
    +<ul class="sectlevel5">
    +<li><a href="#_trigger_by_group_and_artifact_ids">Trigger by group and artifact ids</a></li>
    +<li><a href="#_trigger_by_artifact_ids">Trigger by artifact ids</a></li>
    +</ul>
    +</li>
    +<li><a href="#_trigger_all_messages">Trigger all messages</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_camel">Stub Runner Camel</a>
    +<ul class="sectlevel3">
    +<li><a href="#_adding_it_to_the_project">Adding it to the project</a></li>
    +<li><a href="#_examples">Examples</a>
    +<ul class="sectlevel4">
    +<li><a href="#_stubs_structure">Stubs structure</a></li>
    +<li><a href="#_scenario_1_no_input_message_2">Scenario 1 (no input message)</a></li>
    +<li><a href="#_scenario_2_output_triggered_by_input_2">Scenario 2 (output triggered by input)</a></li>
    +<li><a href="#_scenario_3_input_with_no_output">Scenario 3 (input with no output)</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_integration">Stub Runner Integration</a>
    +<ul class="sectlevel3">
    +<li><a href="#_adding_it_to_the_project_2">Adding it to the project</a></li>
    +<li><a href="#_examples_2">Examples</a>
    +<ul class="sectlevel4">
    +<li><a href="#_stubs_structure_2">Stubs structure</a></li>
    +<li><a href="#_scenario_1_no_input_message_3">Scenario 1 (no input message)</a></li>
    +<li><a href="#_scenario_2_output_triggered_by_input_3">Scenario 2 (output triggered by input)</a></li>
    +<li><a href="#_scenario_3_input_with_no_output_2">Scenario 3 (input with no output)</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_stub_runner_stream">Stub Runner Stream</a>
    +<ul class="sectlevel3">
    +<li><a href="#_adding_it_to_the_project_3">Adding it to the project</a></li>
    +<li><a href="#_examples_3">Examples</a>
    +<ul class="sectlevel4">
    +<li><a href="#_stubs_structure_3">Stubs structure</a></li>
    +<li><a href="#_scenario_1_no_input_message_4">Scenario 1 (no input message)</a></li>
    +<li><a href="#_scenario_2_output_triggered_by_input_4">Scenario 2 (output triggered by input)</a></li>
    +<li><a href="#_scenario_3_input_with_no_output_3">Scenario 3 (input with no output)</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a href="#_links">Links</a></li>
    +</ul>
    +</li>
    +<li><a href="#_spring_cloud_contract_wiremock">Spring Cloud Contract WireMock</a>
    +<ul class="sectlevel2">
    +<li><a href="#_registering_stubs_automatically">Registering Stubs Automatically</a></li>
    +<li><a href="#_alternative_using_junit_rules">Alternative: Using JUnit Rules</a></li>
    +</ul>
    +</li>
    +<li><a href="#_wiremock_and_spring_mvc_mocks">WireMock and Spring MVC Mocks</a></li>
    +<li><a href="#_generating_stubs_using_restdocs">Generating Stubs using RestDocs</a></li>
    +</ul>
    +</div>
    +</div>
    +<div id="content">
    +<div id="preamble">
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p><em>Documentation Authors: Adam Dudczak, Marcin Grzejszczak, Jakub Kubryński, Karol Lassak,
    +Olga Maciaszek-Sharma, Mariusz Smykuła, Dave Syer</em></p>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="_spring_cloud_contract">Spring Cloud Contract</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>What you always need is confidence in pushing new features into a new application or service in a distributed system.
    +This project provides support for Consumer Driven Contracts and service schemas in Spring applications, covering a
    +range of options for writing tests, publishing them as assets, asserting that a contract is kept by producers
    +and consumers, for HTTP and message-based interactions.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="_spring_cloud_contract_verifier">Spring Cloud Contract Verifier</h2>
    +<div class="sectionbody">
    +<div class="sect2">
    +<h3 id="_introduction">Introduction</h3>
    +<div class="admonitionblock important">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Important</div>
    +</td>
    +<td class="content">
    +<a href="http://codearte.github.io/accurest">The documentation to the deprecated Accurest project in version 1.1.0 is available here.</a>
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="admonitionblock tip">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Tip</div>
    +</td>
    +<td class="content">
    +The Accurest project was initially started by Marcin Grzejszczak and Jakub Kubrynski (<a href="http://codearte.io">codearte.io</a>)
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="paragraph">
    +<p>Just to make long story short - Spring Cloud Contract Verifier is a tool that enables Consumer Driven Contract (CDC) development of JVM-based applications. It is shipped
    +with <em>Contract Definition Language</em> (DSL). Contract definitions are used to produce following resources:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>JSON stub definitions to be used by WireMock when doing integration testing on the client code (<em>client tests</em>).
    +Test code must still be written by hand, test data is produced by Spring Cloud Contract Verifier.</p>
    +</li>
    +<li>
    +<p>Messaging routes if you&#8217;re using one. We&#8217;re integrating with Spring Integration, Spring Cloud Stream and Apache Camel. You can however set your own integrations if you want to</p>
    +</li>
    +<li>
    +<p>Acceptance tests (in JUnit or Spock) used to verify if server-side implementation of the API is compliant with the contract (<em>server tests</em>).
    +Full test is generated by Spring Cloud Contract Verifier.</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier moves TDD to the level of software architecture.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_why">Why?</h4>
    +<div class="paragraph">
    +<p>Let us assume that we have a system comprising of multiple microservices:</p>
    +</div>
    +<div class="imageblock">
    +<div class="content">
    +<img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/docs/src/main/asciidoc/images/Deps.png" alt="Microservices Architecture">
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_testing_issues">Testing issues</h5>
    +<div class="paragraph">
    +<p>If we wanted to test the application in top left corner if it can communicate with other services then we could do one of two things:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>deploy all microservices and perform end to end tests</p>
    +</li>
    +<li>
    +<p>mock other microservices in unit / integration tests</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Both have their advantages but also a lot of disadvantages. Let&#8217;s focus on the latter.</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>Deploy all microservices and perform end to end tests</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>Advantages:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>simulates production</p>
    +</li>
    +<li>
    +<p>tests real communication between services</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Disadvantages:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>to test one microservice we would have to deploy 6 microservices, a couple of databases etc.</p>
    +</li>
    +<li>
    +<p>the environment where the tests would be conducted would be locked for a single suite of tests (i.e. nobody else would be able to run the tests in the meantime).</p>
    +</li>
    +<li>
    +<p>long to run</p>
    +</li>
    +<li>
    +<p>very late feedback</p>
    +</li>
    +<li>
    +<p>extremely hard to debug</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p><strong>Mock other microservices in unit / integration tests</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>Advantages:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>very fast feedback</p>
    +</li>
    +<li>
    +<p>no infrastructure requirements</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Disadvantages:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>the implementor of the service creates stubs thus they might have nothing to do with the reality</p>
    +</li>
    +<li>
    +<p>you can go to production with passing tests and failing production</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>To solve the aforementioned issues Spring Cloud Contract Verifier with Stub Runner were created. Their main idea is to give you very fast feedback, without the need
    +to set up the whole world of microservices.</p>
    +</div>
    +<div class="imageblock">
    +<div class="content">
    +<img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/docs/src/main/asciidoc/images/Stubs1.png" alt="Stubbed Services">
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>If you work on stubs then the only applications you need are those that your application is using directly.</p>
    +</div>
    +<div class="imageblock">
    +<div class="content">
    +<img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/docs/src/main/asciidoc/images/Stubs2.png" alt="Stubbed Services">
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier gives you the certainty that the stubs that you&#8217;re using were created by the service that you&#8217;re calling. Also if you can use them it means that they were
    +tested against the producer&#8217;s side. In other words - you can trust those stubs.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_purposes">Purposes</h4>
    +<div class="paragraph">
    +<p>The main purposes of Spring Cloud Contract Verifier with Stub Runner are:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>to ensure that WireMock / Messaging stubs (used when developing the client) are doing exactly what actual server-side implementation will do,</p>
    +</li>
    +<li>
    +<p>to promote ATDD method and Microservices architectural style,</p>
    +</li>
    +<li>
    +<p>to provide a way to publish changes in contracts that are immediately visible on both sides,</p>
    +</li>
    +<li>
    +<p>to generate boilerplate test code used on the server side.</p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_client_side">Client Side</h4>
    +<div class="paragraph">
    +<p>During the tests you want to have a WireMock instance / Messaging route up and running that simulates the service Y.
    +You would like to feed that instance with a proper stub definition. That stub definition would need
    +to be valid and should also be reusable on the server side.</p>
    +</div>
    +<div class="paragraph">
    +<p><em>Summing it up:</em> On this side, in the stub definition, you can use patterns for request stubbing and you need exact
    +values for responses.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_server_side">Server Side</h4>
    +<div class="paragraph">
    +<p>Being a service Y since you are developing your stub, you need to be sure that it&#8217;s actually resembling your
    +concrete implementation. You can&#8217;t have a situation where your stub acts in one way and your application on
    +production behaves in a different way.</p>
    +</div>
    +<div class="paragraph">
    +<p>That&#8217;s why from the provided stub acceptance tests will be generated that will ensure
    +that your application behaves in the same way as you define in your stub.</p>
    +</div>
    +<div class="paragraph">
    +<p><em>Summing it up:</em> On this side, in the stub definition, you need exact values as request and can use patterns/methods
    +for response verification.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_step_by_step_guide_to_cdc">Step by step guide to CDC</h4>
    +<div class="paragraph">
    +<p>Let&#8217;s take an example of Fraud Detection and Loan Issuance process. The business scenario is such that we want to issue loans to people but don&#8217;t want them to steal the money from us. The current implementation of our system grants loans to everybody.</p>
    +</div>
    +<div class="paragraph">
    +<p>Let&#8217;s assume that the <code>Loan Issuance</code> is a client to the
    +<code>Fraud Detection</code> server. In the current sprint we are required to develop a new feature - if a client wants to borrow too much money then we mark him as fraud.</p>
    +</div>
    +<div class="paragraph">
    +<p>Technical remark - Fraud Detection will have artifact id <code>http-server</code>, Loan Issuance <code>http-client</code> and both have group id <code>com.example</code>.</p>
    +</div>
    +<div class="paragraph">
    +<p>Social remark - both client and server development teams need to communicate directly and discuss changes while
    +going through the process. CDC is all about communication.</p>
    +</div>
    +<div class="paragraph">
    +<p>The <a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/samples/standalone/http-server">server side code is available here</a> and <a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/samples/standalone/http-client">the client side code here</a>.</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_consumer_side_loan_issuance">Consumer side (Loan Issuance)</h5>
    +<div class="paragraph">
    +<p>As a developer of the Loan Issuance service (a consumer of the Fraud Detection server):</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>start doing TDD by writing a test to your feature</strong></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java[tags=client_tdd,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>We&#8217;ve just written a test of our new feature. If a loan application for a big amount is received we should reject that loan application with some description.</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>write the missing implementation</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>At some point in time you need to send a request to the Fraud Detection service. Let&#8217;s assume that we&#8217;d like to send the request containing the id of the client and the amount he wants to borrow from us. We&#8217;d like to send it to the <code>/fraudcheck</code> url via the <code>PUT</code> method.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/src/main/java/com/example/loan/LoanApplicationService.java[tags=client_call_server,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>For simplicity we&#8217;ve hardcoded the port of the Fraud Detection service at <code>8080</code> and our application is running on <code>8090</code>.</p>
    +</div>
    +<div class="paragraph">
    +<p>If we&#8217;d start the written test it would obviously break since we have no service running on port <code>8080</code>.</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>clone the Fraud Detection service repository locally</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>We&#8217;ll start playing around with the server side contract. That&#8217;s why we need to first clone it.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">git clone https://your-git-server.com/server-side.git local-http-server-repo</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><strong>define the contract locally in the repo of Fraud Detection service</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>As consumers we need to define what exactly we want to achieve. We need to formulate our expectations. That&#8217;s why we write the following contract.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/test/resources/contracts/shouldMarkClientAsFraud.groovy[]
    +
    +The Contract is written using a statically typed Groovy DSL. You might be wondering what are those
    +`value(client(...), server(...))` parts. By using this notation Spring Cloud Contract allows you to
    +define parts of a JSON / URL / etc. which are dynamic. In case of an identifier or a timestamp you
    +don't want to hardcode a value. You want to allow some different ranges of values. That's why for
    +the consumer side you can set regular expressions matching those values. You can provide the body
    +either by means of a map notation or String with interpolations.
    +https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_contract_dsl[Consult the docs
    +for more information.] We highly recommend using the map notation!
    +
    +The aforementioned contract is an agreement between two sides that:
    +
    +- if an HTTP request is sent with
    +** a method `PUT` on an endpoint `/fraudcheck`
    +** JSON body with `clientId` matching the regular expression `[0-9]{10}` and `loanAmount` equal to `99999`
    +** and with a header `Content-Type` equal to `application/vnd.fraud.v1+json`
    +- then an HTTP response would be sent to the consumer that
    +** has status `200`
    +** contains JSON body with the `fraudCheckStatus` field containing a value `FRAUD` and the `rejectionReason` field having value `Amount too high`
    +** and a `Content-Type` header with a value of `application/vnd.fraud.v1+json`
    +
    +Once we're ready to check the API in practice in the integration tests we need to just install the stubs locally
    +
    +*add the Spring Cloud Contract Verifier plugin*
    +
    +We can add either Maven or Gradle plugin - in this example we'll show how to add Maven. First we need to add the `Spring Cloud Contract` BOM.
    +
    +[source,xml,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/pom.xml[tags=contract_bom,indent=0]</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>Next, the `Spring Cloud Contract Verifier` Maven plugin
    +
    +[source,xml,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/pom.xml[tags=contract_maven_plugin,indent=0]</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>Since the plugin was added we get the `Spring Cloud Contract Verifier` features which from the provided contracts:
    +
    +- generate and run tests
    +- produce and install stubs
    +
    +We don't want to generate tests since we, as consumers, want only to play with the stubs. That's why we need to skip the tests generation and execution. When we execute:
    +
    +[source,bash,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>cd local-http-server-repo
    +./mvnw clean install -DskipTests</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>In the logs we'll see something like this:
    +
    +[source,bash,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>[INFO] --- spring-cloud-contract-maven-plugin:1.0.0.BUILD-SNAPSHOT:generateStubs (default-generateStubs) @ http-server ---
    +[INFO] Building jar: /some/path/http-server/target/http-server-0.0.1-SNAPSHOT-stubs.jar</p>
    +</div>
    +<div class="paragraph">
    +<p>[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ http-server ---
    +[INFO] Building jar: /some/path/http-server/target/http-server-0.0.1-SNAPSHOT.jar</p>
    +</div>
    +<div class="paragraph">
    +<p>[INFO] --- spring-boot-maven-plugin:1.4.0.BUILD-SNAPSHOT:repackage (default) @ http-server ---</p>
    +</div>
    +<div class="paragraph">
    +<p>[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ http-server ---
    +[INFO] Installing /some/path/http-server/target/http-server-0.0.1-SNAPSHOT.jar to /path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT.jar
    +[INFO] Installing /some/path/http-server/pom.xml to /path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT.pom
    +[INFO] Installing /some/path/http-server/target/http-server-0.0.1-SNAPSHOT-stubs.jar to /path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT-stubs.jar</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>This line is extremely important
    +
    +[source,bash,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>[INFO] Installing /some/path/http-server/target/http-server-0.0.1-SNAPSHOT-stubs.jar to /path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT-stubs.jar</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>It's confirming that the stubs of the `http-server` have been installed in the local repository.
    +
    +*run the integration tests*
    +
    +In order to profit from the Spring Cloud Contract Stub Runner functionality of automatic stub downloading you have to do the following in our consumer side project (`Loan Application service`).
    +
    +Add the `Spring Cloud Contract` BOM
    +
    +[source,xml,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/pom.xml[tags=contract_bom,indent=0]</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>Add the dependency to `Spring Cloud Contract Stub Runner`
    +
    +[source,xml,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/pom.xml[tags=stub_runner,indent=0]</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>Provide the group id and artifact id for the Stub Runner to download stubs of your collaborators. Also provide the offline work switch since you're playing with the collaborators offline (optional step).
    +
    +[source,yaml,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/src/test/resources/application.yaml[]</p>
    +</div>
    +<div class="paragraph">
    +<p>Annotate your test class with <code>@AutoConfigureStubRunner</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java[tags=autoconfigure_stubrunner,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Now if you run your tests you&#8217;ll see sth like this:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">2016-07-19 14:22:25.403  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Desired version is + - will try to resolve the latest version
    +2016-07-19 14:22:25.438  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Resolved version is 0.0.1-SNAPSHOT
    +2016-07-19 14:22:25.439  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Resolving artifact com.example:http-server:jar:stubs:0.0.1-SNAPSHOT using remote repositories []
    +2016-07-19 14:22:25.451  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Resolved artifact com.example:http-server:jar:stubs:0.0.1-SNAPSHOT to /path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT-stubs.jar
    +2016-07-19 14:22:25.465  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Unpacking stub from JAR [URI: file:/path/to/your/.m2/repository/com/example/http-server/0.0.1-SNAPSHOT/http-server-0.0.1-SNAPSHOT-stubs.jar]
    +2016-07-19 14:22:25.475  INFO 41050 --- [           main] o.s.c.c.stubrunner.AetherStubDownloader  : Unpacked file to [/var/folders/0p/xwq47sq106x1_g3dtv6qfm940000gq/T/contracts100276532569594265]
    +2016-07-19 14:22:27.737  INFO 41050 --- [           main] o.s.c.c.stubrunner.StubRunnerExecutor    : All stubs are now running RunningStubs [namesAndPorts={com.example:http-server:0.0.1-SNAPSHOT:stubs=8080}]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Which means that Stub Runner has found your stubs and started a server for app with group id <code>com.example</code>, artifact id <code>http-server</code> with version <code>0.0.1-SNAPSHOT</code> of the stubs and with <code>stubs</code> classifier on port <code>8080</code>.</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>file a PR</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>What we did until now is an iterative process. We can play around with the contract, install it locally and work on the consumer side until we&#8217;re happy with the contract.</p>
    +</div>
    +<div class="paragraph">
    +<p>Once we&#8217;re satisfied with the results and the test passes publish a PR to the server side. Currently the consumer side work is done.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_producer_side_fraud_detection_server">Producer side (Fraud Detection server)</h5>
    +<div class="paragraph">
    +<p>As a developer of the Fraud Detection server (a server to the Loan Issuance service):</p>
    +</div>
    +<div class="paragraph">
    +<p><strong>initial implementation</strong></p>
    +</div>
    +<div class="paragraph">
    +<p>As a reminder here you can see the initial implementation</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/main/java/com/example/fraud/FraudDetectionController.java[tags=server_api,indent=0]
    +Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/main/java/com/example/fraud/FraudDetectionController.java[tags=initial_impl,indent=0]
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><strong>take over the PR</strong></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">git checkout -b contract-change-pr master
    +git pull https://your-git-server.com/server-side-fork.git contract-change-pr</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>You have to add the dependencies needed by the autogenerated tests</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/pom.xml[tags=verifier_test_dependencies,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In the configuration of the Maven plugin we passed the <code>baseClassForTests</code> property</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/pom.xml[tags=contract_maven_plugin,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>That&#8217;s because all the generated tests will extend that class. Over there you can set up your Spring Context or whatever is necessary. In our case we&#8217;re using <a href="http://rest-assured.io/">Rest Assured MVC</a> to start the server side <code>FraudDetectionController</code>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/test/java/com/example/fraud/MvcTest.java[]
    +
    +Now, if you run the `./mvnw clean install` you would get sth like this:
    +
    +[source,bash,indent=0]</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Results :</p>
    +</div>
    +<div class="paragraph">
    +<p>Tests in error:
    +  ContractVerifierTest.validate_shouldMarkClientAsFraud:32 » IllegalState Parsed&#8230;&#8203;</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>That's because you have a new contract from which a test was generated and it failed since you haven't implemented the feature. The autogenerated test would look like this:
    +
    +[source,java,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>@Test
    +public void validate_shouldMarkClientAsFraud() throws Exception {
    +    // given:
    +        MockMvcRequestSpecification request = given()
    +                .header("Content-Type", "application/vnd.fraud.v1+json")
    +                .body("{\"clientId\":\"1234567890\",\"loanAmount\":99999}");</p>
    +</div>
    +<div class="literalblock">
    +<div class="content">
    +<pre>// when:
    +    ResponseOptions response = given().spec(request)
    +            .put("/fraudcheck");</pre>
    +</div>
    +</div>
    +<div class="literalblock">
    +<div class="content">
    +<pre>    // then:
    +        assertThat(response.statusCode()).isEqualTo(200);
    +        assertThat(response.header("Content-Type")).matches("application/vnd.fraud.v1.json.*");
    +    // and:
    +        DocumentContext parsedJson = JsonPath.parse(response.getBody().asString());
    +        assertThatJson(parsedJson).field("fraudCheckStatus").matches("[A-Z]{5}");
    +        assertThatJson(parsedJson).field("rejectionReason").isEqualTo("Amount too high");
    +}</pre>
    +</div>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>As you can see all the `producer()` parts of the Contract that were present in the `value(consumer(...), producer(...))` blocks got injected into the test.
    +
    +What's important here to note is that on the producer side we also are doing TDD. We have expectations in form of a test. This test is shooting a request to our own application to an URL, headers and body defined in the contract. It also is expecting very precisely defined values in the response. In other words you have is your `red` part of `red`, `green` and `refactor`. Time to convert the `red` into the `green`.
    +
    +*write the missing implementation*
    +
    +Now since we now what is the expected input and expected output let's write the missing implementation.
    +
    +[source,java,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/main/java/com/example/fraud/FraudDetectionController.java[tags=server_api,indent=0]
    +Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/main/java/com/example/fraud/FraudDetectionController.java[tags=new_impl,indent=0]
    +Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-server/src/main/java/com/example/fraud/FraudDetectionController.java[tags=initial_impl,indent=0]
    +}</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>If we execute `./mvnw clean install` again the tests will pass. Since the `Spring Cloud Contract Verifier` plugin adds the tests to the `generated-test-sources` you can actually run those tests from your IDE.
    +
    +*deploy your app*
    +
    +Once you've finished your work it's time to deploy your change. First merge the branch
    +
    +[source,bash,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>git checkout master
    +git merge --no-ff contract-change-pr
    +git push origin master</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>Then we assume that your CI would run sth like `./mvnw clean deploy` which would publish both the application and the stub artifcats.
    +
    +===== Consumer side (Loan Issuance) final step
    +
    +As a developer of the Loan Issuance service (a consumer of the Fraud Detection server):
    +
    +*merge branch to master*
    +
    +[source,bash,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>git checkout master
    +git merge --no-ff contract-change-pr</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>*work online*
    +
    +Now you can disable the offline work for Spring Cloud Contract Stub Runner ad provide where the repository with your stubs is placed. At this moment the stubs of the server side will be automatically downloaded from Nexus / Artifactory.
    +
    +[source,yaml,indent=0]</pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Unresolved directive in verifier/introduction.adoc - include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-contract/master/samples/standalone/http-client/src/test/resources/application-test-repo.yaml[]</p>
    +</div>
    +<div class="paragraph">
    +<p>And that&#8217;s it!</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_dependencies">Dependencies</h4>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier and Stub Runner are using the following libraries</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><a href="http://wiremock.org/">WireMock</a></p>
    +</li>
    +<li>
    +<p><a href="https://github.com/jayway/JsonPath">Jayway JSONPath</a></p>
    +</li>
    +<li>
    +<p><a href="https://github.com/marcingrzejszczak/jsonassert">JSONAssert from Marcin Grzejszczak</a></p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_additional_links">Additional links</h4>
    +<div class="paragraph">
    +<p>Below you can find some resources related to Spring Cloud Contract Verifier and Stub Runner. Note that some can be outdated since the Spring Cloud Contract Verifier project
    +is under constant development.</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_videos">Videos</h5>
    +<div class="paragraph">
    +<p><strong>Marcin Grzejszczak and Jakub Kubryński talking about Spring Cloud Contract Verifier</strong></p>
    +</div>
    +<div class="videoblock">
    +<div class="content">
    +<iframe src="https://www.youtube.com/embed/msRFcQM07-Y?rel=0" frameborder="0" allowfullscreen></iframe>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><a href="https://www.youtube.com/watch?v=msRFcQM07-Y">click here to see the video</a></p>
    +</div>
    +<div class="paragraph">
    +<p><strong>Olga Maciaszek-Sharma talking about Accurest (Spring Cloud Contract Verifier predecessor)</strong></p>
    +</div>
    +<div class="videoblock">
    +<div class="content">
    +<iframe src="https://www.youtube.com/embed/daafmTYFoDU?rel=0" frameborder="0" allowfullscreen></iframe>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><a href="https://www.youtube.com/watch?v=daafmTYFoDU">click here to see the video</a></p>
    +</div>
    +<div class="paragraph">
    +<p><strong>Marcin Grzejszczak and Jakub Kubryński talking about Accurest (Spring Cloud Contract Verifier predecessor)</strong></p>
    +</div>
    +<div class="videoblock">
    +<div class="content">
    +<iframe src="https://player.vimeo.com/video/130779882" frameborder="0" allowfullscreen></iframe>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><a href="https://vimeo.com/130779882">click here to see the video</a></p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_readings">Readings</h5>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><a href="http://www.slideshare.net/MarcinGrzejszczak/stick-to-the-rules-consumer-driven-contracts-201507-confitura">Slides from Marcin Grzejszczak&#8217;s talk about Accurest</a></p>
    +</li>
    +<li>
    +<p><a href="http://toomuchcoding.com/blog/categories/accurest/">Accurest related articles from Marcin Grzejszczak&#8217;s blog</a></p>
    +</li>
    +<li>
    +<p><a href="http://toomuchcoding.com/blog/categories/spring-cloud-contract/">Spring Cloud Contract related articles from Marcin Grzejszczak&#8217;s blog</a></p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_samples">Samples</h4>
    +<div class="paragraph">
    +<p>Here you can find some <a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/samples/">samples</a>.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_why_use_spring_cloud_contract_verifier_and_not_x">Why use Spring Cloud Contract Verifier and not X ?</h4>
    +<div class="paragraph">
    +<p>For the time being Spring Cloud Contract Verifier is a JVM based tool. So it could be your first pick when you&#8217;re already creating
    +software for the JVM. This project has a lot of really interesting features but especially quite a few of them definitely make
    +Spring Cloud Contract Verifier stand out on the "market" of Consumer Driven Contract (CDC) tooling. Out of many the most interesting are:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>Possibility to do CDC with messaging</p>
    +</li>
    +<li>
    +<p>Clear and easy to use, statically typed DSL</p>
    +</li>
    +<li>
    +<p>Possibility to copy paste your current JSON file to the contract and only edit its elements</p>
    +</li>
    +<li>
    +<p>Automatic generation of tests from the defined Contract</p>
    +</li>
    +<li>
    +<p>Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory</p>
    +</li>
    +<li>
    +<p>Spring Cloud integration - no discovery service is needed for integration tests</p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_contract_dsl">Contract DSL</h3>
    +<div class="admonitionblock important">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Important</div>
    +</td>
    +<td class="content">
    +Remember that inside the contract file you have to provide the fully qualified name to
    +the <code>Contract</code> class and the <code>make</code> static import i.e. <code>org.springframework.cloud.spec.Contract.make { &#8230;&#8203; }</code>.
    +You can also provide an import to the <code>Contract</code> class <code>import org.springframework.cloud.spec.Contract</code> and then call
    +  <code>Contract.make { &#8230;&#8203; }</code>
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="paragraph">
    +<p>Contract DSL is written in Groovy, but don&#8217;t be alarmed if you didn&#8217;t use Groovy before. Knowledge of the language is not really needed as our DSL uses only
    +a tiny subset of it (namely literals, method calls and closures). What&#8217;s more the DSL is designed to be programmer-readable without any knowledge of the DSL itself -
    + it&#8217;s statically typed.</p>
    +</div>
    +<div class="paragraph">
    +<p>The Contract is present in the <code>spring-cloud-contract-spec</code> module of the Spring Cloud Contract Verifier repository.</p>
    +</div>
    +<div class="paragraph">
    +<p>Let&#8217;s look at full example of a contract definition.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		method 'PUT'
    +		url '/api/12'
    +		headers {
    +			header 'Content-Type': 'application/vnd.org.springframework.cloud.contract.verifier.twitter-places-analyzer.v1+json'
    +		}
    +		body '''\
    +		[{
    +			"created_at": "Sat Jul 26 09:38:57 +0000 2014",
    +			"id": 492967299297845248,
    +			"id_str": "492967299297845248",
    +			"text": "Gonna see you at Warsaw",
    +			"place":
    +			{
    +				"attributes":{},
    +				"bounding_box":
    +				{
    +					"coordinates":
    +						[[
    +							[-77.119759,38.791645],
    +							[-76.909393,38.791645],
    +							[-76.909393,38.995548],
    +							[-77.119759,38.995548]
    +						]],
    +					"type":"Polygon"
    +				},
    +				"country":"United States",
    +				"country_code":"US",
    +				"full_name":"Washington, DC",
    +				"id":"01fbe706f872cb32",
    +				"name":"Washington",
    +				"place_type":"city",
    +				"url": "http://api.twitter.com/1/geo/id/01fbe706f872cb32.json"
    +			}
    +		}]
    +	'''
    +	}
    +	response {
    +		status 200
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Not all features of the DSL are used in example above. If you didn&#8217;t find what you are looking for, please check next paragraphs on this page.</p>
    +</div>
    +<div class="quoteblock">
    +<blockquote>
    +<div class="paragraph">
    +<p>You can easily compile Contracts to WireMock stubs mapping using standalone maven command: <code>mvn org.springframework.cloud:spring-cloud-contract-maven-plugin:convert</code>.</p>
    +</div>
    +</blockquote>
    +</div>
    +<div class="sect3">
    +<h4 id="_limitations">Limitations</h4>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +Spring Cloud Contract Verifier doesn&#8217;t support XML properly. Please use JSON or help us implement this feature.
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +Spring Cloud Contract Verifier supports equality check on text response. Regular expressions are not yet available.
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +The support for the verification of size of JSON arrays is experimental. If you want to turn it on please provide
    +the value of a system property <code>spring.cloud.contract.verifier.assert.size</code> equal to <code>true</code>. By default this feature is set to
    +<code>false</code>. You can also provide the <code>assertJsonSize</code> property in the plugin configuration.
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +Due to the fact that JSON structure can have any form it&#8217;s sometimes impossible to parse it properly when using
    +the <code>value(consumer(&#8230;&#8203;), producer(&#8230;&#8203;))</code> notation when using that in GString. That&#8217;s why we highly recommend using the
    +Groovy Map notation.
    +</td>
    +</tr>
    +</table>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_http_top_level_elements">HTTP Top-Level Elements</h4>
    +<div class="paragraph">
    +<p>Following methods can be called in the top-level closure of a contract definition. Request and response are mandatory, priority is optional.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	// Definition of HTTP request part of the contract
    +	// (this can be a valid request or invalid depending
    +	// on type of contract being specified).
    +	request {
    +		//...
    +	}
    +
    +	// Definition of HTTP response part of the contract
    +	// (a service implementing this contract should respond
    +	// with following response after receiving request
    +	// specified in "request" part above).
    +	response {
    +		//...
    +	}
    +
    +	// Contract priority, which can be used for overriding
    +	// contracts (1 is highest). Priority is optional.
    +	priority 1
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_request">Request</h4>
    +<div class="paragraph">
    +<p>HTTP protocol requires only <strong>method and address</strong> to be specified in a request. The same information is mandatory in request definition of the Contract.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		// HTTP request method (GET/POST/PUT/DELETE).
    +		method 'GET'
    +
    +		// Path component of request URL is specified as follows.
    +		urlPath('/users')
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>It is possible to specify whole <code>url</code> instead of just path, but <code>urlPath</code> is the recommended way as it makes the tests <strong>host-independent</strong>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		method 'GET'
    +
    +		// Specifying `url` and `urlPath` in one contract is illegal.
    +		url('http://localhost:8888/users')
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Request may contain <strong>query parameters</strong>, which are specified in a closure nested in a call to <code>urlPath</code> or <code>url</code>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		//...
    +
    +		urlPath('/users') {
    +
    +			// Each parameter is specified in form
    +			// `'paramName' : paramValue` where parameter value
    +			// may be a simple literal or one of matcher functions,
    +			// all of which are used in this example.
    +			queryParameters {
    +
    +				// If a simple literal is used as value
    +				// default matcher function is used (equalTo)
    +				parameter 'limit': 100
    +
    +				// `equalTo` function simply compares passed value
    +				// using identity operator (==).
    +				parameter 'filter': equalTo("email")
    +
    +				// `containing` function matches strings
    +				// that contains passed substring.
    +				parameter 'gender': value(consumer(containing("[mf]")), producer('mf'))
    +
    +				// `matching` function tests parameter
    +				// against passed regular expression.
    +				parameter 'offset': value(consumer(matching("[0-9]+")), producer(123))
    +
    +				// `notMatching` functions tests if parameter
    +				// does not match passed regular expression.
    +				parameter 'loginStartsWith': value(consumer(notMatching(".{0,2}")), producer(3))
    +			}
    +		}
    +
    +		//...
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>It may contain additional <strong>request headers</strong>&#8230;&#8203;</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		//...
    +
    +		// Each header is added in form `'Header-Name' : 'Header-Value'`.
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +
    +		//...
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>&#8230;&#8203;and a <strong>request body</strong>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		//...
    +
    +		// JSON and XML formats of request body are supported.
    +		// Format will be determined from a header or body's content.
    +		body '''{ "login" : "john", "name": "John The Contract" }'''
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><strong>Body&#8217;s format</strong> can also be specified explicitly by invoking one of format functions.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		//...
    +
    +		// In this case body will be formatted as XML.
    +		body equalToXml(
    +				'''&lt;user&gt;&lt;login&gt;john&lt;/login&gt;&lt;name&gt;John The Contract&lt;/name&gt;&lt;/user&gt;'''
    +		)
    +	}
    +
    +	response {
    +		//...
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_response">Response</h4>
    +<div class="paragraph">
    +<p>Minimal response must contain <strong>HTTP status code</strong>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		//...
    +	}
    +	response {
    +		// Status code sent by the server
    +		// in response to request specified above.
    +		status 200
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Besides status response may contain <strong>headers</strong> and <strong>body</strong>, which are specified the same way as in the request (see previous paragraph).</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_dynamic_properties">Dynamic properties</h4>
    +<div class="paragraph">
    +<p>The contract can contain some dynamic properties - timestamps / ids etc. You don&#8217;t want to enforce the consumers to stub their
    +clocks to always return the same value of time so that it gets matched by the stub. That&#8217;s why we allow you to provide the dynamic
    +parts in your contracts in the following way</p>
    +</div>
    +<div class="paragraph">
    +<p>either via the <code>value</code> method</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">value(consumer(...), producer(...))
    +value(stub(...), test(...))
    +value(client(...), server(...))</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>or if you&#8217;re using the Groovy map notation for body you can use the <code>$()</code> method</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">$(consumer(...), producer(...))
    +$(stub(...), test(...))
    +$(client(...), server(...))</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>All of the aforementioned approaches are equal. That means that <code>stub</code> and <code>client</code> methods are aliases over the <code>consumer</code>
    +method. Let&#8217;s take a closer look at what we can do with those values in the subsequent sections.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_regular_expressions">Regular expressions</h4>
    +<div class="paragraph">
    +<p>You can use regular expressions to write your requests in Contract DSL. It is particularly useful when you want to indicate that a given response
    +should be provided for requests that follow a given pattern. Also, you can use it when you need to use patterns and not exact values both
    +for your test and your server side tests.</p>
    +</div>
    +<div class="paragraph">
    +<p>Please see the example below:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		method('GET')
    +		url $(consumer(~/\/[0-9]{2}/), producer('/12'))
    +	}
    +	response {
    +		status 200
    +		body(
    +				id: value(
    +						consumer('123'),
    +						producer(regex('[0-9]+'))
    +				),
    +				surname: $(
    +						consumer('Kowalsky'),
    +						producer(regex('[a-zA-Z]+'))
    +				),
    +				name: 'Jan',
    +				created: $(consumer('2014-02-02 12:23:43'), producer(execute('currentDate(it)'))),
    +				correlationId: value(consumer('5d1f9fef-e0dc-4f3d-a7e4-72d2220dd827'),
    +						producer(regex('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}'))
    +				)
    +		)
    +		headers {
    +			header 'Content-Type': 'text/plain'
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>You can also provide only one side of the communication using a regular expression. If you do that then automatically we&#8217;ll
    +provide the generated string that matches the provided regular expression. For example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		method 'PUT'
    +		url value(consumer(regex('/foo/[0-9]{5}')))
    +		body([
    +			requestElement: value(consumer(regex('[0-9]{5}')))
    +		])
    +		headers {
    +			header('header', value(consumer(regex('application\\/vnd\\.fraud\\.v1\\+json;.*'))))
    +		}
    +	}
    +	response {
    +		status 200
    +		body([
    +			responseElement: value(producer(regex('[0-9]{7}')))
    +		])
    +		headers {
    +			header('Content-Type': value(
    +					producer(regex('application/vnd.fraud.v1.json.*')),
    +					consumer('application/vnd.fraud.v1+json'))
    +			)
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In this example for request and response the opposite side of the communication will have the respective data generated.</p>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract comes with a series of predefined regular expressions that you can use in your contracts.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">private static final Pattern TRUE_OR_FALSE = Pattern.compile(/(true|false)/)
    +private static final Pattern ONLY_ALPHA_UNICODE = Pattern.compile(/[\p{L}]*/)
    +private static final Pattern NUMBER = Pattern.compile('-?\\d*(\\.\\d+)?')
    +private static final Pattern IP_ADDRESS = Pattern.compile('([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])');
    +private static final Pattern HOSTNAME_PATTERN = Pattern.compile('((http[s]?|ftp):\\/)\\/?([^:\\/\\s]+)(:[0-9]{1,5})?');
    +private static final Pattern EMAIL = Pattern.compile('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}');
    +private static final Pattern URL = Pattern.compile('((www\\.|(http|https|ftp|news|file)+\\:\\/\\/)[_.a-z0-9-]+\\.[a-z0-9\\/_:@=.+?,##%&amp;~-]*[^.|\\\'|\\# |!|\\(|?|,| |&gt;|&lt;|;|\\)])')
    +
    +String onlyAlphaUnicode() {
    +	return ONLY_ALPHA_UNICODE.pattern()
    +}
    +
    +String number() {
    +	return NUMBER.pattern()
    +}
    +
    +String anyBoolean() {
    +	return TRUE_OR_FALSE.pattern()
    +}
    +
    +String ipAddress() {
    +	return IP_ADDRESS.pattern()
    +}
    +
    +String hostname() {
    +	return HOSTNAME_PATTERN.pattern()
    +}
    +
    +String email() {
    +	return EMAIL.pattern()
    +}
    +
    +String url() {
    +	return URL.pattern()
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>so in your contract you can use it like this</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract dslWithOptionalsInString = Contract.make {
    +	priority 1
    +	request {
    +		method 'POST'
    +		url '/users/password'
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +		body(
    +				email: $(consumer(optional(regex(email()))), producer('abc@abc.com')),
    +				callback_url: $(consumer(regex(hostname())), producer('http://partners.com'))
    +		)
    +	}
    +	response {
    +		status 404
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +		body(
    +				code: value(consumer("123123"), producer(optional("123123"))),
    +				message: "User not found by email = [${value(producer(regex(email())), consumer('not.existing@user.com'))}]"
    +		)
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_passing_optional_parameters">Passing optional parameters</h4>
    +<div class="paragraph">
    +<p>It is possible to provide optional parameters in your contract. It&#8217;s only possible to have optional parameter for the:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><em>STUB</em> side of the Request</p>
    +</li>
    +<li>
    +<p><em>TEST</em> side of the Response</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	priority 1
    +	request {
    +		method 'POST'
    +		url '/users/password'
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +		body(
    +				email: $(consumer(optional(regex(email()))), producer('abc@abc.com')),
    +				callback_url: $(consumer(regex(hostname())), producer('http://partners.com'))
    +		)
    +	}
    +	response {
    +		status 404
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +		body(
    +				code: value(consumer("123123"), producer(optional("123123")))
    +		)
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>By wrapping a part of the body with the <code>optional()</code> method you are in fact creating a regular expression that should be present 0 or more times.</p>
    +</div>
    +<div class="paragraph">
    +<p>That way for the example above the following test would be generated if you pick Spock:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">"""
    + given:
    +  def request = given()
    +    .header('Content-Type', 'application/json')
    +    .body('''{"email":"abc@abc.com","callback_url":"http://partners.com"}''')
    +
    + when:
    +  def response = given().spec(request)
    +    .post("/users/password")
    +
    + then:
    +  response.statusCode == 404
    +  response.header('Content-Type')  == 'application/json'
    + and:
    +  DocumentContext parsedJson = JsonPath.parse(response.body.asString())
    +  assertThatJson(parsedJson).field("code").matches("(123123)?")
    +"""</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and the following stub:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-javascript" data-lang="javascript">'''
    +{
    +  "request" : {
    +    "url" : "/users/password",
    +    "method" : "POST",
    +    "bodyPatterns" : [ {
    +      "matchesJsonPath" : "$[?(@.email =~ /([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4})?/)]"
    +    }, {
    +      "matchesJsonPath" : "$[?(@.callback_url =~ /((http[s]?|ftp):\\\\/)\\\\/?([^:\\\\/\\\\s]+)(:[0-9]{1,5})?/)]"
    +    } ],
    +    "headers" : {
    +      "Content-Type" : {
    +        "equalTo" : "application/json"
    +      }
    +    }
    +  },
    +  "response" : {
    +    "status" : 404,
    +    "body" : "{\\"code\\":\\"123123\\",\\"message\\":\\"User not found by email == [not.existing@user.com]\\"}",
    +    "headers" : {
    +      "Content-Type" : "application/json"
    +    }
    +  },
    +  "priority" : 1
    +}
    +'''</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_executing_custom_methods_on_server_side">Executing custom methods on server side</h4>
    +<div class="paragraph">
    +<p>It is also possible to define a method call to be executed on the server side during the test. Such a method can be added to the class defined as "baseClassForTests"
    +in the configuration. Please see the examples below:</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_contract_dsl_2">Contract DSL</h5>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">org.springframework.cloud.contract.spec.Contract.make {
    +	request {
    +		method 'PUT'
    +		url $(consumer(regex('^/api/[0-9]{2}$')), producer('/api/12'))
    +		headers {
    +			header 'Content-Type': 'application/json'
    +		}
    +		body '''\
    +				[{
    +					"text": "Gonna see you at Warsaw"
    +				}]
    +			'''
    +	}
    +	response {
    +		body (
    +				path: $(consumer('/api/12'), producer(regex('^/api/[0-9]{2}$'))),
    +				correlationId: $(consumer('1223456'), producer(execute('isProperCorrelationId($it)')))
    +		)
    +		status 200
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_base_mock_spec">Base Mock Spec</h5>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">abstract class BaseMockMvcSpec extends Specification {
    +
    +	def setup() {
    +		RestAssuredMockMvc.standaloneSetup(new PairIdController())
    +	}
    +
    +	void isProperCorrelationId(Integer correlationId) {
    +		assert correlationId == 123456
    +	}
    +
    +	void isEmpty(String value) {
    +		assert value == null
    +	}
    +
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_jax_rs_support">JAX-RS support</h4>
    +<div class="paragraph">
    +<p>Starting with release 0.8.0 we support JAX-RS 2 Client API. Base class needs to define <code>protected WebTarget webTarget</code> and server initialization, right now the only option how to test JAX-RS API is to start a web server.</p>
    +</div>
    +<div class="paragraph">
    +<p>Request with a body needs to have a content type set otherwise <code>application/octet-stream</code> is going to be used.</p>
    +</div>
    +<div class="paragraph">
    +<p>In order to use JAX-RS mode, use the following settings:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">testMode === 'JAXRSCLIENT'</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Example of a test API generated:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    + // when:
    +  Response response = webTarget
    +    .path("/users")
    +    .queryParam("limit", "10")
    +    .queryParam("offset", "20")
    +    .queryParam("filter", "email")
    +    .queryParam("sort", "name")
    +    .queryParam("search", "55")
    +    .queryParam("age", "99")
    +    .queryParam("name", "Denis.Stepanov")
    +    .queryParam("email", "bob@email.com")
    +    .request()
    +    .method("GET");
    +
    +  String responseAsString = response.readEntity(String.class);
    +
    + // then:
    +  assertThat(response.getStatus()).isEqualTo(200);
    + // and:
    +  DocumentContext parsedJson = JsonPath.parse(responseAsString);
    +  assertThatJson(parsedJson).field("property1").isEqualTo("a");
    +'''</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_messaging_top_level_elements">Messaging Top-Level Elements</h4>
    +<div class="paragraph">
    +<p>The DSL for messaging looks a little bit different than the one that focuses on HTTP.</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_output_triggered_by_a_method">Output triggered by a method</h5>
    +<div class="paragraph">
    +<p>The output message can be triggered by calling a method (e.g. a Scheduler was started and a message was sent)</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def dsl = Contract.make {
    +	// Human readable description
    +	description 'Some description'
    +	// Label by means of which the output message can be triggered
    +	label 'some_label'
    +	// input to the contract
    +	input {
    +		// the contract will be triggered by a method
    +		triggeredBy('bookReturnedTriggered()')
    +	}
    +	// output message of the contract
    +	outputMessage {
    +		// destination to which the output message will be sent
    +		sentTo('output')
    +		// the body of the output message
    +		body('''{ "bookName" : "foo" }''')
    +		// the headers of the output message
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In this case the output message will be sent to <code>output</code> if a method called <code>bookReturnedTriggered</code> will be executed. In the message <strong>publisher&#8217;s</strong> side
    +we will generate a test that will call that method to trigger the message. On the <strong>consumer</strong> side you can use the <code>some_label</code> to trigger the message.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_output_triggered_by_a_message">Output triggered by a message</h5>
    +<div class="paragraph">
    +<p>The output message can be triggered by receiving a message.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def dsl = Contract.make {
    +	description 'Some Description'
    +	label 'some_label'
    +	// input is a message
    +	input {
    +		// the message was received from this destination
    +		messageFrom('input')
    +		// has the following body
    +		messageBody([
    +		        bookName: 'foo'
    +		])
    +		// and the following headers
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +	}
    +	outputMessage {
    +		sentTo('output')
    +		body([
    +		        bookName: 'foo'
    +		])
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In this case the output message will be sent to <code>output</code> if a proper message will be received on the <code>input</code> destination. In the message <strong>publisher&#8217;s</strong> side
    +we will generate a test that will send the input message to the defined destination. On the <strong>consumer</strong> side you can either send a message to the input
    +destination or use the <code>some_label</code> to trigger the message.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_consumer_producer">Consumer / Producer</h5>
    +<div class="paragraph">
    +<p>In HTTP you have a notion of <code>client</code>/<code>stub and `server</code>/<code>test</code> notation. You can use them also in messaging but we&#8217;re providing also the <code>consumer</code> and <code>produer</code> methods
    +as presented below (note you can use either <code>$</code> or <code>value</code> methods to provide <code>consumer</code> and <code>producer</code> parts)</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'some_label'
    +	input {
    +		messageFrom value(consumer('jms:output'), producer('jms:input'))
    +		messageBody([
    +				bookName: 'foo'
    +		])
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +	}
    +	outputMessage {
    +		sentTo $(consumer('jms:input'), producer('jms:output'))
    +		body([
    +				bookName: 'foo'
    +		])
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_spring_cloud_contract_verifier_http">Spring Cloud Contract Verifier HTTP</h3>
    +<div class="sect3">
    +<h4 id="_gradle_project">Gradle Project</h4>
    +<div class="sect4">
    +<h5 id="_prerequisites">Prerequisites</h5>
    +<div class="paragraph">
    +<p>In order to use Spring Cloud Contract Verifier with WireMock you have to use Gradle or Maven plugin.</p>
    +</div>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +If you want to use Spock in your projects you have to add separately
    +the <code>spock-core</code> and <code>spock-spring</code> modules. Check <a href="http://spockframework.github.io/">Spock docs for more information</a>
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="sect5">
    +<h6 id="_add_gradle_plugin_with_dependencies">Add gradle plugin with dependencies</h6>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">buildscript {
    +	repositories {
    +		mavenCentral()
    +	}
    +	dependencies {
    +	    classpath "org.springframework.boot:spring-boot-gradle-plugin:${springboot_version}"
    +		classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${verifier_version}"
    +	}
    +}
    +
    +apply plugin: 'groovy'
    +apply plugin: 'spring-cloud-contract'
    +
    +dependencyManagement {
    +	imports {
    +		mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:${verifier_version}"
    +	}
    +}
    +
    +dependencies {
    +	testCompile 'org.codehaus.groovy:groovy-all:2.4.6'
    +	// example with adding Spock core and Spock Spring
    +	testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
    +	testCompile 'org.spockframework:spock-spring:1.0-groovy-2.4'
    +	testCompile 'org.springframework.cloud:spring-cloud-starter-contract-verifier'
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_snapshot_versions_for_gradle">Snapshot versions for Gradle</h6>
    +<div class="paragraph">
    +<p>Add the additional snapshot repository to your build.gradle to use snapshot versions which are automatically uploaded after every successful build:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">buildscript {
    +	repositories {
    +		mavenCentral()
    +		mavenLocal()
    +		maven { url "http://repo.spring.io/snapshot" }
    +		maven { url "http://repo.spring.io/milestone" }
    +		maven { url "http://repo.spring.io/release" }
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_add_maven_plugin_with_dependencies">Add maven plugin with dependencies</h6>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;dependencyManagement&gt;
    +    &lt;dependencies&gt;
    +        &lt;dependency&gt;
    +            &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +            &lt;artifactId&gt;spring-cloud-contract-dependencies&lt;/artifactId&gt;
    +            &lt;version&gt;${spring-cloud-contract.version}&lt;/version&gt;
    +            &lt;type&gt;pom&lt;/type&gt;
    +            &lt;scope&gt;import&lt;/scope&gt;
    +        &lt;/dependency&gt;
    +    &lt;/dependencies&gt;
    +&lt;/dependencyManagement&gt;
    +
    +&lt;dependencies&gt;
    +    &lt;dependency&gt;
    +        &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +        &lt;artifactId&gt;spring-cloud-starter-contract-verifier&lt;/artifactId&gt;
    +        &lt;scope&gt;test&lt;/scope&gt;
    +    &lt;/dependency&gt;
    +&lt;/dependencies&gt;
    +
    +&lt;plugin&gt;
    +    &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +    &lt;artifactId&gt;spring-cloud-contract-maven-plugin&lt;/artifactId&gt;
    +    &lt;executions&gt;
    +        &lt;execution&gt;
    +            &lt;goals&gt;
    +                &lt;goal&gt;convert&lt;/goal&gt;
    +                &lt;goal&gt;generateStubs&lt;/goal&gt;
    +                &lt;goal&gt;generateTests&lt;/goal&gt;
    +            &lt;/goals&gt;
    +        &lt;/execution&gt;
    +    &lt;/executions&gt;
    +&lt;/plugin&gt;</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Read more: <a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract-maven-plugin/">spring-cloud-contract-maven-plugin</a></p>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_add_stubs">Add stubs</h6>
    +<div class="paragraph">
    +<p>By default Spring Cloud Contract Verifier is looking for stubs in <code>src/test/resources/contracts</code> directory.</p>
    +</div>
    +<div class="paragraph">
    +<p>Directory containing stub definitions is treated as a class name, and each stub definition is treated as a single test.
    +We assume that it contains at least one directory which will be used as test class name. If there is more than one level of nested directories all except the last one will be used as package name.
    +So with following structure</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">src/test/resources/contracts/myservice/shouldCreateUser.groovy
    +src/test/resources/contracts/myservice/shouldReturnUser.groovy</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier will create test class <code>defaultBasePackage.MyService</code> with two methods</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><code>shouldCreateUser()</code></p>
    +</li>
    +<li>
    +<p><code>shouldReturnUser()</code></p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_run_plugin">Run plugin</h5>
    +<div class="paragraph">
    +<p>Plugin registers itself to be invoked before <code>check</code> task. You have nothing to do as long as you want it to be part of your build process. If you just want to generate tests please invoke <code>generateContractTests</code> task.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_default_setup">Default setup</h5>
    +<div class="paragraph">
    +<p>Default Gradle Plugin setup creates the following Gradle part of the build (it&#8217;s a pseudocode)</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">contracts {
    +    targetFramework = 'JUNIT'
    +    testMode = 'MockMvc'
    +    generatedTestSourcesDir = project.file("${project.buildDir}/generated-test-sources/contracts")
    +    contractsDslDir = "${project.rootDir}/src/test/resources/contracts"
    +    basePackageForTests = 'org.springframework.cloud.verifier.tests'
    +    stubsOutputDir = project.file("${project.buildDir}/stubs")
    +}
    +
    +tasks.create(type: Jar, name: 'verifierStubsJar', dependsOn: 'generateWireMockClientStubs') {
    +    baseName = project.name
    +    classifier = contracts.stubsSuffix
    +    from contractVerifier.stubsOutputDir
    +}
    +
    +project.artifacts {
    +    archives task
    +}
    +
    +tasks.create(type: Copy, name: 'copyContracts') {
    +    from contracts.contractsDslDir
    +    into contracts.stubsOutputDir
    +}
    +
    +verifierStubsJar.dependsOn 'copyContracts'
    +
    +publishing {
    +    publications {
    +        stubs(MavenPublication) {
    +            artifactId project.name
    +            artifact verifierStubsJar
    +        }
    +    }
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_configure_plugin">Configure plugin</h5>
    +<div class="paragraph">
    +<p>To change default configuration just add <code>contracts</code> snippet to your Gradle config</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">contracts {
    +	testMode = 'MockMvc'
    +	baseClassForTests = 'org.mycompany.tests'
    +	generatedTestSourcesDir = project.file('src/generatedContract')
    +}</code></pre>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_configuration_options">Configuration options</h6>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><strong>testMode</strong> - defines mode for acceptance tests. By default MockMvc which is based on Spring&#8217;s MockMvc. It can also be changed to <strong>JaxRsClient</strong> or to <strong>Explicit</strong> for real HTTP calls.</p>
    +</li>
    +<li>
    +<p><strong>imports</strong> - array with imports that should be included in generated tests (for example ['org.myorg.Matchers']). By default empty array []</p>
    +</li>
    +<li>
    +<p><strong>staticImports</strong> - array with static imports that should be included in generated tests(for example ['org.myorg.Matchers.*']). By default empty array []</p>
    +</li>
    +<li>
    +<p><strong>basePackageForTests</strong> - specifies base package for all generated tests. By default set to org.springframework.cloud.verifier.tests</p>
    +</li>
    +<li>
    +<p><strong>baseClassForTests</strong> - base class for generated tests. By default <code>spock.lang.Specification</code> if using Spock tests.</p>
    +</li>
    +<li>
    +<p><strong>ruleClassForTests</strong> - specifies Rule which should be added to generated test classes.</p>
    +</li>
    +<li>
    +<p><strong>ignoredFiles</strong> - Ant matcher allowing defining stub files for which processing should be skipped. By default empty array []</p>
    +</li>
    +<li>
    +<p><strong>contractsDslDir</strong> - directory containing contracts written using the GroovyDSL. By default <code>$rootDir/src/test/resources/contracts</code></p>
    +</li>
    +<li>
    +<p><strong>generatedTestSourcesDir</strong> - test source directory where tests generated from Groovy DSL should be placed. By default <code>$buildDir/generated-test-sources/contractVerifier</code></p>
    +</li>
    +<li>
    +<p><strong>stubsOutputDir</strong> - dir where the generated WireMock stubs from Groovy DSL should be placed</p>
    +</li>
    +<li>
    +<p><strong>targetFramework</strong> - the target test framework to be used; currently Spock and JUnit are supported with JUnit being the default framework</p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_base_class_for_tests">Base class for tests</h6>
    +<div class="paragraph">
    +<p>When using Spring Cloud Contract Verifier in default MockMvc you need to create a base specification for all generated acceptance tests. In this class you need to point to endpoint which should be verified.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">abstract class BaseMockMvcSpec extends Specification {
    +
    +	def setup() {
    +		RestAssuredMockMvc.standaloneSetup(new PairIdController())
    +	}
    +
    +	void isProperCorrelationId(Integer correlationId) {
    +		assert correlationId == 123456
    +	}
    +
    +	void isEmpty(String value) {
    +		assert value == null
    +	}
    +
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In case of using <code>Explicit</code> mode, you can use base class to initialize the whole tested app similarly as in regular integration tests. In case of <code>JAXRSCLIENT</code> mode this base class
    +should also contain <code>protected WebTarget webTarget</code> field, right now the only option to test JAX-RS API is to start a web server.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_invoking_generated_tests">Invoking generated tests</h5>
    +<div class="paragraph">
    +<p>To ensure that provider side is complaint with defined contracts, you need to invoke:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">./gradlew generateContractTests test</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_spring_cloud_contract_verifier_on_consumer_side">Spring Cloud Contract Verifier on consumer side</h5>
    +<div class="paragraph">
    +<p>In consumer service you need to configure Spring Cloud Contract Verifier plugin in exactly the same way as in case of provider. If you don&#8217;t want to use Stub Runner then you need to copy contracts stored in
    +<code>src/test/resources/contracts</code> and generate WireMock json stubs using:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">./gradlew generateWireMockClientStubs</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Note that <code>stubsOutputDir</code> option has to be set for stub generation to work.</p>
    +</div>
    +<div class="paragraph">
    +<p>When present, json stubs can be used in consumer automated tests.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">@ContextConfiguration(loader == SpringApplicationContextLoader, classes == Application)
    +class LoanApplicationServiceSpec extends Specification {
    +
    + @ClassRule
    + @Shared
    + WireMockClassRule wireMockRule == new WireMockClassRule()
    +
    + @Autowired
    + LoanApplicationService sut
    +
    + def 'should successfully apply for loan'() {
    +   given:
    + 	LoanApplication application =
    +			new LoanApplication(client: new Client(pesel: '12345678901'), amount: 123.123)
    +   when:
    +	LoanApplicationResult loanApplication == sut.loanApplication(application)
    +   then:
    +	loanApplication.loanApplicationStatus == LoanApplicationStatus.LOAN_APPLIED
    +	loanApplication.rejectionReason == null
    + }
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Underneath LoanApplication makes a call to FraudDetection service. This request is handled by WireMock server configured using stubs generated by Spring Cloud Contract Verifier.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_using_in_your_maven_project">Using in your Maven project</h4>
    +<div class="sect4">
    +<h5 id="_add_maven_plugin">Add maven plugin</h5>
    +<div class="paragraph">
    +<p>Add the Spring Cloud Contract BOM</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;dependencyManagement&gt;
    +	&lt;dependencies&gt;
    +		&lt;dependency&gt;
    +			&lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +			&lt;artifactId&gt;spring-cloud-contract-dependencies&lt;/artifactId&gt;
    +			&lt;version&gt;${spring-cloud-contract.version}&lt;/version&gt;
    +			&lt;type&gt;pom&lt;/type&gt;
    +			&lt;scope&gt;import&lt;/scope&gt;
    +		&lt;/dependency&gt;
    +	&lt;/dependencies&gt;
    +&lt;/dependencyManagement&gt;</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next, the <code>Spring Cloud Contract Verifier</code> Maven plugin</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
    +	&lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +	&lt;artifactId&gt;spring-cloud-contract-maven-plugin&lt;/artifactId&gt;
    +	&lt;version&gt;${spring-cloud-contract.version}&lt;/version&gt;
    +	&lt;extensions&gt;true&lt;/extensions&gt;
    +	&lt;configuration&gt;
    +		&lt;baseClassForTests&gt;com.example.fraud.MvcTest&lt;/baseClassForTests&gt;
    +	&lt;/configuration&gt;
    +&lt;/plugin&gt;</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>You can read more in the <a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract-maven-plugin/">Spring Cloud Contract Maven Plugin Docs</a></p>
    +</div>
    +<div class="sect5">
    +<h6 id="_snapshot_versions_for_maven">Snapshot versions for Maven</h6>
    +<div class="paragraph">
    +<p>For Snapshot / Milestone versions you have to add the following section to your <code>pom.xml</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;repositories&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-snapshots&lt;/id&gt;
    +		&lt;name&gt;Spring Snapshots&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/snapshot&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;true&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-milestones&lt;/id&gt;
    +		&lt;name&gt;Spring Milestones&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/milestone&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-releases&lt;/id&gt;
    +		&lt;name&gt;Spring Releases&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/release&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +&lt;/repositories&gt;
    +&lt;pluginRepositories&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-snapshots&lt;/id&gt;
    +		&lt;name&gt;Spring Snapshots&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/snapshot&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;true&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-milestones&lt;/id&gt;
    +		&lt;name&gt;Spring Milestones&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/milestone&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-releases&lt;/id&gt;
    +		&lt;name&gt;Spring Releases&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/release&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +&lt;/pluginRepositories&gt;</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_add_stubs_2">Add stubs</h5>
    +<div class="paragraph">
    +<p>By default Spring Cloud Contract Verifier is looking for stubs in <code>src/test/resources/contracts</code> directory.
    +Directory containing stub definitions is treated as a class name, and each stub definition is treated as a single test.
    +We assume that it contains at least one directory which will be used as test class name. If there is more than one level of nested directories all except the last one will be used as package name.
    +So with following structure</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">src/test/resources/contracts/myservice/shouldCreateUser.groovy
    +src/test/resources/contracts/myservice/shouldReturnUser.groovy</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier will create test class <code>defaultBasePackage.MyService</code> with two methods
    + - <code>shouldCreateUser()</code>
    + - <code>shouldReturnUser()</code></p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_run_plugin_2">Run plugin</h5>
    +<div class="paragraph">
    +<p>Plugin goal <code>generateTests</code> is assigned to be invoked in phase <code>generate-test-sources</code>. You have nothing to do as long as you want it to be part of your build process. If you just want to generate tests please invoke <code>generateTests</code> goal.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_configure_plugin_2">Configure plugin</h5>
    +<div class="paragraph">
    +<p>To change default configuration just add <code>configuration</code> section to plugin definition or <code>execution</code> definition.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
    +    &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +    &lt;artifactId&gt;spring-cloud-contract-maven-plugin&lt;/artifactId&gt;
    +    &lt;executions&gt;
    +        &lt;execution&gt;
    +            &lt;goals&gt;
    +                &lt;goal&gt;convert&lt;/goal&gt;
    +                &lt;goal&gt;generateStubs&lt;/goal&gt;
    +                &lt;goal&gt;generateTests&lt;/goal&gt;
    +            &lt;/goals&gt;
    +        &lt;/execution&gt;
    +    &lt;/executions&gt;
    +    &lt;configuration&gt;
    +        &lt;basePackageForTests&gt;org.springframework.cloud.verifier.twitter.place&lt;/basePackageForTests&gt;
    +        &lt;baseClassForTests&gt;org.springframework.cloud.verifier.twitter.place.BaseMockMvcSpec&lt;/baseClassForTests&gt;
    +    &lt;/configuration&gt;
    +&lt;/plugin&gt;</code></pre>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_important_configuration_options">Important configuration options</h6>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><strong>testMode</strong> - defines mode for acceptance tests. By default <code>MockMvc</code> which is based on Spring&#8217;s MockMvc. It can also be changed to <code>JaxRsClient</code> or to <code>Explicit</code> for real HTTP calls.</p>
    +</li>
    +<li>
    +<p><strong>basePackageForTests</strong> - specifies base package for all generated tests. By default set to <code>org.springframework.cloud.verifier.tests</code>.</p>
    +</li>
    +<li>
    +<p><strong>ruleClassForTests</strong> - specifies Rule which should be added to generated test classes.</p>
    +</li>
    +<li>
    +<p><strong>baseClassForTests</strong> - base class for generated tests. By default <code>spock.lang.Specification</code> if using Spock tests.</p>
    +</li>
    +<li>
    +<p><strong>contractsDir</strong> - directory containing contracts written using the GroovyDSL. By default <code>/src/test/resources/contracts</code>.</p>
    +</li>
    +<li>
    +<p><strong>testFramework</strong> - the target test framework to be used; currently Spock and JUnit are supported with JUnit being the default framework</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>For complete information take a look at <a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract-maven-plugin/plugin-info.html">Plugin Documentation</a></p>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_base_class_for_tests_2">Base class for tests</h6>
    +<div class="paragraph">
    +<p>When using Spring Cloud Contract Verifier in default MockMvc you need to create a base specification for all generated acceptance tests.
    +In this class you need to point to endpoint which should be verified.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">package org.mycompany.tests
    +
    +import org.mycompany.ExampleSpringController
    +import com.jayway.restassured.module.mockmvc.RestAssuredMockMvc
    +import spock.lang.Specification
    +
    +class  MvcSpec extends Specification {
    +  def setup() {
    +   RestAssuredMockMvc.standaloneSetup(new ExampleSpringController())
    +  }
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>In case of using <code>Explicit</code> mode, you can use base class to initialize the whole tested app similarly as in regular integration tests. In case of <code>JAXRSCLIENT</code> mode this base class should also contain <code>protected WebTarget webTarget</code> field, right now the only option to test JAX-RS API is to start a web server.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_invoking_generated_tests_2">Invoking generated tests</h5>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier Maven Plugin generates verification code into directory <code>/generated-test-sources/contractVerifier</code> and attach this directory to <code>testCompile</code> goal.</p>
    +</div>
    +<div class="paragraph">
    +<p>For Groovy Spock code use:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
    +	&lt;groupId&gt;org.codehaus.gmavenplus&lt;/groupId&gt;
    +	&lt;artifactId&gt;gmavenplus-plugin&lt;/artifactId&gt;
    +	&lt;version&gt;1.5&lt;/version&gt;
    +	&lt;executions&gt;
    +		&lt;execution&gt;
    +			&lt;goals&gt;
    +				&lt;goal&gt;testCompile&lt;/goal&gt;
    +			&lt;/goals&gt;
    +		&lt;/execution&gt;
    +	&lt;/executions&gt;
    +	&lt;configuration&gt;
    +		&lt;testSources&gt;
    +			&lt;testSource&gt;
    +				&lt;directory&gt;${project.basedir}/src/test/groovy&lt;/directory&gt;
    +				&lt;includes&gt;
    +					&lt;include&gt;**/*.groovy&lt;/include&gt;
    +				&lt;/includes&gt;
    +			&lt;/testSource&gt;
    +			&lt;testSource&gt;
    +				&lt;directory&gt;${project.build.directory}/generated-test-sources/contractVerifier&lt;/directory&gt;
    +				&lt;includes&gt;
    +					&lt;include&gt;**/*.groovy&lt;/include&gt;
    +				&lt;/includes&gt;
    +			&lt;/testSource&gt;
    +		&lt;/testSources&gt;
    +	&lt;/configuration&gt;
    +&lt;/plugin&gt;</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>To ensure that provider side is complaint with defined contracts, you need to invoke <code>mvn generateTest test</code></p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_spring_cloud_contract_verifier_on_consumer_side_2">Spring Cloud Contract Verifier on consumer side</h5>
    +<div class="paragraph">
    +<p>You can actually use the Spring Cloud Contract Verifier also for the consumer side!
    +You can use the plugin so that it only converts the contracts and generates the stubs.
    +To achieve that you need to configure Spring Cloud Contract Verifier plugin in exactly
    +the same way as in case of provider. You need to copy contracts stored in
    +<code>src/test/resources/contracts</code> and generate WireMock json stubs using:
    +<code>mvn generateStubs</code> command. By default generated WireMock mapping is
    +stored in directory <code>target/mappings</code>. Your project should create from
    +this generated mappings additional artifact with classifier <code>stubs</code> for
    +easy deploy to maven repository.</p>
    +</div>
    +<div class="paragraph">
    +<p>Sample configuration:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
    +    &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    +    &lt;artifactId&gt;spring-cloud-contract-maven-plugin&lt;/artifactId&gt;
    +    &lt;version&gt;${verifier-plugin.version}&lt;/version&gt;
    +    &lt;executions&gt;
    +        &lt;execution&gt;
    +            &lt;goals&gt;
    +                &lt;goal&gt;convert&lt;/goal&gt;
    +                &lt;goal&gt;generateStubs&lt;/goal&gt;
    +            &lt;/goals&gt;
    +        &lt;/execution&gt;
    +    &lt;/executions&gt;
    +&lt;/plugin&gt;</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>When present, json stubs can be used in consumer automated tests.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">@RunWith(SpringTestRunner.class)
    +@SpringBootTest
    +@AutoConfigureStubRunner
    +public class LoanApplicationServiceTests {
    +
    +  @Autowired
    +  LoanApplicationService service;
    +
    +  @Test
    +  public void shouldSuccessfullyApplyForLoan() {
    +    //given:
    + 	LoanApplication application =
    +			new LoanApplication(new Client("12345678901"), 123.123);
    +    //when:
    +	LoanApplicationResult loanApplication = service.loanApplication(application);
    +    // then:
    +	assertThat(loanApplication.loanApplicationStatus).isEqualTo(LoanApplicationStatus.LOAN_APPLIED);
    +	assertThat(loanApplication.rejectionReason).isNull();
    +  }
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Underneath <code>LoanApplication</code> makes a call to the <code>FraudDetection</code> service. This request is handled by
    +a WireMock server configured using stubs generated by Spring Cloud Contract Verifier.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_scenarios">Scenarios</h4>
    +<div class="paragraph">
    +<p>It&#8217;s possible to handle scenarios with Spring Cloud Contract Verifier. All you need to do is to stick to proper naming convention while creating your contracts. The convention requires to include order number followed by the underscore.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code>my_contracts_dir\
    +  scenario1\
    +    1_login.groovy
    +    2_showCart.groovy
    +    3_logout.groovy</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Such tree will cause Spring Cloud Contract Verifier generating WireMock&#8217;s scenario with name <code>scenario1</code> and three steps:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>login marked as <code>Started</code> pointing to:</p>
    +</li>
    +<li>
    +<p>showCart marked as <code>Step1</code> pointing to:</p>
    +</li>
    +<li>
    +<p>logout marked as <code>Step2</code> which will close the scenario.</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>More details about WireMock scenarios can be found under <a href="http://wiremock.org/stateful-behaviour.html">http://wiremock.org/stateful-behaviour.html</a></p>
    +</div>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier will also generate tests with guaranteed order of execution.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_spring_cloud_contract_verifier_messaging">Spring Cloud Contract Verifier Messaging</h3>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier allows you to verify your application that uses messaging as means of communication.
    +All of our integrations are working with Spring but you can also create one yourself and use it.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_integrations">Integrations</h4>
    +<div class="paragraph">
    +<p>You can use one of the three integration configurations:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>Apache Camel</p>
    +</li>
    +<li>
    +<p>Spring Integration</p>
    +</li>
    +<li>
    +<p>Spring Cloud Stream</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Since we&#8217;re using Spring Boot then if you have added one of the aforementioned libraries
    +to the classpath then automatically all the messaging configuration will be set up.</p>
    +</div>
    +<div class="admonitionblock important">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Important</div>
    +</td>
    +<td class="content">
    +Remember to put <code>@AutoConfigureMessageVerifier</code> on the base class of your
    +generated tests. Otherwise messaging part of Spring Cloud Contract Verifier will not work.
    +</td>
    +</tr>
    +</table>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_manual_integration_testing">Manual Integration Testing</h4>
    +<div class="paragraph">
    +<p>The main interface used by the tests is the <code>org.springframework.cloud.contract.verifier.messaging.MessageVerifier</code>.
    +It defines how to send and receive messages. You can create your own implementation to achieve the
    +same goal.</p>
    +</div>
    +<div class="paragraph">
    +<p>In the a test you can inject a <code>ContractVerifierMessageExchange</code> to send and receive messages that follow the contract.
    +Then add <code>@AutoConfigureMessageVerifier</code> to your test, e.g.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringTestRunner.class)
    +@SpringBootTest
    +@AutoConfigureMessageVerifier
    +public static class MessagingContractTests {
    +
    +  @Autowired
    +  private MessageVerifier verifier;
    +  ...
    +}</code></pre>
    +</div>
    +</div>
    +<div class="admonitionblock note">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Note</div>
    +</td>
    +<td class="content">
    +If your tests require stubs as well, then
    +<code>@AutoConfigureStubRunner</code> includes the messaging configuration, so
    +you only need the one annotation.
    +</td>
    +</tr>
    +</table>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_publisher_side_test_generation">Publisher side test generation</h4>
    +<div class="paragraph">
    +<p>Having the <code>input</code> or <code>outputMessage</code> sections in your DSL will result in creation of tests on the publisher&#8217;s side. By default
    +JUnit tests will be created, however there is also a possibility to create Spock tests.</p>
    +</div>
    +<div class="paragraph">
    +<p>There are 3 main scenarios that we should take into consideration:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>Scenario 1: there is no input message that produces an output one. The output message is triggered by a component
    +inside the application (e.g. scheduler)</p>
    +</li>
    +<li>
    +<p>Scenario 2: the input message triggers an output message</p>
    +</li>
    +<li>
    +<p>Scenario 3: the input message is consumed and there is no output message</p>
    +</li>
    +</ul>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_1_no_input_message">Scenario 1 (no input message)</h5>
    +<div class="paragraph">
    +<p>For the given contract:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def contractDsl = Contract.make {
    +	label 'some_label'
    +	input {
    +		triggeredBy('bookReturnedTriggered()')
    +	}
    +	outputMessage {
    +		sentTo('activemq:output')
    +		body('''{ "bookName" : "foo" }''')
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The following JUnit test will be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    + // when:
    +  bookReturnedTriggered();
    +
    + // then:
    +  ContractVerifierMessage response = contractVerifierMessaging.receive("activemq:output");
    +  assertThat(response).isNotNull();
    +  assertThat(response.getHeader("BOOK-NAME")).isEqualTo("foo");
    + // and:
    +  DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));
    +  assertThatJson(parsedJson).field("bookName").isEqualTo("foo");
    +'''</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the following Spock test would be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    + when:
    +  bookReturnedTriggered()
    +
    + then:
    +  ContractVerifierMessage response = contractVerifierMessaging.receive('activemq:output')
    +  assert response != null
    +  response.getHeader('BOOK-NAME')  == 'foo'
    + and:
    +  DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
    +  assertThatJson(parsedJson).field("bookName").isEqualTo("foo")
    +
    +'''</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_2_output_triggered_by_input">Scenario 2 (output triggered by input)</h5>
    +<div class="paragraph">
    +<p>For the given contract:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def contractDsl = Contract.make {
    +	label 'some_label'
    +	input {
    +		messageFrom('jms:input')
    +		messageBody([
    +				bookName: 'foo'
    +		])
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +	}
    +	outputMessage {
    +		sentTo('jms:output')
    +		body([
    +				bookName: 'foo'
    +		])
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The following JUnit test will be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    +// given:
    + ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
    +  "{\\"bookName\\":\\"foo\\"}"
    +, headers()
    +  .header("sample", "header"));
    +
    +// when:
    + contractVerifierMessaging.send(inputMessage, "jms:input");
    +
    +// then:
    + ContractVerifierMessage response = contractVerifierMessaging.receive("jms:output");
    + assertThat(response).isNotNull();
    + assertThat(response.getHeader("BOOK-NAME")).isEqualTo("foo");
    +// and:
    + DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));
    + assertThatJson(parsedJson).field("bookName").isEqualTo("foo");
    +'''</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the following Spock test would be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">"""\
    +given:
    +   ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
    +    '''{"bookName":"foo"}''',
    +    ['sample': 'header']
    +  )
    +
    +when:
    +   contractVerifierMessaging.send(inputMessage, 'jms:input')
    +
    +then:
    +   ContractVerifierMessage response = contractVerifierMessaging.receive('jms:output')
    +   assert response !- null
    +   response.getHeader('BOOK-NAME')  == 'foo'
    +and:
    +   DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
    +   assertThatJson(parsedJson).field("bookName").isEqualTo("foo")
    +"""</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_3_no_output_message">Scenario 3 (no output message)</h5>
    +<div class="paragraph">
    +<p>For the given contract:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def contractDsl = Contract.make {
    +	label 'some_label'
    +	input {
    +		messageFrom('jms:delete')
    +		messageBody([
    +				bookName: 'foo'
    +		])
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +		assertThat('bookWasDeleted()')
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The following JUnit test will be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    +// given:
    + ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
    +	"{\\"bookName\\":\\"foo\\"}"
    +, headers()
    +	.header("sample", "header"));
    +
    +// when:
    + contractVerifierMessaging.send(inputMessage, "jms:delete");
    +
    +// then:
    + bookWasDeleted();
    +'''</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the following Spock test would be created:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">'''
    +given:
    +	 ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
    +		\'\'\'{"bookName":"foo"}\'\'\',
    +		['sample': 'header']
    +	)
    +
    +when:
    +	 contractVerifierMessaging.send(inputMessage, 'jms:delete')
    +
    +then:
    +	 noExceptionThrown()
    +	 bookWasDeleted()
    +'''</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_consumer_stub_side_generation">Consumer Stub Side generation</h4>
    +<div class="paragraph">
    +<p>Unlike the HTTP part - in Messaging we need to publish the Groovy DSL inside the JAR with a stub. Then it&#8217;s parsed on the consumer side
    +and proper stubbed routes are created.</p>
    +</div>
    +<div class="paragraph">
    +<p>For more information please consult the Stub Runner Messaging sections.</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_gradle_setup">Gradle Setup</h5>
    +<div class="paragraph">
    +<p>Example of Spring Cloud Contract Verifier Gradle setup:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">ext {
    +	contractsDir = file("mappings")
    +	stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
    +}
    +
    +// Automatically added by plugin:
    +// copyContracts - copies contracts to the output folder from which JAR will be created
    +// verifierStubsJar - JAR with a provided stub suffix
    +// the presented publication is also added by the plugin but you can modify it as you wish
    +
    +publishing {
    +	publications {
    +		stubs(MavenPublication) {
    +			artifactId "${project.name}-stubs"
    +			artifact verifierStubsJar
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_maven_setup">Maven Setup</h5>
    +<div class="paragraph">
    +<p>Example of Maven can be found in the <a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/samples/standalone/stream-sink/pom.xml">Stream Sink sample</a></p>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_spring_cloud_contract_stub_runner">Spring Cloud Contract Stub Runner</h3>
    +<div class="paragraph">
    +<p>One of the issues that you could have encountered while using Spring Cloud Contract Verifier was to pass the generated WireMock JSON stubs from the server side to the client side (or various clients).
    + The same takes place in terms of client side generation for messaging.</p>
    +</div>
    +<div class="paragraph">
    +<p>Copying the JSON files / setting the client side for messaging manually is out of the question.</p>
    +</div>
    +<div class="paragraph">
    +<p>That&#8217;s why we&#8217;ll introduce Spring Cloud Contract Stub Runner that can download and run the stubs
    +automatically for you.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_snapshot_versions">Snapshot versions</h4>
    +<div class="paragraph">
    +<p>Add the additional snapshot repository to your build.gradle to use snapshot versions which are automatically uploaded after every successful build:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">buildscript {
    +	repositories {
    +		mavenCentral()
    +		mavenLocal()
    +		maven { url "http://repo.spring.io/snapshot" }
    +		maven { url "http://repo.spring.io/milestone" }
    +		maven { url "http://repo.spring.io/release" }
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>for Maven</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;repositories&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-snapshots&lt;/id&gt;
    +		&lt;name&gt;Spring Snapshots&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/snapshot&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;true&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-milestones&lt;/id&gt;
    +		&lt;name&gt;Spring Milestones&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/milestone&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +	&lt;repository&gt;
    +		&lt;id&gt;spring-releases&lt;/id&gt;
    +		&lt;name&gt;Spring Releases&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/release&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/repository&gt;
    +&lt;/repositories&gt;
    +&lt;pluginRepositories&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-snapshots&lt;/id&gt;
    +		&lt;name&gt;Spring Snapshots&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/snapshot&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;true&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-milestones&lt;/id&gt;
    +		&lt;name&gt;Spring Milestones&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/milestone&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +	&lt;pluginRepository&gt;
    +		&lt;id&gt;spring-releases&lt;/id&gt;
    +		&lt;name&gt;Spring Releases&lt;/name&gt;
    +		&lt;url&gt;http://repo.spring.io/release&lt;/url&gt;
    +		&lt;snapshots&gt;
    +			&lt;enabled&gt;false&lt;/enabled&gt;
    +		&lt;/snapshots&gt;
    +	&lt;/pluginRepository&gt;
    +&lt;/pluginRepositories&gt;</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_publishing_stubs_as_jars">Publishing stubs as JARs</h4>
    +<div class="paragraph">
    +<p>The easiest approach would be to centralize the way stubs are kept. For example you can keep them as JARs in a Maven repository.</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_gradle">Gradle</h5>
    +<div class="paragraph">
    +<p>Example of Spring Cloud Contract Verifier Gradle setup:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">ext {
    +	contractsDir = file("mappings")
    +	stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
    +}
    +
    +// Automatically added by plugin:
    +// copyContracts - copies contracts to the output folder from which JAR will be created
    +// verifierStubsJar - JAR with a provided stub suffix
    +// the presented publication is also added by the plugin but you can modify it as you wish
    +
    +publishing {
    +	publications {
    +		stubs(MavenPublication) {
    +			artifactId "${project.name}-stubs"
    +			artifact verifierStubsJar
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_maven">Maven</h5>
    +<div class="paragraph">
    +<p>Example of Maven can be found in the <a href="https://github.com/spring-cloud/spring-cloud-contract/">Spring Cloud Contract Verifier README</a></p>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_modules">Modules</h4>
    +
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_core">Stub Runner Core</h3>
    +<div class="paragraph">
    +<p>Runs stubs for service collaborators. Treating stubs as contracts of services allows to use stub-runner as an implementation of
    +<a href="http://martinfowler.com/articles/consumerDrivenContracts.html">Consumer Driven Contracts</a>.</p>
    +</div>
    +<div class="paragraph">
    +<p>Stub Runner allows you to automatically download the stubs of the provided dependencies, start WireMock servers for them and feed them with proper stub definitions.
    +For messaging, special stub routes are defined.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_running_stubs">Running stubs</h4>
    +<div class="sect4">
    +<h5 id="_running_using_main_app">Running using main app</h5>
    +<div class="paragraph">
    +<p>You can set the following options to the main class:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">-maxp (--maxPort) N            : Maximum port value to be assigned to the
    +                                 Wiremock instance. Defaults to 15000
    +                                 (default: 15000)
    +-minp (--minPort) N            : Minimal port value to be assigned to the
    +                                 Wiremock instance. Defaults to 10000
    +                                 (default: 10000)
    +-s (--stubs) VAL               : Comma separated list of Ivy representation of
    +                                 jars with stubs. Eg. groupid:artifactid1,group
    +                                 id2:artifactid2:version:classifier
    +-sr (--stubRepositoryRoot) VAL : Location of a Jar containing server where you
    +                                 keep your stubs (e.g. http://nexus.net/content
    +                                 /repositories/repository)
    +-ss (--stubsSuffix) VAL        : Suffix for the jar containing stubs (e.g.
    +                                 'stubs' if the stub jar would have a 'stubs'
    +                                 classifier for stubs: foobar-stubs ).
    +                                 Defaults to 'stubs' (default: stubs)
    +-wo (--workOffline)            : Switch to work offline. Defaults to 'false'
    +                                 (default: false)</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_http_stubs">HTTP Stubs</h5>
    +<div class="paragraph">
    +<p>Stubs are defined in JSON documents, whose syntax is defined in <a href="http://wiremock.org/stubbing.html">WireMock documentation</a></p>
    +</div>
    +<div class="paragraph">
    +<p>Example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-javascript" data-lang="javascript">{
    +    "request": {
    +        "method": "GET",
    +        "url": "/ping"
    +    },
    +    "response": {
    +        "status": 200,
    +        "body": "pong",
    +        "headers": {
    +            "Content-Type": "text/plain"
    +        }
    +    }
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_viewing_registered_mappings">Viewing registered mappings</h5>
    +<div class="paragraph">
    +<p>Every stubbed collaborator exposes list of defined mappings under <code>__/admin/</code> endpoint.</p>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_messaging_stubs">Messaging Stubs</h5>
    +<div class="paragraph">
    +<p>Depending on the provided Stub Runner dependency and the DSL the messaging routes are automatically set up.</p>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_junit_rule">Stub Runner JUnit Rule</h3>
    +<div class="paragraph">
    +<p>Stub Runner comes with a JUnit rule thanks to which you can very easily download and run stubs for given group and artifact id:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@ClassRule public static StubRunnerRule rule = new StubRunnerRule()
    +		.repoRoot(repoRoot())
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer");</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>After that rule gets executed Stub Runner connects to your Maven repository and for the given list of dependencies tries to:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>download them</p>
    +</li>
    +<li>
    +<p>cache them locally</p>
    +</li>
    +<li>
    +<p>unzip them to a temporary folder</p>
    +</li>
    +<li>
    +<p>start a WireMock server for each Maven dependency on a random port from the provided range of ports / provided port</p>
    +</li>
    +<li>
    +<p>feed the WireMock server with all JSON files that are valid WireMock definitions</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Stub Runner uses <a href="https://wiki.eclipse.org/Aether">Eclipse Aether</a> mechanism to download the Maven dependencies.
    +Check their <a href="https://wiki.eclipse.org/Aether">docs</a> for more information.</p>
    +</div>
    +<div class="paragraph">
    +<p>Since the <code>StubRunnerRule</code> implements the <code>StubFinder</code> it allows you to find the started stubs:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the "License");
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an "AS IS" BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +
    +package org.springframework.cloud.contract.stubrunner;
    +
    +import java.net.URL;
    +import java.util.Collection;
    +import java.util.Map;
    +
    +import org.springframework.cloud.contract.spec.Contract;
    +
    +public interface StubFinder extends StubTrigger {
    +	/**
    +	 * For the given groupId and artifactId tries to find the matching
    +	 * URL of the running stub.
    +	 *
    +	 * @param groupId - might be null. In that case a search only via artifactId takes place
    +	 * @return URL of a running stub or null if not found
    +	 */
    +	URL findStubUrl(String groupId, String artifactId);
    +
    +	/**
    +	 * For the given Ivy notation {@code groupId:artifactId} tries to find the matching
    +	 * URL of the running stub. You can also pass only {@code artifactId}.
    +	 *
    +	 * @param ivyNotation - Ivy representation of the Maven artifact
    +	 * @return URL of a running stub or null if not found
    +	 */
    +	URL findStubUrl(String ivyNotation);
    +
    +	/**
    +	 * Returns all running stubs
    +	 */
    +	RunningStubs findAllRunningStubs();
    +
    +	/**
    +	 * Returns the list of Contracts
    +	 */
    +	Map&lt;StubConfiguration, Collection&lt;Contract&gt;&gt; getContracts();
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Example of usage in Spock tests:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">@ClassRule @Shared StubRunnerRule rule = new StubRunnerRule()
    +		.repoRoot(StubRunnerRuleSpec.getResource("/m2repo/repository").toURI().toString())
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")
    +
    +def 'should start WireMock servers'() {
    +	expect: 'WireMocks are running'
    +		rule.findStubUrl('org.springframework.cloud.contract.verifier.stubs', 'loanIssuance') != null
    +		rule.findStubUrl('loanIssuance') != null
    +		rule.findStubUrl('loanIssuance') == rule.findStubUrl('org.springframework.cloud.contract.verifier.stubs', 'loanIssuance')
    +		rule.findStubUrl('org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer') != null
    +	and:
    +		rule.findAllRunningStubs().isPresent('loanIssuance')
    +		rule.findAllRunningStubs().isPresent('org.springframework.cloud.contract.verifier.stubs', 'fraudDetectionServer')
    +		rule.findAllRunningStubs().isPresent('org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer')
    +	and: 'Stubs were registered'
    +		"${rule.findStubUrl('loanIssuance').toString()}/name".toURL().text == 'loanIssuance'
    +		"${rule.findStubUrl('fraudDetectionServer').toString()}/name".toURL().text == 'fraudDetectionServer'
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Example of usage in JUnit tests:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@Test
    +public void should_start_wiremock_servers() throws Exception {
    +	// expect: 'WireMocks are running'
    +		then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")).isNotNull();
    +		then(rule.findStubUrl("loanIssuance")).isNotNull();
    +		then(rule.findStubUrl("loanIssuance")).isEqualTo(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance"));
    +		then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull();
    +	// and:
    +		BDDAssertions.then(rule.findAllRunningStubs().isPresent("loanIssuance")).isTrue();
    +		BDDAssertions.then(rule.findAllRunningStubs().isPresent("org.springframework.cloud.contract.verifier.stubs", "fraudDetectionServer")).isTrue();
    +		BDDAssertions.then(rule.findAllRunningStubs().isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue();
    +	// and: 'Stubs were registered'
    +		then(httpGet(rule.findStubUrl("loanIssuance").toString() + "/name")).isEqualTo("loanIssuance");
    +		then(httpGet(rule.findStubUrl("fraudDetectionServer").toString() + "/name")).isEqualTo("fraudDetectionServer");
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Check the <strong>Common properties for JUnit and Spring</strong> for more information on how to apply global configuration of Stub Runner.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_providing_fixed_ports">Providing fixed ports</h4>
    +<div class="paragraph">
    +<p>You can also run your stubs on fixed ports. You can do it in two different ways. One is to pass it in the properties, and the other via fluent API of
    +JUnit rule.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_fluent_api">Fluent API</h4>
    +<div class="paragraph">
    +<p>When using the <code>StubRunnerRule</code> you can add a stub to download and then pass the port for the last downloaded stub.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@ClassRule public static StubRunnerRule rule = new StubRunnerRule()
    +		.repoRoot(repoRoot())
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")
    +		.withPort(12345)
    +		.downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:12346");</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>You can see that for this example the following test is valid:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">then(rule.findStubUrl("loanIssuance")).isEqualTo(URI.create("http://localhost:12345").toURL());
    +then(rule.findStubUrl("fraudDetectionServer")).isEqualTo(URI.create("http://localhost:12346").toURL());</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_stub_runner_with_spring">Stub Runner with Spring</h4>
    +<div class="paragraph">
    +<p>Sets up Spring configuration of the Stub Runner project.</p>
    +</div>
    +<div class="paragraph">
    +<p>By providing a list of stubs inside your configuration file the Stub Runner automatically downloads
    +and registers in WireMock the selected stubs.</p>
    +</div>
    +<div class="paragraph">
    +<p>If you want to find the URL of your stubbed dependency you can autowire the <code>StubFinder</code> interface and use
    +its methods as presented below:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">@ContextConfiguration(classes = Config, loader = SpringBootContextLoader)
    +@IntegrationTest(["stubrunner.cloud.enabled=false", "stubrunner.camel.enabled=false"])
    +@AutoConfigureStubRunner
    +@DirtiesContext
    +class StubRunnerConfigurationSpec extends Specification {
    +
    +	@Autowired StubFinder stubFinder
    +
    +	@BeforeClass
    +	@AfterClass
    +	void setupProps() {
    +		System.clearProperty("stubrunner.stubs.repository.root");
    +		System.clearProperty("stubrunner.stubs.classifier");
    +	}
    +
    +	def 'should start WireMock servers'() {
    +		expect: 'WireMocks are running'
    +			stubFinder.findStubUrl('org.springframework.cloud.contract.verifier.stubs', 'loanIssuance') != null
    +			stubFinder.findStubUrl('loanIssuance') != null
    +			stubFinder.findStubUrl('loanIssuance') == stubFinder.findStubUrl('org.springframework.cloud.contract.verifier.stubs', 'loanIssuance')
    +			stubFinder.findStubUrl('org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer') != null
    +		and:
    +			stubFinder.findAllRunningStubs().isPresent('loanIssuance')
    +			stubFinder.findAllRunningStubs().isPresent('org.springframework.cloud.contract.verifier.stubs', 'fraudDetectionServer')
    +			stubFinder.findAllRunningStubs().isPresent('org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer')
    +		and: 'Stubs were registered'
    +			"${stubFinder.findStubUrl('loanIssuance').toString()}/name".toURL().text == 'loanIssuance'
    +			"${stubFinder.findStubUrl('fraudDetectionServer').toString()}/name".toURL().text == 'fraudDetectionServer'
    +	}
    +
    +	@Configuration
    +	@EnableAutoConfiguration
    +	static class Config {}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>for the following configuration file:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-yml" data-lang="yml">stubrunner.stubs.repositoryRoot: classpath:m2repo/repository/
    +stubrunner.stubs.ids:
    +  - org.springframework.cloud.contract.verifier.stubs:loanIssuance
    +  - org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer
    +  - org.springframework.cloud.contract.verifier.stubs:bootService
    +
    +stubrunner.stubs.idsToServiceIds:
    +  ivyNotation: someValueInsideYourCode
    +  fraudDetectionServer: someNameThatShouldMapFraudDetectionServer</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_spring_cloud">Stub Runner Spring Cloud</h3>
    +<div class="paragraph">
    +<p>Stub Runner can integrate with Spring Cloud.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_stubbing_service_discovery">Stubbing Service Discovery</h4>
    +<div class="paragraph">
    +<p>The most important feature of <code>Stub Runner Spring Cloud</code> is the fact that it&#8217;s stubbing</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><code>DiscoveryClient</code></p>
    +</li>
    +<li>
    +<p><code>Ribbon</code> <code>ServerList</code></p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>that means that regardless of the fact whether you&#8217;re using Zookeeper, Consul, Eureka or anything else, you don&#8217;t need that in your tests.
    +We&#8217;re starting WireMock instances of your dependencies and we&#8217;re telling your application whenever you&#8217;re using <code>Feign</code>, load balanced <code>RestTemplate</code>
    +or <code>DiscoveryClient</code> directly, to call those stubbed servers instead of calling the real Service Discovery tool.</p>
    +</div>
    +<div class="paragraph">
    +<p>For example this test will pass</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">def 'should make service discovery work'() {
    +	expect: 'WireMocks are running'
    +		"${stubFinder.findStubUrl('loanIssuance').toString()}/name".toURL().text == 'loanIssuance'
    +		"${stubFinder.findStubUrl('fraudDetectionServer').toString()}/name".toURL().text == 'fraudDetectionServer'
    +	and: 'Stubs can be reached via load service discovery'
    +		restTemplate.getForObject('http://loanIssuance/name', String) == 'loanIssuance'
    +		restTemplate.getForObject('http://someNameThatShouldMapFraudDetectionServer/name', String) == 'fraudDetectionServer'
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>for the following configuration file</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-yml" data-lang="yml">stubrunner.stubs.repositoryRoot: classpath:m2repo/repository/
    +stubrunner.stubs.ids:
    +  - org.springframework.cloud.contract.verifier.stubs:loanIssuance
    +  - org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer
    +  - org.springframework.cloud.contract.verifier.stubs:bootService
    +
    +stubrunner.stubs.idsToServiceIds:
    +  ivyNotation: someValueInsideYourCode
    +  fraudDetectionServer: someNameThatShouldMapFraudDetectionServer</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_additional_configuration">Additional Configuration</h4>
    +<div class="paragraph">
    +<p>You can match the artifactId of the stub with the name of your app by using the <code>stubrunner.stubs.idsToServiceIds:</code> map.
    +You can disable Stub Runner Ribbon support by providing: <code>stubrunner.cloud.ribbon.enabled</code> equal to <code>false</code>
    +You can disable Stub Runner support by providing: <code>stubrunner.cloud.enabled</code> equal to <code>false</code></p>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_boot_application">Stub Runner Boot Application</h3>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier Stub Runner Boot is a Spring Boot application that exposes REST endpoints to
    +trigger the messaging labels and to access started WireMock servers.</p>
    +</div>
    +<div class="paragraph">
    +<p>One of the use-cases is to run some smoke (end to end) tests on a deployed application. You can read
    + more about this in the  <a href="http://toomuchcoding.com/blog/2015/09/27/microservice-deployment/">"Microservice Deployment" article at Too Much Coding blog.</a></p>
    +</div>
    +<div class="sect3">
    +<h4 id="_how_to_use_it">How to use it?</h4>
    +<div class="paragraph">
    +<p>Just add the</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">compile "org.springframework.cloud:spring-cloud-starter-stub-runner"</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Annotate a class with <code>@EnableStubRunnerServer</code>, build a fat-jar and you&#8217;re ready to go!</p>
    +</div>
    +<div class="paragraph">
    +<p>For the properties check the <strong>Stub Runner Spring</strong> section.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_endpoints">Endpoints</h4>
    +<div class="sect4">
    +<h5 id="_http">HTTP</h5>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>GET <code>/stubs</code> - returns a list of all running stubs in <code>ivy:integer</code> notation</p>
    +</li>
    +<li>
    +<p>GET <code>/stubs/{ivy}</code> - returns a port for the given <code>ivy</code> notation (when calling the endpoint <code>ivy</code> can also be <code>artifactId</code> only)</p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_messaging">Messaging</h5>
    +<div class="paragraph">
    +<p>For Messaging</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>GET <code>/triggers</code> - returns a list of all running labels in <code>ivy : [ label1, label2 &#8230;&#8203;]</code> notation</p>
    +</li>
    +<li>
    +<p>POST <code>/triggers/{label}</code> - executes a trigger with <code>label</code></p>
    +</li>
    +<li>
    +<p>POST <code>/triggers/{ivy}/{label}</code> - executes a trigger with <code>label</code> for the given <code>ivy</code> notation (when calling the endpoint <code>ivy</code> can also be <code>artifactId</code> only)</p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_example">Example</h4>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">@ContextConfiguration(classes = StubRunnerBoot, loader = SpringBootContextLoader)
    +@IntegrationTest("spring.cloud.zookeeper.enabled=false")
    +class StubRunnerBootSpec extends Specification {
    +
    +	@Autowired StubRunning stubRunning
    +
    +	def setup() {
    +		RestAssuredMockMvc.standaloneSetup(new HttpStubsController(stubRunning),
    +				new TriggerController(stubRunning))
    +	}
    +
    +	def 'should return a list of running stub servers in "full ivy:port" notation'() {
    +		when:
    +			String response = RestAssuredMockMvc.get('/stubs').body.asString()
    +		then:
    +			def root = new JsonSlurper().parseText(response)
    +			root.'org.springframework.cloud.contract.verifier.stubs:bootService:0.0.1-SNAPSHOT:stubs' instanceof Integer
    +	}
    +
    +	def 'should return a port on which a [#stubId] stub is running'() {
    +		when:
    +			def response = RestAssuredMockMvc.get("/stubs/${stubId}")
    +		then:
    +			response.statusCode == 200
    +			response.body.as(Integer) &gt; 0
    +		where:
    +			stubId &lt;&lt; ['org.springframework.cloud.contract.verifier.stubs:bootService:+:stubs',
    +					   'org.springframework.cloud.contract.verifier.stubs:bootService:0.0.1-SNAPSHOT:stubs',
    +					   'org.springframework.cloud.contract.verifier.stubs:bootService:+',
    +					   'org.springframework.cloud.contract.verifier.stubs:bootService',
    +					   'bootService']
    +	}
    +
    +	def 'should return 404 when missing stub was called'() {
    +		when:
    +			def response = RestAssuredMockMvc.get("/stubs/a:b:c:d")
    +		then:
    +			response.statusCode == 404
    +	}
    +
    +	def 'should return a list of messaging labels that can be triggered when version and classifier are passed'() {
    +		when:
    +			String response = RestAssuredMockMvc.get('/triggers').body.asString()
    +		then:
    +			def root = new JsonSlurper().parseText(response)
    +			root.'org.springframework.cloud.contract.verifier.stubs:bootService:0.0.1-SNAPSHOT:stubs'?.containsAll(["delete_book","return_book_1","return_book_2"])
    +	}
    +
    +	def 'should trigger a messaging label'() {
    +		given:
    +			StubRunning stubRunning = Mock()
    +			RestAssuredMockMvc.standaloneSetup(new HttpStubsController(stubRunning), new TriggerController(stubRunning))
    +		when:
    +			def response = RestAssuredMockMvc.post("/triggers/delete_book")
    +		then:
    +			response.statusCode == 200
    +		and:
    +			1 * stubRunning.trigger('delete_book')
    +	}
    +
    +	def 'should trigger a messaging label for a stub with [#stubId] ivy notation'() {
    +		given:
    +			StubRunning stubRunning = Mock()
    +			RestAssuredMockMvc.standaloneSetup(new HttpStubsController(stubRunning), new TriggerController(stubRunning))
    +		when:
    +			def response = RestAssuredMockMvc.post("/triggers/$stubId/delete_book")
    +		then:
    +			response.statusCode == 200
    +		and:
    +			1 * stubRunning.trigger(stubId, 'delete_book')
    +		where:
    +			stubId &lt;&lt; ['org.springframework.cloud.contract.verifier.stubs:bootService:stubs', 'org.springframework.cloud.contract.verifier.stubs:bootService', 'bootService']
    +	}
    +
    +	def 'should return when trigger is missing'() {
    +		when:
    +			def response = RestAssuredMockMvc.post("/triggers/missing_label")
    +		then:
    +			response.statusCode == 404
    +			def root = new JsonSlurper().parseText(response.body.asString())
    +			root.'org.springframework.cloud.contract.verifier.stubs:bootService:0.0.1-SNAPSHOT:stubs'?.containsAll(["delete_book","return_book_1","return_book_2"])
    +	}
    +
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_common_properties_for_junit_and_spring">Common properties for JUnit and Spring</h4>
    +<div class="paragraph">
    +<p>Some of the properties that are repetitive can be set using system properties or configuration properties (for Spring). Here are their names with their default values:</p>
    +</div>
    +<table class="tableblock frame-topbot grid-all spread">
    +<colgroup>
    +<col style="width: 33%;">
    +<col style="width: 33%;">
    +<col style="width: 33%;">
    +</colgroup>
    +<thead>
    +<tr>
    +<th class="tableblock halign-left valign-top">Property name</th>
    +<th class="tableblock halign-left valign-top">Default value</th>
    +<th class="tableblock halign-left valign-top">Description</th>
    +</tr>
    +</thead>
    +<tbody>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.minPort</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">10000</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">Minimal value of a port for a started WireMock with stubs</p></td>
    +</tr>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.maxPort</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">15000</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">Minimal value of a port for a started WireMock with stubs</p></td>
    +</tr>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.stubs.repositoryRoot</p></td>
    +<td class="tableblock halign-left valign-top"></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">Maven repo url. If blank then will call the local maven repo</p></td>
    +</tr>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.stubs.classifier</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubs</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">Default classifier for the stub artifacts</p></td>
    +</tr>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.workOffline</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">If true then will not contact any remote repositories to download stubs</p></td>
    +</tr>
    +<tr>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">stubrunner.stubs.ids</p></td>
    +<td class="tableblock halign-left valign-top"></td>
    +<td class="tableblock halign-left valign-top"><p class="tableblock">Array of Ivy notation stubs to download</p></td>
    +</tr>
    +</tbody>
    +</table>
    +<div class="sect4">
    +<h5 id="_stub_runner_stubs_ids">Stub runner stubs ids</h5>
    +<div class="paragraph">
    +<p>You can provide the stubs to download via the <code>stubrunner.stubs.ids</code> system property. They follow the following pattern:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">groupId:artifactId:version:classifier:port</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p><code>version</code>, <code>classifier</code> and <code>port</code> are optional.</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>If you don&#8217;t provide the <code>port</code> then a random one will be picked</p>
    +</li>
    +<li>
    +<p>If you don&#8217;t provide the <code>classifier</code> then the default one will be taken.</p>
    +</li>
    +<li>
    +<p>If you don&#8217;t provide the <code>version</code> then the <code>+</code> will be passed and the latest one will be downloaded</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>Where <code>port</code> means the port of the WireMock server.</p>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_for_messaging">Stub Runner for Messaging</h3>
    +<div class="paragraph">
    +<p>Stub Runner has the functionality to run the published stubs in memory. It can integrate with the following frameworks out of the box</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p>Spring Integration</p>
    +</li>
    +<li>
    +<p>Spring Cloud Stream</p>
    +</li>
    +<li>
    +<p>Apache Camel</p>
    +</li>
    +</ul>
    +</div>
    +<div class="paragraph">
    +<p>It also provides points of entry to integrate with any other solution on the market.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_stub_triggering">Stub triggering</h4>
    +<div class="paragraph">
    +<p>To trigger a message it&#8217;s enough to use the <code>StubTrigger</code> interface:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">/*
    + *  Copyright 2013-2016 the original author or authors.
    + *
    + *  Licensed under the Apache License, Version 2.0 (the "License");
    + *  you may not use this file except in compliance with the License.
    + *  You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + *  Unless required by applicable law or agreed to in writing, software
    + *  distributed under the License is distributed on an "AS IS" BASIS,
    + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + *  See the License for the specific language governing permissions and
    + *  limitations under the License.
    + */
    +
    +package org.springframework.cloud.contract.stubrunner;
    +
    +import java.util.Collection;
    +import java.util.Map;
    +
    +public interface StubTrigger {
    +
    +	/**
    +	 * Triggers an event by a given label for a given {@code groupid:artifactid} notation. You can use only {@code artifactId} too.
    +	 *
    +	 * Feature related to messaging.
    +	 *
    +	 * @return true - if managed to run a trigger
    +	 */
    +	boolean trigger(String ivyNotation, String labelName);
    +
    +	/**
    +	 * Triggers an event by a given label.
    +	 *
    +	 * Feature related to messaging.
    +	 *
    +	 * @return true - if managed to run a trigger
    +	 */
    +	boolean trigger(String labelName);
    +
    +	/**
    +	 * Triggers all possible events.
    +	 *
    +	 * Feature related to messaging.
    +	 *
    +	 * @return true - if managed to run a trigger
    +	 */
    +	boolean trigger();
    +
    +	/**
    +	 * Returns a mapping of ivy notation of a dependency to all the labels it has.
    +	 *
    +	 * Feature related to messaging.
    +	 */
    +	Map&lt;String, Collection&lt;String&gt;&gt; labels();
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>For convenience the <code>StubFinder</code> interface extends <code>StubTrigger</code> so it&#8217;s enough to use only one in your tests.</p>
    +</div>
    +<div class="paragraph">
    +<p><code>StubTrigger</code> gives you the following options to trigger a message:</p>
    +</div>
    +<div class="sect4">
    +<h5 id="_trigger_by_label">Trigger by label</h5>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('return_book_1')</code></pre>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_trigger_by_group_and_artifact_ids">Trigger by group and artifact ids</h6>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:camelService', 'return_book_1')</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect5">
    +<h6 id="_trigger_by_artifact_ids">Trigger by artifact ids</h6>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('camelService', 'return_book_1')</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_trigger_all_messages">Trigger all messages</h5>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger()</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_camel">Stub Runner Camel</h3>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier Stub Runner&#8217;s messaging module gives you an easy way to integrate with Apache Camel.
    +For the provided artifacts it will automatically download the stubs and register the required
    +routes.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_adding_it_to_the_project">Adding it to the project</h4>
    +<div class="paragraph">
    +<p>It&#8217;s enough to have both Apache Camel and Spring Cloud Contract Stub Runner on classpath.
    +Remember to annotate your test class with <code>@AutoConfigureMessageVerifier</code>.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_examples">Examples</h4>
    +<div class="sect4">
    +<h5 id="_stubs_structure">Stubs structure</h5>
    +<div class="paragraph">
    +<p>Let us assume that we have the following Maven repository with a deployed stubs for the
    +<code>camelService</code> application.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">└── .m2
    +    └── repository
    +        └── io
    +            └── codearte
    +                └── accurest
    +                    └── stubs
    +                        └── camelService
    +                            ├── 0.0.1-SNAPSHOT
    +                            │   ├── camelService-0.0.1-SNAPSHOT.pom
    +                            │   ├── camelService-0.0.1-SNAPSHOT-stubs.jar
    +                            │   └── maven-metadata-local.xml
    +                            └── maven-metadata-local.xml</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the stubs contain the following structure:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">├── META-INF
    +│   └── MANIFEST.MF
    +└── repository
    +    ├── accurest
    +    │   ├── bookDeleted.groovy
    +    │   ├── bookReturned1.groovy
    +    │   └── bookReturned2.groovy
    +    └── mappings</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Let&#8217;s consider the following contracts (let' number it with <strong>1</strong>):</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_1'
    +	input {
    +		triggeredBy('bookReturnedTriggered()')
    +	}
    +	outputMessage {
    +		sentTo('jms:output')
    +		body('''{ "bookName" : "foo" }''')
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and number <strong>2</strong></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_2'
    +	input {
    +		messageFrom('jms:input')
    +		messageBody([
    +				bookName: 'foo'
    +		])
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +	}
    +	outputMessage {
    +		sentTo('jms:output')
    +		body([
    +				bookName: 'foo'
    +		])
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_1_no_input_message_2">Scenario 1 (no input message)</h5>
    +<div class="paragraph">
    +<p>So as to trigger a message via the <code>return_book_1</code> label we&#8217;ll use the <code>StubTigger</code> interface as follows</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('return_book_1')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to <code>jms:output</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Exchange receivedMessage = camelContext.createConsumerTemplate().receive('jms:output', 5000)</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertThatBodyContainsBookNameFoo(receivedMessage.in.body)
    +receivedMessage.in.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_2_output_triggered_by_input_2">Scenario 2 (output triggered by input)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>jms:output</code> destination.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">camelContext.createProducerTemplate().sendBodyAndHeaders('jms:input', new BookReturned('foo'), [sample: 'header'])</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to <code>jms:output</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Exchange receivedMessage = camelContext.createConsumerTemplate().receive('jms:output', 5000)</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertThatBodyContainsBookNameFoo(receivedMessage.in.body)
    +receivedMessage.in.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_3_input_with_no_output">Scenario 3 (input with no output)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>jms:output</code> destination.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">camelContext.createProducerTemplate().sendBodyAndHeaders('jms:delete', new BookReturned('foo'), [sample: 'header'])</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_integration">Stub Runner Integration</h3>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier Stub Runner&#8217;s messaging module gives you an easy way to integrate with Spring Integration.
    +For the provided artifacts it will automatically download the stubs and register the required
    +routes.</p>
    +</div>
    +<div class="sect3">
    +<h4 id="_adding_it_to_the_project_2">Adding it to the project</h4>
    +<div class="paragraph">
    +<p>It&#8217;s enough to have both Apache Camel and Spring Cloud Contract Stub Runner on classpath.
    +Remember to annotate your test class with <code>@AutoConfigureMessageVerifier</code>.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_examples_2">Examples</h4>
    +<div class="sect4">
    +<h5 id="_stubs_structure_2">Stubs structure</h5>
    +<div class="paragraph">
    +<p>Let us assume that we have the following Maven repository with a deployed stubs for the
    +<code>integrationService</code> application.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">└── .m2
    +    └── repository
    +        └── io
    +            └── codearte
    +                └── accurest
    +                    └── stubs
    +                        └── integrationService
    +                            ├── 0.0.1-SNAPSHOT
    +                            │   ├── integrationService-0.0.1-SNAPSHOT.pom
    +                            │   ├── integrationService-0.0.1-SNAPSHOT-stubs.jar
    +                            │   └── maven-metadata-local.xml
    +                            └── maven-metadata-local.xml</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the stubs contain the following structure:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">├── META-INF
    +│   └── MANIFEST.MF
    +└── repository
    +    ├── accurest
    +    │   ├── bookDeleted.groovy
    +    │   ├── bookReturned1.groovy
    +    │   └── bookReturned2.groovy
    +    └── mappings</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Let&#8217;s consider the following contracts (let' number it with <strong>1</strong>):</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_1'
    +	input {
    +		triggeredBy('bookReturnedTriggered()')
    +	}
    +	outputMessage {
    +		sentTo('output')
    +		body('''{ "bookName" : "foo" }''')
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and number <strong>2</strong></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_2'
    +	input {
    +		messageFrom('input')
    +		messageBody([
    +				bookName: 'foo'
    +		])
    +		messageHeaders {
    +			header('sample', 'header')
    +		}
    +	}
    +	outputMessage {
    +		sentTo('output')
    +		body([
    +				bookName: 'foo'
    +		])
    +		headers {
    +			header('BOOK-NAME', 'foo')
    +		}
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and the following Spring Integration Route:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    +&lt;!--
    +  ~  Copyright 2013-2016 the original author or authors.
    +  ~
    +  ~  Licensed under the Apache License, Version 2.0 (the "License");
    +  ~  you may not use this file except in compliance with the License.
    +  ~  You may obtain a copy of the License at
    +  ~
    +  ~       http://www.apache.org/licenses/LICENSE-2.0
    +  ~
    +  ~  Unless required by applicable law or agreed to in writing, software
    +  ~  distributed under the License is distributed on an "AS IS" BASIS,
    +  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +  ~  See the License for the specific language governing permissions and
    +  ~  limitations under the License.
    +  --&gt;
    +
    +&lt;beans:beans xmlns="http://www.springframework.org/schema/integration"
    +			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +			 xmlns:beans="http://www.springframework.org/schema/beans"
    +			 xsi:schemaLocation="http://www.springframework.org/schema/beans
    +			http://www.springframework.org/schema/beans/spring-beans.xsd
    +			http://www.springframework.org/schema/integration
    +			http://www.springframework.org/schema/integration/spring-integration.xsd"&gt;
    +
    +
    +	&lt;!-- REQUIRED FOR TESTING --&gt;
    +	&lt;bridge input-channel="output"
    +			output-channel="outputTest"/&gt;
    +
    +	&lt;channel id="outputTest"&gt;
    +		&lt;queue/&gt;
    +	&lt;/channel&gt;
    +
    +&lt;/beans:beans&gt;</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_1_no_input_message_3">Scenario 1 (no input message)</h5>
    +<div class="paragraph">
    +<p>So as to trigger a message via the <code>return_book_1</code> label we&#8217;ll use the <code>StubTigger</code> interface as follows</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('return_book_1')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to <code>output</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Message&lt;?&gt; receivedMessage = messaging.receive('outputTest')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertJsons(receivedMessage.payload)
    +receivedMessage.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_2_output_triggered_by_input_3">Scenario 2 (output triggered by input)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>output</code> destination.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">messaging.send(new BookReturned('foo'), [sample: 'header'], 'input')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to <code>output</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Message&lt;?&gt; receivedMessage = messaging.receive('outputTest')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertJsons(receivedMessage.payload)
    +receivedMessage.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_3_input_with_no_output_2">Scenario 3 (input with no output)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>input</code> destination.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">messaging.send(new BookReturned('foo'), [sample: 'header'], 'delete')</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_stub_runner_stream">Stub Runner Stream</h3>
    +<div class="paragraph">
    +<p>Spring Cloud Contract Verifier Stub Runner&#8217;s messaging module gives you an easy way to integrate with Spring Stream.
    +For the provided artifacts it will automatically download the stubs and register the required
    +routes.</p>
    +</div>
    +<div class="admonitionblock warning">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Warning</div>
    +</td>
    +<td class="content">
    +In Stub Runner&#8217;s integration with Stream the <code>messageFrom</code> or <code>sentTo</code> Strings are resolved
    +first as a <code>destination</code> of a channel, and then if there is no such <code>destination</code> it&#8217;s resolved as a
    +channel name.
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="sect3">
    +<h4 id="_adding_it_to_the_project_3">Adding it to the project</h4>
    +<div class="paragraph">
    +<p>It&#8217;s enough to have both Apache Camel and Spring Cloud Contract Stub Runner on classpath.
    +Remember to annotate your test class with <code>@AutoConfigureMessageVerifier</code>.</p>
    +</div>
    +</div>
    +<div class="sect3">
    +<h4 id="_examples_3">Examples</h4>
    +<div class="sect4">
    +<h5 id="_stubs_structure_3">Stubs structure</h5>
    +<div class="paragraph">
    +<p>Let us assume that we have the following Maven repository with a deployed stubs for the
    +<code>streamService</code> application.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">└── .m2
    +    └── repository
    +        └── io
    +            └── codearte
    +                └── accurest
    +                    └── stubs
    +                        └── streamService
    +                            ├── 0.0.1-SNAPSHOT
    +                            │   ├── streamService-0.0.1-SNAPSHOT.pom
    +                            │   ├── streamService-0.0.1-SNAPSHOT-stubs.jar
    +                            │   └── maven-metadata-local.xml
    +                            └── maven-metadata-local.xml</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the stubs contain the following structure:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-bash" data-lang="bash">├── META-INF
    +│   └── MANIFEST.MF
    +└── repository
    +    ├── accurest
    +    │   ├── bookDeleted.groovy
    +    │   ├── bookReturned1.groovy
    +    │   └── bookReturned2.groovy
    +    └── mappings</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Let&#8217;s consider the following contracts (let' number it with <strong>1</strong>):</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_1'
    +	input { triggeredBy('bookReturnedTriggered()') }
    +	outputMessage {
    +		sentTo('returnBook')
    +		body('''{ "bookName" : "foo" }''')
    +		headers { header('BOOK-NAME', 'foo') }
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and number <strong>2</strong></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Contract.make {
    +	label 'return_book_2'
    +	input {
    +		messageFrom('bookStorage')
    +		messageBody([
    +			bookName: 'foo'
    +		])
    +		messageHeaders { header('sample', 'header') }
    +	}
    +	outputMessage {
    +		sentTo('returnBook')
    +		body([
    +			bookName: 'foo'
    +		])
    +		headers { header('BOOK-NAME', 'foo') }
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>and the following Spring configuration:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-yaml" data-lang="yaml">stubrunner.stubs.repositoryRoot: classpath:m2repo/repository/
    +stubrunner.stubs.ids: org.springframework.cloud.contract.verifier.stubs:streamService:0.0.1-SNAPSHOT:stubs
    +
    +spring:
    +  cloud:
    +    stream:
    +      bindings:
    +        output:
    +          destination: returnBook
    +        input:
    +          destination: bookStorage</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_1_no_input_message_4">Scenario 1 (no input message)</h5>
    +<div class="paragraph">
    +<p>So as to trigger a message via the <code>return_book_1</code> label we&#8217;ll use the <code>StubTrigger</code> interface as follows</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">stubFinder.trigger('return_book_1')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to a channel whose <code>destination</code> is <code>returnBook</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Message&lt;?&gt; receivedMessage = messaging.receive('returnBook')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertJsons(receivedMessage.payload)
    +receivedMessage.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_2_output_triggered_by_input_4">Scenario 2 (output triggered by input)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>bookStorage</code> <code>destination</code>.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">messaging.send(new BookReturned('foo'), [sample: 'header'], 'bookStorage')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>Next we&#8217;ll want to listen to the output of the message sent to <code>returnBook</code></p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">Message&lt;?&gt; receivedMessage = messaging.receive('returnBook')</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>And the received message would pass the following assertions</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">receivedMessage != null
    +assertJsons(receivedMessage.payload)
    +receivedMessage.headers.get('BOOK-NAME') == 'foo'</code></pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect4">
    +<h5 id="_scenario_3_input_with_no_output_3">Scenario 3 (input with no output)</h5>
    +<div class="paragraph">
    +<p>Since the route is set for you it&#8217;s enough to just send a message to the <code>output</code> destination.</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-groovy" data-lang="groovy">messaging.send(new BookReturned('foo'), [sample: 'header'], 'delete')</code></pre>
    +</div>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_links">Links</h3>
    +<div class="paragraph">
    +<p>Here you can find interesting links related to Spring Cloud Contract Verifier:</p>
    +</div>
    +<div class="ulist">
    +<ul>
    +<li>
    +<p><a href="https://github.com/spring-cloud/spring-cloud-contract/">Spring Cloud Contract Verifier Github Repository</a></p>
    +</li>
    +<li>
    +<p><a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html">Spring Cloud Contract Verifier Documentation</a></p>
    +</li>
    +<li>
    +<p><a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/deprecated">Accurest Legacy Documentation</a></p>
    +</li>
    +<li>
    +<p><a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/#spring-cloud-contract-stub-runner">Spring Cloud Contract Stub Runner Documentation</a></p>
    +</li>
    +<li>
    +<p><a href="https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/#stub-runner-for-messaging">Spring Cloud Contract Stub Runner Messaging Documentation</a></p>
    +</li>
    +<li>
    +<p><a href="https://gitter.im/spring-cloud/spring-cloud-contract">Spring Cloud Contract Verifier Gitter</a></p>
    +</li>
    +<li>
    +<p><a href="https://github.com/spring-cloud/spring-cloud-contract">Spring Cloud Contract Verifier Maven Plugin</a></p>
    +</li>
    +</ul>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="_spring_cloud_contract_wiremock">Spring Cloud Contract WireMock</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>Modules giving you the possibility to use
    +<a href="http://wiremock.org">WireMock</a> with different servers by using the
    +"ambient" server embedded in a Spring Boot application. Check out the
    +<a href="https://github.com/spring-cloud/spring-cloud-contract/tree/master/samples">samples</a>
    +for more details.</p>
    +</div>
    +<div class="paragraph">
    +<p>If you have a Spring Boot application that uses Tomcat as an embedded
    +server, for example (the default with <code>spring-boot-starter-web</code>), then
    +you can simply add <code>spring-cloud-contract-wiremock</code> to your classpath
    +and add <code>@AutoConfigureWireMock</code> in order to be able to use Wiremock
    +in your tests. Wiremock runs as a stub server and you can register
    +stub behaviour using a Java API or via static JSON declarations as
    +part of your test. Here&#8217;s a simple example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringRunner.class)
    +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    +@AutoConfigureWireMock(port = 0)
    +public class WiremockForDocsTests {
    +	// A service that calls out over HTTP
    +	@Autowired private Service service;
    +
    +	// Using the WireMock APIs in the normal way:
    +	@Test
    +	public void contextLoads() throws Exception {
    +		// Stubbing WireMock
    +		stubFor(get(urlEqualTo("/resource"))
    +				.willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!")));
    +		// We're asserting if WireMock responded properly
    +		assertThat(this.service.go()).isEqualTo("Hello World!");
    +	}
    +
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>To start the stub server on a different port use <code>@AutoConfigureWireMock(port=9999)</code> (for example), and for a random port use the value 0. The stub server port will be bindable in the test application context as "wiremock.server.port". Using <code>@AutoConfigureWireMock</code> adds a bean of type <code>WiremockConfiguration</code> to your test application context, where it will be cached in between methods and classes having the same context, just like for normal Spring integration tests.</p>
    +</div>
    +<div class="sect2">
    +<h3 id="_registering_stubs_automatically">Registering Stubs Automatically</h3>
    +<div class="paragraph">
    +<p>If you add a <code>stubs</code> attribute to your <code>@AutoConfigureWireMock</code> then
    +it will register WireMock JSON stubs from the file system or
    +classpath. The stubs attribute can be a resource pattern (ant-style)
    +or a directory, in which case <code><strong>*/</strong>.json</code> is appended. Example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre>@RunWith(SpringRunner.class)
    +@SpringBootTest
    +@AutoConfigureWireMock(stubs="classpath:/stubs")
    +public class WiremockImportApplicationTests {
    +
    +	@Autowired
    +	private Service service;
    +
    +	@Test
    +	public void contextLoads() throws Exception {
    +		assertThat(this.service.go()).isEqualTo("Hello World!");
    +	}
    +
    +}</pre>
    +</div>
    +</div>
    +</div>
    +<div class="sect2">
    +<h3 id="_alternative_using_junit_rules">Alternative: Using JUnit Rules</h3>
    +<div class="paragraph">
    +<p>For a more conventional WireMock experience, using JUnit <code>@Rules</code> to
    +start and stop the server, just use the <code>WireMockSpring</code> convenience
    +class to obtain an <code>Options</code> instance:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringRunner.class)
    +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    +@AutoConfigureWireMock
    +public class WiremockForDocsClassRuleTests {
    +
    +	// Start WireMock on some dynamic port
    +	@ClassRule
    +	public static WireMockClassRule wiremock = new WireMockClassRule(
    +			WireMockSpring.options().dynamicPort());
    +	// A service that calls out over HTTP to localhost:${wiremock.port}
    +	@Autowired
    +	private Service service;
    +
    +	// Using the WireMock APIs in the normal way:
    +	@Test
    +	public void contextLoads() throws Exception {
    +		// Stubbing WireMock
    +		wiremock.stubFor(get(urlEqualTo("/resource"))
    +				.willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!")));
    +		// We're asserting if WireMock responded properly
    +		assertThat(this.service.go()).isEqualTo("Hello World!");
    +	}
    +
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The use <code>@ClassRule</code> means that the server will shut down after all the methods in this class.</p>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="_wiremock_and_spring_mvc_mocks">WireMock and Spring MVC Mocks</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p>Spring Cloud Contract provides a convenience class that can load JSON WireMock stubs into a
    +Spring <code>MockRestServiceServer</code>. Here&#8217;s an example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringRunner.class)
    +@SpringBootTest(webEnvironment = WebEnvironment.NONE)
    +public class WiremockForDocsMockServerApplicationTests {
    +
    +	@Autowired
    +	private RestTemplate restTemplate;
    +
    +	@Autowired
    +	private Service service;
    +
    +	@Test
    +	public void contextLoads() throws Exception {
    +		// will read stubs classpath
    +		MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate)
    +				.baseUrl("http://example.org").stubs("classpath:/stubs/resource.json");
    +		// We're asserting if WireMock responded properly
    +		assertThat(this.service.go()).isEqualTo("Hello World");
    +		server.verify();
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The <code>baseUrl</code> is prepended to all mock calls, and the <code>stubs()</code>
    +method takes a stub path resource pattern as an argument. So in this
    +example the stub defined at <code>/stubs/resource.json</code> is loaded into the
    +mock server, so if the <code>RestTemplate</code> is asked to visit
    +<code><a href="http://example.org/" class="bare">http://example.org/</a></code> it will get the responses as declared
    +there. More than one stub pattern can be specified, and each one can
    +be a directory (for a recursive list of all ".json"), or a fixed
    +filename (like in the example above) or an ant-style pattern. The JSON
    +format is the normal WireMock format which you can read about in the
    +WireMock website.</p>
    +</div>
    +<div class="paragraph">
    +<p>Currently we support Tomcat, Jetty and Undertow as Spring Boot
    +embedded servers, and Wiremock itself has "native" support for a
    +particular version of Jetty (currently 9.2). To use the native Jetty
    +you need to add the native wiremock dependencies and exclude the
    +Spring Boot container if there is one.</p>
    +</div>
    +</div>
    +</div>
    +<div class="sect1">
    +<h2 id="_generating_stubs_using_restdocs">Generating Stubs using RestDocs</h2>
    +<div class="sectionbody">
    +<div class="paragraph">
    +<p><a href="https://projects.spring.io/spring-restdocs">Spring RestDocs</a> can be
    +used to generate documentation (e.g. in asciidoctor format) for an
    +HTTP API with Spring MockMvc or RestEasy. At the same time as you
    +generate documentation for your API, you can also generate WireMock
    +stubs, by using Spring Cloud Contract WireMock. Just write your normal
    +RestDocs test cases and use <code>@AutoConfigureRestDocs</code> to have stubs
    +automatically in the restdocs output directory. For example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringRunner.class)
    +@SpringBootTest
    +@AutoConfigureRestDocs(outputDir = "target/snippets")
    +@AutoConfigureMockMvc
    +public class ApplicationTests {
    +
    +	@Autowired
    +	private MockMvc mockMvc;
    +
    +	@Test
    +	public void contextLoads() throws Exception {
    +		mockMvc.perform(get("/resource"))
    +				.andExpect(content().string("Hello World"))
    +				.andDo(document("resource"));
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>From this test will be generated a WireMock stub at
    +"target/snippets/stubs/resource.json". It matches all GET requests to
    +the "/resource" path.</p>
    +</div>
    +<div class="paragraph">
    +<p>Without any additional configuration this will create a stub with a
    +request matcher for the HTTP method and all headers except "host" and
    +"content-length". To match the request more precisely, for example to
    +match the body of a POST or PUT, we need to explicitly create a
    +request matcher. This will do two things: 1) create a stub that only
    +matches the way you specify, 2) assert that the request in the test
    +case also matches the same conditions.</p>
    +</div>
    +<div class="paragraph">
    +<p>The main entry point for this is <code>WireMockRestDocs.verify()</code> which can
    +be used as a substitute for the <code>document()</code> convenience method. For
    +example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@RunWith(SpringRunner.class)
    +@SpringBootTest
    +@AutoConfigureRestDocs(outputDir = "target/snippets")
    +@AutoConfigureMockMvc
    +public class ApplicationTests {
    +
    +	@Autowired
    +	private MockMvc mockMvc;
    +
    +	@Test
    +	public void contextLoads() throws Exception {
    +		mockMvc.perform(post("/resource")
    +                .content("{\"id\":\"123456\",\"message\":\"Hello World\"}"))
    +				.andExpect(status.isOk())
    +				.andDo(verify().jsonPath("$.id")
    +                        .stub("resource"));
    +	}
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>So this contract is saying: any valid POST with an "id" field will get
    +back an the same response as in this test. You can chain together
    +calls to <code>.jsonPath()</code> to add additional matchers. The
    +<a href="https://github.com/jayway/JsonPath">JayWay documentation</a> can help you
    +to get up to speed with JSON Path if it is unfamiliar to you.</p>
    +</div>
    +<div class="paragraph">
    +<p>Instead of the <code>jsonPath</code> and <code>contentType</code> convenience methods, you
    +can also use the WireMock APIs to verify the request matches the
    +created stub. Example:</p>
    +</div>
    +<div class="listingblock">
    +<div class="content">
    +<pre class="highlight"><code class="language-java" data-lang="java">@Test
    +public void contextLoads() throws Exception {
    +	mockMvc.perform(post("/resource")
    +               .content("{\"id\":\"123456\",\"message\":\"Hello World\"}"))
    +			.andExpect(status.isOk())
    +			.andDo(verify()
    +					.wiremock(WireMock.post(
    +						urlPathEquals("/resource"))
    +						.withRequestBody(matchingJsonPath("$.id"))
    +                       .stub("post-resource"));
    +}</code></pre>
    +</div>
    +</div>
    +<div class="paragraph">
    +<p>The WireMock API is rich - you can match headers, query parameters,
    +and request body by regex as well as by json path - so this can useful
    +to create stubs with a wider range of parameters. The above example
    +will generate a stub something like this:</p>
    +</div>
    +<div class="listingblock">
    +<div class="title">post-resource.json</div>
    +<div class="content">
    +<pre class="highlight"><code class="language-json" data-lang="json">{
    +  "request" : {
    +    "url" : "/resource",
    +    "method" : "POST",
    +    "bodyPatterns" : [ {
    +      "matchesJsonPath" : "$.id"
    +    }]
    +  },
    +  "response" : {
    +    "status" : 200,
    +    "body" : "Hello World",
    +    "headers" : {
    +      "X-Application-Context" : "application:-1",
    +      "Content-Type" : "text/plain"
    +    }
    +  }
    +}</code></pre>
    +</div>
    +</div>
    +<div class="admonitionblock note">
    +<table>
    +<tr>
    +<td class="icon">
    +<div class="title">Note</div>
    +</td>
    +<td class="content">
    +You can use either the <code>wiremock()</code> method or the <code>jsonPath()</code>
    +and <code>contentType()</code> methods to create request matchers, but not both.
    +</td>
    +</tr>
    +</table>
    +</div>
    +<div class="paragraph">
    +<p>On the consumer side, assuming the <code>resource.json</code> generated above is
    +available on the classpath, you can create a stub using WireMock in a
    +number of different ways, including as described above using
    +<code>@AutoConfigureWireMock(stubs="classpath:resource.json")</code>.</p>
    +</div>
    +</div>
    +</div>
    +</div>
    +<div id="footer">
    +<div id="footer-text">
    +Last updated 2016-07-21 16:18:40 UTC
    +</div>
    +</div>
    +</body>
    +</html>
    \ No newline at end of file