ZGlmZiAtLWdpdCBhL0RldGFpbGVkX1Rlc3RpbmdfTWV0aG9kb2xvZ3kudHh0IGIvRGV0YWlsZWRfVGVzdGluZ19NZXRob2RvbG9neS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJjOTRlMgotLS0gL2Rldi9udWxsCisrKyBiL0RldGFpbGVkX1Rlc3RpbmdfTWV0aG9kb2xvZ3kudHh0CkBAIC0wLDAgKzEsOTgxIEBACisJCQkJCQkqKioqKioqKioqKiAgQ29uZm9ybWFuY2UgVGVzdC1zdWl0ZSAgICoqKioqKioqKioqKioqKioKKwkJCQkJCU9GLVN3aXRjaC0xLjAuMC1UZXN0Q2FzZXMgZGV0YWlsZWQgdGVzdGluZyBtZXRob2RvbG9neQorCisKKworCisKKyoqKiogICAgIE9wZW5mbG93IHByb3RvY29sIG1lc3NhZ2VzICAgICAqKioqCisKKworCisxLiBGZWF0dXJlcyBSZXF1ZXN0CisKK1Rlc3QgRGVzY3JpcHRpb246IENoZWNrIGZlYXR1cmVzIHJlcXVlc3QgaXMgaW1wbGVtZW50ZWQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6IEZlYXR1cmVzUmVxdWVzdAorUG9ydHM6IEkgKENvbnRyb2wgUGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIFNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOiAKKworYSkgU2VuZCBPRlBUX0ZFQVRVUkVTX1JFUVVFU1QgZnJvbSBjb250cm9sbGVyLgorYikgVmVyaWZ5IE9GUFRfRkVBVFVSRVNfUkVQTFkgaXMgcmVjZWl2ZWQgd2l0aG91dCBlcnJvcnMKKworCisKKzIuIENvbmZpZ3VyYXRpb24gcmVxdWVzdAorCitUZXN0IERlc2NyaXB0aW9uOiBDaGVjayBiYXNpYyBnZXQgY29uZmlndXJhdGlvbiByZXF1ZXN0IGlzIGltcGxlbWVudGVkCisKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiBDb25maWd1cmF0aW9uUmVxdWVzdAorUG9ydHM6IEkgKENvbnRyb2wgUGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIFNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBTZW5kIE9GUFRfR0VUX0NPTkZJR19SRVFVRVNUCitiKSBWZXJpZnkgT0ZQVF9HRVRfQ09ORklHX1JFUExZIGlzIHJlY2VpdmVkIHdpdGhvdXQgZXJyb3JzLgorCisKKworMy4gTW9kaWZ5IFN0YXRlIChBREQpCisKK1Rlc3QgRGVzY3JpcHRpb246IENoZWNrIGJhc2ljIEZsb3cgQUREIHJlcXVlc3QgaXMgaW1wbGVtZW50ZWQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6IE1vZGlmeVN0YXRlQWRkCitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgZGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBTZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdCBOb3RlczoKKworYSkgU2VuZCBPRlBUX0ZMT1dfTU9ELCBjb21tYW5kID0gT0ZQRkNfQUREIAorYikgU2VuZCBvZnBfdGFibGVfc3RhdHMgcmVxdWVzdCAKK2MpIFZlcmlmeSB0aGF0IGFjdGl2ZV9jb3VudD0xIGluIHRoZSByZXBseQorCisKKworCis0LiBNb2RpZnkgU3RhdGUgKERFTEVURSkKKworVGVzdCBEZXNjcmlwdGlvbjogQ2hlY2sgYmFzaWMgRmxvdyBEZWxldGUgcmVxdWVzdCBpcyBpbXBsZW1lbnRlZAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogTW9kaWZ5U3RhdGVEZWxldGUKK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgMiBkYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIFNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBTZW5kIE9GUFRfRkxPV19NT0QsIGNvbW1hbmQgPSBPRlBGQ19BREQgCitiKSBTZW5kIG9mcF90YWJsZV9zdGF0cyByZXF1ZXN0CitjKSBWZXJpZnkgdGhhdCBhY3RpdmVfY291bnQ9MSBpbiB0aGUgcmVwbHkKK2QpIFNlbmQgT0ZQVF9GTE9XX01PRCwgY29tbWFuZCA9IE9GUEZDX0RFTEVURQorZSkgU2VuZCBvZnBfdGFibGVfc3RhdHMgcmVxdWVzdAorZikgIFZlcmlmeSBhY3RpdmUgX2NvdW50PTAgaW4gdGhlIHJlcGx5CisKKworCis1LiBNb2RpZnkgU3RhdGUgKE1PRElGWSkKKworVGVzdCBEZXNjcmlwdGlvbjogQ2hlY2sgYmFzaWMgRmxvdyBNb2RpZnkgcmVxdWVzdCBpcyBpbXBsZW1lbnRlZAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogTW9kaWZ5U3RhdGVNb2RpZnkKK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgYW5kIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBTZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdCBOb3RlczoKKworYSkgU2VuZCAgT0ZQVF9GTE9XX01PRCAsIGNvbW1hbmQgPSBPRlBGQ19BREQsIGFjdGlvbiBBCitiKSBTZW5kIG9mcF90YWJsZV9zdGF0cyByZXF1ZXN0LCBWZXJpZnkgIGFjdGl2ZV9jb3VudD0xCitjKSBTZW5kIE9GUFRfRkxPV19NT0QgLCBjb21tYW5kID0gT0ZQRkNfTU9ESUZZLCBhY3Rpb24gQZIKK2QpIFNlbmQgVGVzdCBQYWNrZXQgIG1hdGNoaW5nIHRoZSBmbG93CitlKSBWZXJpZnkgcGFja2V0IGltcGxlbWVudHMgYWN0aW9uIEGSCisKKworCis2LiBSZWFkIFN0YXRlCisKK1Rlc3QgRGVzY3JpcHRpb246IENoZWNrIGJhc2ljIFJlYWQgU3RhdGUgaXMgaW1wbGVtZW50ZWQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6IFJlYWRTdGF0ZQorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSwgMiBkYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIFNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBTZW5kICBPRlBUX0ZMT1dfTU9ELCBjb21tYW5kID0gT0ZQRkNfQURECitiKSBDcmVhdGUgYSBPRlBDX0ZMT1dfU1RBVFMgbWVzc2FnZSBhbmQgc2VuZCBpdAorYykgVmVyaWZ5IHN3aXRjaCByZXBsaWVzIHdpdGhvdXQgZXJyb3JzCisKKworCis3LiBTZW5kIHBhY2tldAorCitUZXN0IERlc2NyaXB0aW9uOiBDaGVjayBiYXNpYyBTZW5kLVBhY2tldCBpcyBpbXBsZW1lbnRlZC4gCisJCSAgU2VuZC1QYWNrZXQ6IFRoZXNlIGFyZSB1c2VkIGJ5IHRoZSBjb250cm9sbGVyIHRvIHNlbmQgcGFja2V0cyBvdXQgb2YgYSBzcGVjaWZpZWQgcG9ydCBvbiB0aGUgc3dpdGNoLgorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIFNlbmRQYWNrZXQKK1BvcnRzOiA1ICgxIENvbnRyb2wgUGxhbmUsIDQgRGF0YXBsYW5lKSAKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gU2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIFNlbmQgT0ZQVF9QQUNLRVRfT1VUIG91dCBtZXNzYWdlIGZyb20gY29udHJvbGxlciB0byBzd2l0Y2ggZm9yIGV2ZXJ5IGRhdGFwbGFuZSBwb3J0LgorYikgVmVyaWZ5IHRoZSBwYWNrZXQgYXBwZWFycyBvbiB0aGUgZWFjaCBkYXRhcGxhbmUgcG9ydAorYykgVmVyaWZ5IHNlbnQgcGFja2V0IG1hdGNoZXMgdGhlIHJlY2VpdmVkIHBhY2tldAorCisKKworOC4gQmFycmllciBSZXF1ZXN0IAorCitUZXN0IERlc2NyaXB0aW9uOiBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSBiYXNpYyBiYXJyaWVyIHJlcXVlc3QgZG9lcyBub3QgZ2VuZXJhdGUgYW4gZXJyb3IuCisKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiBCYXJyaWVyUmVxdWVzdFJlcGx5CitQb3J0czogSSAoQ29udHJvbCBQbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gU2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIFNlbmQgT0ZQVF9CQVJSSUVSX1JFUVVFU1QKK2MpIFZlcmlmeSBPRlBUX0JBUlJJRVJfUkVQTFkgaXMgcmVjZWl2ZWQgb24gdGhlIGNvbnRyb2wgcGxhbmUuCisKKworCis5LiBQYWNrZXQgSW4KKworVGVzdCBEZXNjcmlwdGlvbjogQ2hlY2sgcGFja2V0X2luIGlzIGltcGxlbWVudGVkLiBUaGlzIHRlc3QganVzdCBjaGVja3MgdGhhdCBub24gbWF0Y2hlZCBkYXRhcGxhbmUgcGFja2V0cyAKKwkJICBnZW5lcmF0ZSBhIHBhY2tldF9pbgorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogUGFja2V0SW4KK1BvcnRzOiAyICgxIENvbnRyb2wgUGxhbmUgYW5kIDEgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBTZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdCBOb3RlczoKKworYSkgU2VuZCBhIHBhY2tldCB0byBkYXRhcGxhbmUgcG9ydCAsIHdpdGhvdXQgaW5zZXJ0aW5nIGEgZmxvdyBlbnRyeQorYikgVmVyaWZ5IGEgT0ZQVF9QQUNLRVRfSU4gaXMgZ2VuZXJhdGVkIG9uIHRoZSBjb250cm9sIHBsYW5lCisKKworCisxMC4gSGVsbG8KKworVGVzdCBEZXNjcmlwdGlvbjogVGhpcyB0ZXN0IGNoZWNrcyBmb3IgYmFzaWMgSGVsbG8gbWVzc2FnZSBnZW5lcmF0aW9uIHdpdGggY29ycmVjdCB2ZXJzaW9uIGZpZWxkLgorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIEhlbGxvCitQb3J0czogMSAoQ29udHJvbCBQbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gU2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIFNlbmQgIE9GUFRfSEVMTE8gZnJvbSBjb250cm9sbGVyIHRvIHN3aXRjaAorYikgVmVyaWZ5IHN3aXRjaCBhbHNvIHNlbmRzIE9GUFRfSEVMTE8gbWVzc2FnZSBpbiByZXNwb25zZSAKK2MpIFZlcmlmeSB2ZXJzaW9uIGZpZWxkIGluIHRoZSBoZWxsbyBtZXNzYWdlIGlzIHNldCB0byBPcGVuZmxvdyB2ZXJzaW9uIDEuMC4wCisKKworCisxMS4gRWNobworCitUZXN0IERlc2NyaXB0aW9uOiBUaGlzIHRlc3QgY2hlY2tzIGZvciBiYXNpYyBFY2hvIFJlcGx5IG1lc3NhZ2UgZ2VuZXJhdGlvbiB3aXRoIGNvcnJlY3QgdmVyc2lvbiBmaWVsZCB3aXRoIAorCQkgIHNhbWUgdHJhbnNhY3Rpb24gaWQuCisKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiAgRWNob1dpdGhvdXRCb2R5CitQb3J0czogMSAoQ29udHJvbCBQbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIFNlbmQgT0ZQVF9FQ0hPX1JFUVVFU1QgZnJvbSB0aGUgY29udHJvbGxlciBzaWRlLgorYikgVmVyaWZ5IHN3aXRjaCByZXNwb25kcyBiYWNrIHdpdGggT0ZQVF9FQ0hPX1JFUExZIHdpdGggc2FtZSB4aWQuCitjKSBWZXJpZnkgT3BlbmZsb3cgdmVyc2lvbiBpbiBoZWFkZXIgaXMgc2V0IHRvIE9wZW5mbG93IHZlcnNpb24gMS4wLjAuCisKKworCisKKworKioqKiAgICAgRGV0YWlsZWQgY29udHJvbGxlciB0byBzd2l0Y2ggbWVzc2FnZXMgICAgICoqKioKKworCisKKzEuIE92ZXJsYXAgY2hlY2tpbmcKKworVGVzdCBEZXNjcmlwdGlvbjogVmVyaWZ5IHRoYXQgaWYgb3ZlcmxhcCBjaGVjayBmbGFnIGlzIHNldCBpbiB0aGUgZmxvdyBlbnRyeSBhbmQgYW4gb3ZlcmxhcHBpbmcgZmxvdyBpcyAKKwkJICBpbnNlcnRlZCB0aGVuIGFuIGVycm9yIGlzIGdlbmVyYXRlZCBhbmQgc3dpdGNoIHJlZnVzZXMgZmxvdyBlbnRyeQorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIE92ZXJsYXBDaGVja2luZworUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIGRhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QtTm90ZXM6CisKK2EpIEdlbmVyYXRlIEZsb3cgRjEtLT4gV2lsZGNhcmQgQWxsIAorYikgU2VuZCBvZnBfdGFibGVfc3RhdHMgcmVxdWVzdCAsIHZlcmlmeSBhY3RpdmVfY291bnQ9MQorYykgR2VuZXJhdGUgb3ZlcmxhcHBpbmcgZmxvdyBGMiAtLT4gV2lsZGNhcmQgQWxsIEV4Y2VwdCBJbmdyZXNzIFBvcnQgKCB3aXRoIGZsYWcgT0ZQRkZfQ0hFQ0tfT1ZFUkxBUCBzZXQpCitkKSBWZXJpZnkgdGhhdCBzd2l0Y2ggZ2VuZXJhdGVzIE9GUFRfRVJST1IgbXNnLiAgCisgICBUeXBlOiBPRlBFVF9GTE9XX01PRF9GQUlMRUQgY29kZSA6IE9GUEZNRkNfT1ZFUkxBUCAKKworCisKKzIuIE5vIG92ZXJsYXAgY2hlY2tpbmcKKworVGVzdCBEZXNjcmlwdGlvbjogVmVyaWZ5IHRoYXQgd2l0aG91dCBvdmVybGFwIGNoZWNrIGZsYWcgc2V0LCBvdmVybGFwcGluZyBmbG93cyBjYW4gYmUgY3JlYXRlZC4KKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBOb092ZXJsYXBjaGVja2luZworUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSwgMiBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIHNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBHZW5lcmF0ZSBGbG93IEYxLS0+IFdpbGRjYXJkIEFsbC4KK2IpIFNlbmQgb2ZwX3RhYmxlX3N0YXRzIHJlcXVlc3QgLCB2ZXJpZnkgYWN0aXZlX2NvdW50PTEKK2UpIEdlbmVyYXRlIG92ZXJsYXBwaW5nIGZsb3cgRjIgLS0+IFdpbGRjYXJkIEFsbCBFeGNlcHQgSW5ncmVzcyBQb3J0ICggd2l0aG91dCBmbGFnIE9GUEZGX0NIRUNLX09WRVJMQVAgc2V0KQorYykgU2VuZCBhIG9mcF90YWJsZV9zdGF0cyByZXF1ZXN0LCB2ZXJpZnkgYWN0aXZlX2NvdW50PTIKKworCisKKzMuIElkZW50aWNhbCBmbG93cyAKKworVGVzdCBEZXNjcmlwdGlvbjogVmVyaWZ5IHRoYXQgYWRkaW5nIHR3byBpZGVudGljYWwgZmxvd3Mgb3ZlcndyaXRlcyB0aGUgZXhpc3Rpbmcgb25lIGFuZCBjbGVhcnMgY291bnRlcnMKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBJZGVudGljYWxGbG93cworUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSksICgyIGRhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIEdlbmVyYXRlIEZsb3cgRjEuCitiKSBTZW5kIG9mcF90YWJsZV9zdGF0cyByZXF1ZXN0ICwgdmVyaWZ5IGFjdGl2ZV9jb3VudD0xCitiKSBJbmNyZW1lbnQgY291bnRlcnMgKHBhY2tldF9jb3VudCwgYnl0ZV9jb3VudCkgYnkgc2VuZGluZyBhIHBhY2tldCBtYXRjaGluZyBmbG93IEYxLgorQykgU2VuZCBvZnBfZmxvd19zdGF0cyByZXF1ZXN0LiBWZXJpZnkgZmxvdyBjb3VudGVyczogYnl0ZV9jb3VudCBhbmQgcGFja2V0X2NvdW50IAorYykgQ3JlYXRlIGlkZW50aWNhbCBmbG93IEYyCitkKSBTZW5kIGEgb2ZwX3RhYmxlX3N0YXRzIHJlcXVlc3QsIHZlcmlmeSBhY3RpdmVfY291bnQ9MQorZSkgU2VuZCBvZnBfZmxvd19zdGF0cyByZXF1ZXN0LiBWZXJpZnkgZmxvdyBjb3VudGVyczogYnl0ZV9jb3VudCBhbmQgcGFja2V0X2NvdW50IGFyZSByZXNldAorCisKKworNC4gTm8gdGFibGUgdG8gYWRkIChXcml0dGVuIGluIG9mdGVzdJdOZWVkIHRvIGFkZCB0byBjb25mb3JtYW5jZSBUZXN0LVN1aXRlcykKKworCisKKzUuIE5ldmVyIHZhbGlkIHBvcnQgKFRCRCkKKworCisKKworNi4gQ3VycmVudGx5IG5vdCBleGlzdGluZyBwb3J0IFZlcnNpb24gQSBhbmQgQiAoVEJEKQorCisKKworCis3LiBFbWVyZ2VuY3kgZmxvdyB3aXRoIHRpbWVvdXQgdmFsdWVzIAorCitUZXN0IERlc2NyaXB0aW9uOiBUaW1lb3V0IHZhbHVlcyBhcmUgbm90IGFsbG93ZWQgZm9yIGVtZXJnZW5jeSBmbG93cworCitUZXN0IFRpdGxlOiBFbWVyRmxvd1RpbWVvdXQKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitQb3J0czogMyAoMSBjb250cm9sIHBsYW5lLCAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAgCisKKworVGVzdCBOb3RlczoKKworYSkgIEdlbmVyYXRlIGEgZmxvdyBGIHdpdGggT0ZQRkZfRU1FUkcgc2V0IGluIGZsYWcgYW5kIHRpbWVvdXQgdmFsdWVzIGFzc2lnbmVkLgorYikgIFZlcmlmeSBzd2l0Y2ggZ2VuZXJhdGVzIGFuIE9GUFRfRVJST1IgbXNnLCBUeXBlOiBPRlBFVF9GTE9XX01PRF9GQUlMRUQsIENvZGUgT0ZQRk1GQ19CQURfRU1FUkdfVElNRU9VVAorCisKKworOC4gTWlzc2luZyBtb2RpZnkgYWRkcworCitUZXN0IERlc2NyaXB0aW9uOiBJZiBhIG1vZGlmeSBkb2VzIG5vdCBtYXRjaCBhbiBleGlzdGluZyBmbG93LCB0aGUgZmxvdyBnZXRzIGFkZGVkLgorCitUaXRsZTogTWlzc2luZ01vZGlmeUFkZAorVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1BvcnRzOjMgKDEgY29udHJvbCBwbGFuZSwyIERhdGEgUGxhbmUpCitJbml0aWFsIFN0YXRlOiBDb25uZWN0aW9uIHNldHVwLCBDbGVhciBTd2l0Y2ggU3RhdGUKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIEdlbmVyYXRlIGEgZmxvdy1tb2QgLCBjb21tYW5kIE9GUENfTU9ESUZZIChOb3RlOiBUaGVyZSBzaG91bGQgYmUgbm8gZmxvd3MgbWF0Y2hpbmcgdGhpcyBmbG93X21vZCBtb2RpZnkgY29tbWFuZCkKK2IpIFNlbmQgYSBvZnBfdGFibGVfc3RhdHMgcmVxdWVzdCwgdmVyaWZ5IGFjdGl2ZV9jb3VudD0xCisKKworCisKKzkuIE1vZGlmeSBjaGFuZ2VzIGFjdGlvbiwgcHJlc2VydmVzIGNvdW50ZXJzCisKK1Rlc3QgRGVzY3JpcHRpb246IEEgbW9kaWZpZWQgZmxvdyBwcmVzZXJ2ZXMgY291bnRlcnMKKworVGl0bGU6IE1vZGlmeUFjdGlvbgorVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1BvcnRzOiA0KDEgY29udHJvbCBwbGFuZSwgMyBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBDb25uZWN0aW9uIHNldHVwLCBDbGVhciBTd2l0Y2ggU3RhdGUKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIENyZWF0ZSBhIGZsb3dfbW9kIEYtMSB3aXRoIGNvbW1hbmQgT0ZQQ19BREQsIGFjdGlvbiBBCitiKSBTZW5kIGEgdGVzdCBQYWNrZXQgbWF0Y2hpbmcgdGhlIGZsb3cKK2MpIFNlbmQgYW4gb2ZwX2Zsb3dfc3RhdHMgcmVxdWVzdCwgdmVyaWZ5IGJ5dGVfY291bnQgYW5kIHBhY2tldF9jb3VudAorZSkgQ3JlYXRlIGZsb3dfbW9kIHdpdGggY29tbWFuZCBPRlBDX01PRElGWSAsYWN0aW9uIEGSIGFuZCBtb2RpZnkgYWN0aW9uIG9mIGZsb3cgRi0xCitmKSBTZW5kIGEgb2ZwX2Zsb3dfc3RhdHMgcmVxdWVzdCwgdmVyaWZ5IGZsb3cgY291bnRlcnMgYXJlIHByZXNlcnZlZAorZykgU2VuZCB0ZXN0IHBhY2tldCwgdmVyaWZ5IGl0IGltcGxlbWVudHMgYWN0aW9uIEGSCisKKworCisxMC4gU3RyaWN0IE1vZGlmeSBjaGFuZ2VzIGFjdGlvbiwgcHJlc2VydmVzIGNvdW50ZXJzCisKK1Rlc3QgRGVzY3JpcHRpb246IFN0cmljdCBNb2RpZnkgRmxvdyBhbHNvIGNoYW5nZXMgYWN0aW9uIHByZXNlcnZlcyBjb3VudGVycworCitUaXRsZTogU3RyaWN0TW9kaWZ5QWN0aW9uCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorUG9ydHM6IDQoMSBjb250cm9sIHBsYW5lLCAzIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IENvbm5lY3Rpb24gc2V0dXAsIENsZWFyIFN3aXRjaCBTdGF0ZQorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdCBOb3RlczoKKworYSkgQ3JlYXRlIHR3byBvdmVybGFwcGluZyBmbG93czogRiAtLT4gTWF0Y2ggb24gYWxsLCBleGNlcHQgb25lIHdpbGRjYXJkZWQgKHNyYyBhZGRyZXNzKS4gQWN0aW9uIEEuIFByaW9yaXR5PTEwMCAKKyAgIEaSIC0tPiBNYXRjaCBvbiBpbmdyZXNzX3BvcnQgPSBwb3J0IFswXSwgd2lsZGNhcmRlZCByZXN0LiBBY3Rpb24gQS4gUHJpb3JpdHk9MTAKK2IpIFNlbmQgYSBvZnBfdGFibGVfc3RhdHMgcmVxdWVzdCwgdmVyaWZ5IGFjdGl2ZV9jb3VudD0yCitjKSBTZW5kIFBhY2tldCAoaXQgd291bGQgaGF2ZSBtYXRjaGVkIGJvdGggdGhlIGZsb3dzLCBzaW5jZSB0aGV5IGFyZSBvdmVybGFwcGluZyBmbG93cyBidXQgaXQgd291bGQgbWF0Y2ggRmxvdy1GMSBhcyBpdCBoYXMgaGlnaGVyIHByaW9yaXR5LikKK2QpIFNlbmQgb2ZwX2Zsb3dfc3RhdHMgcmVxdWVzdCBmb3IgRmxvdy0xIGFuZCB2ZXJpZnkgY291bnRlcnMgcGFja2V0X2NvdW50IGFuZCBieXRlX2NvdW50IAorZSkgQ3JlYXRlIGZsb3dfbW9kICxjb21tYW5kIE9GUENfU1RSSUNUX01PRElGWSxtYXRjaCBvbiBhbGwgZXhjZXB0IHNyYyBhZGRyZXNzICxwcmlvcml0eSAxMDAgYWN0aW9uIEGSCitmKSBTZW5kIHRlc3QgcGFja2V0ICwgdmVyaWZ5IGFjdGlvbiBpcyBtb2RpZmllZAorZykgU2VuZCBvZnBfZmxvd19zdGF0cyByZXF1ZXN0LCB2ZXJpZnkgY291bnRlcnMgYXJlIHByZXNlcnZlZC4KKworCisKKworMTEuIERlbGV0ZSBub24gZXhpc3RpbmcgZmxvdyAKKworVGVzdCBEZXNjcmlwdGlvbjogUmVxdWVzdCBkZWxldGlvbiBvZiBub24tZXhpc3RpbmcgZmxvdworCitUaXRsZTogRGVsZXRlTm9uZXhpc3RpbmdGbG93CitUZXN0IG1vZGU6IEF1dG9tYXRlZAorUG9ydHM6IDEoMSBjb250cm9sIHBsYW5lKQorSW5pdGlhbCBTdGF0ZTogQ29ubmVjdGlvbiBzZXR1cCwgQ2xlYXIgU3dpdGNoIFN0YXRlCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBJc3N1ZSBhIGRlbGV0ZSBjb21tYW5kLCB3aXRoIG5vIGZsb3dzIGluc2VydGVkCitiKSBNYWtlIHN1cmUgbm8gZXJyb3IgaXMgZ2VuZXJhdGVkIG9uIHRoZSBjb250cm9sIHBsYW5lCisKKworCisxMi4gRGVsZXRlIGZsb3dzIHdpdGggYW5kIHdpdGhvdXQgcmVtb3ZlZCBtZXNzYWdlCisKK1Rlc3QgRGVzY3JpcHRpb246IENoZWNrIGRlbGV0aW9uIG9mIGZsb3dzIGhhcHBlbnMgYW5kIGdlbmVyYXRlcyBtZXNzYWdlcyBhcyBjb25maWd1cmVkLiBpLmUuIGlmIJFTZW5kIEZsb3cgcmVtb3ZlZCBtZXNzYWdlkkZsYWcgCisJICAgICAgICAgIGlzIHNldCBpbiB0aGUgZmxvdyBlbnRyeSwgdGhlIGZsb3cgZGVsZXRpb24gb2YgdGhhdCByZXNwZWN0aXZlIGZsb3cgc2hvdWxkIGdlbmVyYXRlIHRoZSBmbG93IHJlbW92ZWQgbWVzc2FnZSwgCisJCSAgdmljZSB2ZXJzYSBhbHNvIGV4aXN0cyAKKworVGVzdCBUaXRsZTogU2VuZEZsb3dSZW0KK1Rlc3QgbW9kZTogQXV0b21hdGVkCitQb3J0czogMyAoMSBjb250cm9sIHBsYW5lLCAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IENvbm5lY3Rpb24gc2V0dXAsIERlZmF1bHQgKGNsZWFyIHN3aXRjaCBzdGF0ZSkKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QgTm90ZXM6CisKK2EpIEdlbmVyYXRlIGEgZmxvdyBGIHdpdGhvdXQgT0ZQRkZfU0VORF9GTE9XX1JFTSBmbGFnIHNldAorYikgSXNzdWUgYSBkZWxldGUgY29tbWFuZCBPRlBGQ19ERUxFVEUKK2MpIFZlcmlmeSB0aGF0IE9GUFRfRkxPV19SRU1PVkVEIG1lc3NhZ2UgaXMgbm90IGdlbmVyYXRlZC4KK2MpIEdlbmVyYXRlIGEgZmxvdyBGkiB3aXRoIE9GUEZGX1NFTkRfRkxPV19SRU0gZmxhZyBzZXQKK2QpIElzc3VlIGEgZGVsZXRlIGNvbW1hbmQgT0ZQRkNfREVMRVRFCitlKSBWZXJpZnkgdGhhdCBPRlBUX0ZMT1dfUkVNT1ZFRCBtZXNzYWdlIGlzIGdlbmVyYXRlZAorCisKKworMTMuIERlbGV0ZSBlbWVyZ2VuY3kgZmxvdyAKKworVGVzdCBEZXNjcmlwdGlvbjogRGVsZXRlIGVtZXJnZW5jeSBmbG93IGFuZCB2ZXJpZnkgbm8gbWVzc2FnZSBpcyBnZW5lcmF0ZWQuQW4gZW1lcmdlbmN5IGZsb3cgZGVsZXRpb24gd2lsbCBub3QgZ2VuZXJhdGUgCisJCSAgZmxvdy1yZW1vdmVkIG1lc3NhZ2VzIGV2ZW4gaWYgkVNlbmQgRmxvdyByZW1vdmVkIG1lc3NhZ2WSIGZsYWcgd2FzIHNldCBkdXJpbmcgdGhlIGVtZXJnZW5jeSBmbG93IGVudHJ5LgorCQkgIAorCitUaXRsZTogRGVsZXRlRW1lckZsb3cKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitQb3J0czogMyAoMSBjb250cm9sIHBsYW5lLCAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IENvbm5lY3Rpb24gc2V0dXAsIENsZWFyIFN3aXRjaCBTdGF0ZSAoZGVmYXVsdCkgCisKKworVGVzdC1Ob3RlczoKKworYSkgSW5zZXJ0IGEgZmxvdyB3aXRoIE9GUEZGX0VNRVJHIGZsYWcgc2V0LgorYikgRGVsZXRlIHRoZSBhZGRlZCBmbG93IHdpdGggT0ZQRkZfU0VORF9GTE9XX1JFTSBmbGFnIHNldAorYykgVGVzdCBzdWNjZXNzZnVsIGlmIG5vIGZsb3cgcmVtb3ZlZCBtZXNzYWdlIGlzIGdlbmVyYXRlZC4KKworCisKKzE0LiBEZWxldGUgYW5kIHZlcmlmeSBzdHJpY3QgYW5kIG5vbi1zdHJpY3QgCisKK1Rlc3QgRGVzY3JpcHRpb246IERlbGV0ZSBhbmQgdmVyaWZ5IHN0cmljdCBhbmQgbm9uLXN0cmljdCBiZWhhdmlvcnMKKworVGhpcyB0ZXN0IGNvbXBhcmVzIHRoZSBiZWhhdmlvciBvZiBkZWxldGUgc3RyaWN0IGFuZCBub24tc3RyaWN0LgorVGl0bGU6IFN0cmljdFZzTm9uc3RyaWN0CitUZXN0IG1vZGU6IEF1dG9tYXRlZAorUG9ydHM6IDMgKDEgY29udHJvbCBwbGFuZSwgMiBkYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBDb25uZWN0aW9uIHNldHVwLCBDbGVhciBTd2l0Y2ggU3RhdGUKKworCitUZXN0LU5vdGVzOgorCithKSBJbnNlcnQgRmxvdyBGIHdpdGggYW4gZXhhY3QgbWF0Y2guIAorYikgSXNzdWUgTm9uLXN0cmljdCBEZWxldGUgY29tbWFuZCwgdmVyaWZ5IEYgZ2V0cyBkZWxldGVkLiAKK2MpIEluc2VydCBGIHdpdGggYW4gZXhhY3QgTWF0Y2ggCitkKSBJc3N1ZSBTdHJpY3QgRGVsZXRlIENvbW1hbmQsIHZlcmlmeSBGIGdldHMgZGVsZXRlZC4KK2UpIEluc2VydCBGbG93IFQgd2l0aCBtYXRjaCBvbiBhbGwsIGV4Y2VwdCBvbmUgd2lsZGNhcmRlZCAoc2F5IHNyYyBhZGRyZXNzKS4gIAorZikgSW5zZXJ0IGFub3RoZXIgZmxvdyBUJyB3aXRoIG1hdGNoIG9uIGluZ3Jlc3NfcG9ydCwgd2lsZGNhcmRlZCByZXN0LiAgCitnKSBJc3N1ZSBOb24tc3RyaWN0IERlbGV0ZSAoIG1hdGNoIG9uIGluZ3Jlc3NfcG9ydCkuIFZlcmlmeSBUK1QnIGdldHMgZGVsZXRlZC4gCitoKSBJbnNlcnQgVCBhbmQgVCcgYWdhaW4uIElzc3VlIFN0cmljdCBEZWxldGUgKG1hdGNoIG9uIGluZ3Jlc3MgcG9ydCksIHZlcmlmeSBvbmx5IFQnIGdldHMgZGVsZXRlZAoraSkgSW5zZXJ0IFQsIGFkZCBQcmlvcml0eSBQIChzYXkgMTAwKSAKK2opIEluc2VydCBUJyBhZGQgcHJpb3JpdHkgKDIwMCkuIAoraykgSW5zZXJ0IFQnIGFnYWluIGFkZCBwcmlvcml0eSAzMDAgLS0+IFSUCitsKSBJc3N1ZSBOb24tU3RyaWN0IERlbGV0ZSAobWF0Y2ggb24gaW5ncmVzcyBwb3J0KS4gVmVyaWZ5IFQrVJIrVJKSIGdldHMgZGVsZXRlZC4gCittKSBJbnNlcnQgVCwgVJIsIFSSkiBhZ2FpbiwgSXNzdWUgU3RyaWN0IERlbGV0ZSAobWF0Y2ggb24gaW5ncmVzc19wb3J0KSB3aXRoIHByaW9yaXR5ID0gMjAwLiBWZXJpZnkgb25seSBUkiBnZXRzIGRlbGV0ZWQKKworCisKKzE1LiBEZWxldGUgZmxvd3Mgd2l0aCBjb25zdHJhaW50IG91dF9wb3J0CisKK1Rlc3QgRGVzY3JpcHRpb246IERlbGV0ZSBmbG93cyBmaWx0ZXJlZCBieSBhY3Rpb24gb3V0cHV0LkRFTEVURSBhbmQgREVMRVRFIFNUUklDVCBjb21tYW5kcyBjYW4gYmUgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSBvdXRwdXQgcG9ydC4KKwkJICBJZiB0aGUgb3V0X3BvcnQgZmllbGQgY29udGFpbnMgYSB2YWx1ZSBvdGhlciB0aGFuIE9GUFBfTk9ORSwgaXQgaW50cm9kdWNlcyBhIGNvbnN0cmFpbnQgd2hlbiBtYXRjaGluZy4gCisJCSAgVGhpcyBjb25zdHJhaW50IGlzIHRoYXQgdGhlIHJ1bGUgbXVzdCBjb250YWluIGFuIG91dHB1dCBhY3Rpb24gZGlyZWN0ZWQgYXQgdGhhdCBwb3J0LgorCitUaXRsZTogT3V0cG9ydDEKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitQb3J0czogMyAoMSBjb250cm9sIHBsYW5lLCAyIERhdGFwbGFuZXMpCitJbml0aWFsIFN0YXRlOiBDb25uZWN0aW9uIHNldHVwLCBDbGVhciBTd2l0Y2ggU3RhdGUKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisKK1Rlc3QtTm90ZXM6CisKK2EpIEluc2VydCBhIGZsb3cgRiAgd2l0aCBvdXRwdXQgYWN0aW9uID0gcG9ydCB4IAorYikgU2VuZCBhIGRlbGV0ZSBjb21tYW5kIG1hdGNoaW5nIGZsb3cgRiAsYnV0ICBvdXRfcG9ydCA9cG9ydCB5CitjKSBTZW5kIGEgdGFibGVfc3RhdHMgcmVxdWVzdCAsIHZlcmlmeSBubyBmbG93IGdldHMgZGVsZXRlZCBpLmUuIGFjdGl2ZV9jb3VudD0xCitkKSBTZW5kIGEgZGVsZXRlIGNvbW1hbmQgbWF0Y2hpbmcgZmxvdyBGICxvdXRwb3J0ID0gcG9ydCB4CitlKSBTZW5kIGEgdGFibGVfc3RhdHMgcmVxdWVzdCwgdmVyaWZ5IGZsb3cgRiBnZXRzIGRlbGV0ZWQuCisKKworCisxNi4gQWRkLCBtb2RpZnkgZmxvd3Mgd2l0aCBjb25zdHJhaW50IG91dHB1dAorCitUZXN0IERlc2NyaXB0aW9uOiBBZGQsIG1vZGlmeSBmbG93cyB3aXRoIG91dHBvcnQgc2V0LiBUaGlzIGZpZWxkIGlzIGlnbm9yZWQgYnkgQURELCBNT0RJRlksIGFuZCBNT0RJRlkgU1RSSUNUIG1lc3NhZ2VzLgorCitUaXRsZTogT3V0cG9ydDIKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitQb3J0czogNCAoMSBjb250cm9sIHBsYW5lLCAzIERhdGEgcGxhbmVzKQorSW5pdGlhbCBTdGF0ZTogQ29ubmVjdGlvbiBzZXR1cCwgQ2xlYXIgU3dpdGNoIFN0YXRlCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworVGVzdC1Ob3RlczoKKworYSkgSW5zZXJ0IGEgZmxvdyBGIHdpdGggYWN0aW9uIEEgKG91dHB1dCAtLT4gcG9ydCB4KSAsIGJ1dCBvdXRfcG9ydCBmaWVsZCBpbiB0aGUgZmxvdyBtb2Qgc2V0IGFzIHBvcnQgeQorYikgU2VuZCBUYWJsZV9TdGF0c19SZXF1ZXN0LCBWZXJpZnkgRmxvdyBnZXRzIGluc2VydGVkLiAoIEZsb3cgYWRkIGlnbm9yZXMgb3V0X3BvcnQgZmllbGQpCitjKSBNb2RpZnkgdGhlIGFjdGlvbiBpbiBmbG93IEYgLCBhY3Rpb24gQZIgKCBvdXRwdXQgLS0+cG9ydCB6ICksIGJ1dCBvdXRfcG9ydCBmaWVsZCBpbiB0aGUgZmxvdyBtb2Qgc2V0IGFzIHBvcnQgeQorZCkgU2VuZCB0ZXN0IHBhY2tldCBtYXRjaGluZyB0aGUgZmxvdyBGIAorZSkgVmVyaWZ5IHBhY2tldCBpbXBsZW1lbnRzIGFjdGlvbiBBkiAoZmxvdyBtb2RpZnkgaWdub3JlcyBvdXRfcG9ydCBmaWVsZCkKKworCisKKzE3LiBWZXJpZnkgdGhhdCBpZGxlIHRpbWVvdXQgaXMgaW1wbGVtZW50ZWQKKworVGVzdCBEZXNjcmlwdGlvbjogVmVyaWZ5IHRoYXQgaWRsZSB0aW1lb3V0IGlzIGltcGxlbWVudGVkCisKK1RpdGxlOiBJZGxlVGltZW91dAorVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1BvcnRzOiAzICgxIGNvbnRyb2wgcGxhbmUsIDIgRGF0YXBsYW5lcykKK0luaXRpYWwgU3RhdGU6IENvbm5lY3Rpb24gc2V0dXAsIENsZWFyIFN3aXRjaCBTdGF0ZQorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdC1Ob3RlczoKKworYSkgQWRkIGEgZmxvdyB3aXRoIGlkbGUgdGltZW91dCBzZXQgYW5kIHdpdGggT0ZQUF9TRU5EX0ZMT1dfUkVNIGJpdCBzZXQKK2IpIFZlcmlmeSBmbG93IHJlbW92ZWQgbWVzc2FnZSBpcyByZWNlaXZlZC4KK2MpIFZlcmlmeSBmbG93IHJlbW92ZWQgcmVhc29uIHdhcyBpZGxlX3RpbWVvdXQKK2QpIFZlcmlmeSB0aGUgZHVyYXRpb25fc2VjIGZpZWxkIGlzIDEgc2VjIAorCisKKworMTguIFZlcmlmeSB0aGF0IGhhcmQgdGltZW91dCBpcyBpbXBsZW1lbnRlZAorCitUZXN0IERlc2NyaXB0aW9uOiBWZXJpZnkgdGhhdCBoYXJkIHRpbWVvdXQgaXMgaW1wbGVtZW50ZWQKKworVGl0bGU6IEhhcmRUaW1lb3V0CitUZXN0IG1vZGU6IEF1dG9tYXRlZAorUG9ydHM6IDMgKDEgY29udHJvbCBwbGFuZSwgMiBEYXRhcGxhbmVzKQorSW5pdGlhbCBTdGF0ZTogQ29ubmVjdGlvbiBzZXR1cCwgQ2xlYXIgU3dpdGNoIFN0YXRlIAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdC1Ob3RlczoKKworYSkgQWRkIGEgZmxvdyB3aXRoIGhhcmQgdGltZW91dCA9MSBzZXQgYW5kIHdpdGggT0ZQUF9TRU5EX0ZMT1dfUkVNIGJpdCBzZXQKK2IpIFZlcmlmeSBmbG93IHJlbW92ZWQgbWVzc2FnZSBpcyByZWNlaXZlZC4KK2MpIFZlcmlmeSBmbG93IHJlbW92ZWQgcmVhc29uIHdhcyBoYXJkX3RpbWVvdXQKK2QpIFZlcmlmeSB0aGUgZHVyYXRpb25fc2VjIGZpZWxkIGlzIDEgc2VjIAorCisKKworMTkuIFZlcmlmeSB0aGF0IG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQgYXMgZXhwZWN0ZWQKKworVGVzdCBEZXNjcmlwdGlvbjogVmVyaWZ5IHRoYXQgRmxvdyByZW1vdmVkIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQgYXMgZXhwZWN0ZWQKKwkgICAgICAgICAgLyogU2luY2Ugk2Zsb3cgcmVtb3ZlZCBtZXNzYWdlcyBiZWluZyBnZW5lcmF0ZWQgd2hlbiBmbGFnIGlzIHNldJQgaXMgYWxyZWFkeSB0ZXN0ZWQgaW4gdGhlIGFib3ZlIHRlc3RzIAorICAgICAgICAgICAgICAgICAgU28gaGVyZSwgd2UgdGVzdCB0aGUgdmljZS12ZXJzYSBjb25kaXRpb24uKi8KKworVGl0bGU6IEZsb3dUaW1lb3V0CitUZXN0IG1vZGU6IEF1dG9tYXRlZAorUG9ydHM6IDMgKDFjb250cm9sIHBsYW5lLCAxZGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogQ29ubmVjdGlvbiBzZXR1cCwgQ2xlYXIgU3dpdGNoIFN0YXRlIAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKworVGVzdC1Ob3RlczoKKworYSkgIEdlbmVyYXRlIGFuZCBpbnN0YWxsIGEgZmxvdyB3aXRoIGlkbGVfdGltZW91dCA9IDEgc2V0IG5vIE9GUEZGX1NFTkRfRkxPV19SRU0gZmxhZyBzZXQuCitiKSAgVmVyaWZ5IG5vIGZsb3cgcmVtb3ZlZCBtZXNzYWdlIGlzIHJlY2VpdmVkLgorYykgIFNlbmQgdGFibGVfc3RhdHNfcmVxdWVzdCBtZXNzYWdlIGFuZCB2ZXJpZnkgYWN0aXZlX2NvdW50PTAgCisKKworCisKKworKioqICAgQWN0aW9ucyAgICoqKgorCisKKworMS4gTm8gQWN0aW9uIGRyb3BzIHBhY2tldCAKKworVGVzdCBEZXNjcmlwdGlvbjogSWYgbm8gZm9yd2FyZCBhY3Rpb25zIGFyZSBwcmVzZW50LCB0aGUgcGFja2V0IGlzIGRyb3BwZWQuIAorCQkKK1JlcXVpcmVkIEFjdGlvbjogRHJvcC4gCitBIGZsb3ctZW50cnkgd2l0aCBubyBzcGVjaWZpZWQgYWN0aW9uIGluZGljYXRlcyB0aGF0IGFsbCBtYXRjaGluZyBwYWNrZXRzIHNob3VsZCBiZSBkcm9wcGVkLiAKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiAgTm9BY3Rpb24KK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgMiBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIHNldHVwCitUZXN0LUZpZWxkOiBNYW5kYXRvcnkKKworCitUZXN0IE5vdGVzOgorCithKSBTZW5kIEZsb3cgbW9kIG1lc3NhZ2Ugd2l0aG91dCBhbnkgYWN0aW9uIHNwZWNpZmllZAorYikgU2VuZCBOIHBhY2tldHMgbWF0Y2hpbmcgdGhlIGZsb3cgCitjKSBWZXJpZnkgcGFja2V0cyBhcmUgbm90IHJlY2VpdmVkIG9uIGFueSBvZiB0aGUgZGF0YXBsYW5lIHBvcnRzIAorZCkgVmVyaWZ5IHBhY2tldHMgYXJlIG5vdCBldmVuIHNlbnQgdG8gdGhlIGNvbnRyb2xsZXIKKworCisKKzIuICBHZXQgc3VwcG9ydGVkIGFjdGlvbnMgZnJvbSBzd2l0Y2gKKworVGVzdCBEZXNjcmlwdGlvbjogR2V0IHRoZSBzdXBwb3J0ZWQgYWN0aW9ucyBmcm9tIHN3aXRjaCBhbmQgbWFrZSBzYW5pdHkgY2hlY2tzLgorCQkgIC8qV2hlbiBjb25uZWN0aW5nIHRvIHRoZSBjb250cm9sbGVyLCBhIHN3aXRjaCBpbmRpY2F0ZSB3aGljaCBvZiB0aGUgk09wdGlvbmFsIEFjdGlvbnOUIGl0IHN1cHBvcnRzKi8KKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBBbm5vdW5jZW1lbnQKK1BvcnRzOiAxIChDb250cm9sIFBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisgICAgICAgCisKK1Rlc3QgTm90ZXM6IAorCithKSBTZW5kIGZlYXR1cmVzX3JlcXVlc3QgLgorYikgVmVyaWZ5IHJlc3BvbnNlIGlzIE9GUFRfRkVBVFVSRVNfUkVQTFkKK2MpIFZlcmlmeSByZXBseSBoYXMgc3VwcG9ydGVkIGFjdGlvbiBsaXN0IHNwZWNpZmllZAorCisKKworMy4gRm9yd2FyZCBBbGwKKworVGVzdCBEZXNjcmlwdGlvbjogUGFja2V0IGlzIHNlbnQgdG8gYWxsIGRhdGFwbGFuZSBwb3J0cyBleGNlcHQgaW5ncmVzcyBwb3J0IHdoZW4gb3V0cHV0IGFjdGlvbi5wb3J0ID0gT0ZQUF9BTEwKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBGb3J3YXJkQWxsCitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnN0YWxsIGEgZmxvdyB3aXRoIG91dHB1dCBhY3Rpb24ucG9ydCA9IE9GUFBfQUxMLgorYikgVmVyaWZ5IHBhY2tldHMgYXJlIGZvcndhcmRlZCB0byBhbGwgcG9ydHMgZXhjZXB0IGluZ3Jlc3MgcG9ydC4KKworCisKKzQuIEZvcndhcmQgQ29udHJvbGxlciAKKworVGVzdCBEZXNjcmlwdGlvbjogUGFja2V0IGlzIHNlbnQgdG8gY29udHJvbGxlciBvdXRwdXQucG9ydCA9IE9GUFBfQ09OVFJPTExFUgorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIEZvcndhcmRDb250cm9sbGVyCitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uIG91dHB1dCBwb3J0ID0gT0ZQUF9DT05UUk9MTEVSCitiKSBTZW5kIHBhY2tldHMgbWF0Y2hpbmcgdGhlIGZsb3cKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgb24gdGhlIGNvbnRyb2wgcGxhbmUgYXMgYSBwYWNrZXRfaW4gbWVzc2FnZQorCisKKworNS4gRm9yd2FyZCBMb2NhbCAoVEJEIJYgVmVyaWZpY2F0aW9uIG9mIHBhY2tldCBiZWluZyByZWNlaXZlZCBhdCBsb2NhbCBuZXR3b3JraW5nIHN0YWNrKQorCitUZXN0IERlc2NyaXB0aW9uOiBQYWNrZXQgaXMgc2VudCB0byBzd2l0Y2iScyBsb2NhbCBuZXR3b3JraW5nIHN0YWNrIGlmIG91dHB1dC5wb3J0ID0gT0ZQUF9MT0NBTAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIEZvcndhcmRMb2NhbAorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCisgICAgICAgCitUZXN0IE5vdGVzOiAKKworYSkgSW5zZXJ0IGEgZmxvdyB3aXRoIGFjdGlvbiBvdXRwdXQgcG9ydCA9IE9GUFBfTE9DQUwKK2IpIFNlbmQgcGFja2V0cyBtYXRjaGluZyB0aGUgZmxvdworYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBpbiB0aGUgc3dpdGNoknMgbG9jYWwgbmV0d29ya2luZyBzdGFjay4KKworCisKKzYuIEZvcndhcmQgVGFibGUKKworVGVzdCBEZXNjcmlwdGlvbjogUGVyZm9ybSBhY3Rpb25zIGluIGZsb3cgdGFibGUuIE9ubHkgZm9yIHBhY2tldC1vdXQgbWVzc2FnZXMuCisJCSAgLypJZiB0aGUgb3V0cHV0IGFjdGlvbi5wb3J0IGluIHRoZSBwYWNrZXRvdXQgbWVzc2FnZSA9IE9GUC5UQUJMRSwgdGhlbiB0aGUgcGFja2V0IGltcGxlbWVudHMgdGhlIGFjdGlvbiAKKwkJICBzcGVjaWZpZWQgaW4gdGhlIG1hdGNoaW5nIGZsb3cgb2YgdGhlIEZMT1ctVEFCTEUqLworCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIEZvcndhcmRUYWJsZQorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE1hbmRhdG9yeQorCitUZXN0IE5vdGVzOiAKKworYSkgSW5zZXJ0IGEgZmxvdyBGIHdpdGggYWN0aW9uIG91dHB1dC5wb3J0ID0gZWdyZXNzX3BvcnQKK2IpIFNlbmQgYSBPRlBUX1BBQ0tFVF9PVVQgbWVzc2FnZSB3aXRoIG91dCBwb3J0PU9GUFBfVEFCTEUgbWF0Y2hpbmcgZmxvdyBGIAorYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBvbiBlZ3Jlc3NfcG9ydCAoaS5lIHBhY2tldG91dCBtZXNzYWdlIGltcGxlbWVudGVkIHRoZSBhY3Rpb24gc3BlY2lmaWVkIGluIHRoZSBtYXRjaGluZyBmbG93IG9mIHRoZSBUYWJsZSkKKworCisKKzcuIEZvcndhcmQgSW4gUG9ydAorCitUZXN0IERlc2NyaXB0aW9uOiBQYWNrZXQgaXMgc2VudCB0byBpbnB1dCBwb3J0IGlmIG91dHB1dC5wb3J0ID0gT0ZQUF9JTlBPUlQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBGb3J3YXJkSW5wb3J0CitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogTWFuZGF0b3J5CisKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uIG91dHB1dCBwb3J0ID0gT0ZQUF9JTlBPUlQKK2IpIFNlbmQgcGFja2V0cyBtYXRjaGluZyB0aGUgZmxvdworYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBvbiBhbGwgZGF0YXBsYW5lIHBvcnRzIGV4Y2VwdCBmb3IgaW5wdXQgcG9ydAorCisKKworOC4gRm9yd2FyZCBGbG9vZAorCitUZXN0IERlc2NyaXB0aW9uOkZsb29kIHRoZSBwYWNrZXQgYWxvbmcgdGhlIG1pbmltdW0gc3Bhbm5pbmcgdHJlZSwgbm90IGluY2x1ZGluZyB0aGUgaW5jb21pbmcgaW50ZXJmYWNlLiAKKwkJIFBhY2tldCBpcyBzZW50IGFsbCB0aGUgZGF0YXBsYW5lIHBvcnRzIGV4Y2VwdCB0aGUgaW5wdXQgcG9ydCBpZiBvdXRwdXQucG9ydCA9IE9GUFBfRkxPT0QKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBGb3J3YXJkX0Zsb29kCitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogT3B0aW9uYWwKKworVGVzdCBOb3RlczogCisKK2EpIEluc2VydCBhIGZsb3cgd2l0aCBhY3Rpb24gb3V0cHV0IHBvcnQgPSBPRlBQX0ZMT09ECitiKSBTZW5kIHBhY2tldHMgbWF0Y2hpbmcgdGhlIGZsb3cKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgb24gYWxsIGRhdGFwbGFuZSBwb3J0cyBleGNlcHQgZm9yIGlucHV0IHBvcnQKKworCisKKzkuIE11bHRpcGxlIFBvcnRzIC0tIFRCRAorCisKKworCisxMC4gRm9yd2FyZCBFbnF1ZXVlIC0tLSBUQkQKKworCisKKworMTEuIFNldCBWTEFOIElkCisKK1Rlc3QgRGVzY3JpcHRpb246IEF0dGFjaCBWTEFOIElEIHRvIHVudGFnZ2VkIHBhY2tldC4KKyAgICAgICAgICAgICAgICAgIElmIG5vIFZMQU4gaXMgcHJlc2VudCwgYSBuZXcgaGVhZGVyIGlzIGFkZGVkIHdpdGggdGhlIHNwZWNpZmllZCBWTEFOIElEIGFuZCBwcmlvcml0eSBvZiB6ZXJvLgorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIEFkZFZsYW5JZAorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX1ZMQU5fVklEICwgdmxhbl92aWQgPSB4IAorYikgU2VuZCBwYWNrZXQgKGxlbmd0aCA9IDEwMCBieXRlcykgbWF0Y2hpbmcgdGhlIGZsb3cKK2IpICAgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBoYXMgdmxhbiBpZCBhZGRlZCB0byBpdC4gKEkuZSBsZW5ndGggb2YgcGFja2V0IHdpdGggdmlkIGlzIDEwNCBieXRlcywgZGxfdmxhbl9lbmFibGUgPSBUcnVlLCBkbF92bGFuPSB4LCBkbF92bGFuX3BjcD0wKSAgCisgICAKKworCisxMi4gTW9kaWZ5IFZMQU4gSWQKKworVGVzdCBEZXNjcmlwdGlvbjogTW9kaWZpZXMgVmxhbiBUYWcgZm9yIGEgdGFnZ2VkIHBhY2tldAorCQkgIElmIGEgVkxBTiBoZWFkZXIgYWxyZWFkeSBleGlzdHMsIHRoZSBWTEFOIElEIGlzIHJlcGxhY2VkIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZQorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIE1vZGlmeVZsYW5JZAorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKworVGVzdCBOb3RlczogCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX1ZMQU5fVklEICwgdmxhbl92aWQgPSB4IAorYikgICBTZW5kIHBhY2tldCAobGVuZ3RoID0gMTAwIGJ5dGVzKSBtYXRjaGluZyB0aGUgZmxvdworYykgICBWZXJpZnkgcGFja2V0IHJlY2VpdmVkIGhhcyB2bGFuIGlkIHJld3JpdHRlbi4gKEkuZSBsZW5ndGggb2YgMTA0IGJ5dGVzLCBkbF92bGFuX2VuYWJsZSA9IFRydWUsIGRsX3ZsYW49eCkgIAorCisKKworMTMuIEFkZCBWTEFOIFByaW9yaXR5IHRvIGFuIHVudGFnZ2VkIHBhY2tldAorCitUZXN0IERlc2NyaXB0aW9uOiBBdHRhY2ggVkxBTiBwcmlvcml0eSB0byBhbiB1bnRhZ2dlZCBwYWNrZXQuCisJCSAgU2luY2UsIG5vIFZMQU4gSUQgaXMgcHJlc2VudDsgYSBuZXcgaGVhZGVyIGlzIGFkZGVkIHdpdGggdGhlIHNwZWNpZmllZCBwcmlvcml0eSBhbmQgYSBWTEFOIElEIG9mIHplcm8uXAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIFZsYW5QcmlvMQorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX1ZMQU5fUENQICwgZGxfdmxhbl9wY3AgPXgKK2IpIFNlbmQgdW50YWdnZWQgcGFja2V0IG1hdGNoaW5nIHRoZSBmbG93ICAKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgaGFzIHZsYW4gcHJpb3JpdHkgYWRkZWQgdG8gaXQgYWxvbmcgd2l0aCBhIHZpZCB2YWx1ZSBvZiB6ZXJvIGFkZGVkIGJ5IGRlZmF1bHQgICAoZGxfdmxhbl9lbmFibGUgLCBkbF92bGFuID0gMCAsIGRsX3ZsYW5fcGNwID14ICkKKworCisKKzE0LiBSZXdyaXRlIGV4aXN0aW5nIFZMQU4gcHJpb3JpdHkKKworVGVzdCBEZXNjcmlwdGlvbjogTW9kaWZ5IFZMQU4gcHJpb3JpdHkgZm9yIGEgdGFnZ2VkIHBhY2tldC4KKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBWbGFuUHJpbzIKK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgMiBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIHNldHVwCitUZXN0LUZpZWxkOiBPcHRpb25hbAorCisgICAgICAgCitUZXN0IE5vdGVzOiAKKworYSkgSW5zZXJ0IGEgZmxvdyB3aXRoIGFjdGlvbiA9IE9GUEFUX1NFVF9WTEFOX1BDUCAsIGRsX3ZsYW5fcGNwID1uZXdfdmxhbl9wY3AKK2IpIFNlbmQgdGFnZ2VkIHBhY2tldCBtYXRjaGluZyB0aGUgZmxvdyAgKGRsX3ZsYW4gPSBvbGRfdmxhbl9pZCAsIGRsX3ZsYW5fcGNwID0gb2xkX3ZsYW5fcGNwKQorYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBoYXMgdmxhbiBpZCBhZGRlZCB0byBpdC4gKGRsX3ZsYW5fZW5hYmxlICwgZGxfdmxhbiA9IDAgLCBkbF92bGFuX3BjcCA9IG5ld192bGFuX3BjcCkKKworCisKKworMTUuIE1vZGlmeSBMMiBTcmMgQWRkcmVzcworCitUZXN0IERlc2NyaXB0aW9uOiBNb2RpZnkgRXRoZXJuZXQgU3JjIEFkZHJlc3Mgb2YgYSBwYWNrZXQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBNb2RpZnlMMlNyYworUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX0RMX1NSQyAsIGRsX3NyYyA9bmV3X2RsX3NyYworYikgU2VuZCBwYWNrZXQgbWF0Y2hpbmcgdGhlIGZsb3cgIChkbF9kc3QgPSBvbGRfZGxfc3JjICkKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgaGFzIHNyYyBhZGRyZXNzIHJld3JpdHRlbi4gKGRsX3NyYz0gbmV3X2RsX3NyYykKKworCisKKzE2LiBNb2RpZnkgTDIgRGVzdGluYXRpb24gQWRkcmVzcworCitUZXN0IERlc2NyaXB0aW9uOiBNb2RpZnkgRXRoZXJuZXQgRGVzdGluYXRpb24gQWRkcmVzcyBvZiBhIHBhY2tldAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIE1vZGlmeUwyRHN0CitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogT3B0aW9uYWwKKworICAgICAgIAorVGVzdCBOb3RlczogCisKK2EpIEluc2VydCBhIGZsb3cgd2l0aCBhY3Rpb24gPSBPRlBBVF9TRVRfRExfRFNUICwgZGxfZHN0ID1uZXdfZGxfZHN0CitiKSBTZW5kIHBhY2tldCBtYXRjaGluZyB0aGUgZmxvdyAgKGRsX2RzdCA9IG9sZF9kbF9zcmMgKQorYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBoYXMgZGVzdGluYXRpb24gYWRkcmVzcyByZXdyaXR0ZW4uIChkbF9zcmM9IG5ld19kbF9zcmMpCisKKworCisxNy4gU3RyaXAgVkxBTiBoZWFkZXIgliAoSW4gb2Z0ZXN0LCAgbmVlZCB0byBhZGQgaW4gY29uZm9ybWFuY2UgdGVzdC1zdWl0ZSApCisKKworCisxOC4gTW9kaWZ5IEwzIFNyYyBBZGRyZXNzCisKK1Rlc3QgRGVzY3JpcHRpb246IE1vZGlmeSBOZXR3b3JrIFNyYyBBZGRyZXNzIG9mIGEgcGFja2V0CisKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiAgTW9kaWZ5TDNTcmMKK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgMiBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIHNldHVwCitUZXN0LUZpZWxkOiBPcHRpb25hbAorCisgICAgICAgCitUZXN0IE5vdGVzOiAKKworYSkgSW5zZXJ0IGEgZmxvdyB3aXRoIGFjdGlvbiA9IE9GUEFUX1NFVF9OV19TUkMgLCBud19zcmMgPW5ld19ud19zcmMKK2IpIFNlbmQgcGFja2V0IG1hdGNoaW5nIHRoZSBmbG93ICAobndfc3JjID0gb2xkX253X3NyYyApCitjKSBWZXJpZnkgcGFja2V0IHJlY2VpdmVkIGhhcyBudyBhZGRyZXNzIHJld3JpdHRlbi4gKG53X3NyYz0gbmV3X253X3NyYykKKworCisKKzE5LiBNb2RpZnkgTDMgRHN0IEFkZHJlc3MKKworVGVzdCBEZXNjcmlwdGlvbjogTW9kaWZ5IE5ldHdvcmsgRHN0IEFkZHJlc3Mgb2YgYSBwYWNrZXQKKworVGVzdCBtb2RlOiBBdXRvbWF0ZWQKK1Rlc3QgVGl0bGU6ICBNb2RpZnlMM0RzdAorUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX05XX0RTVCAsIG53X2RzdCA9bmV3X253X2RzdAorYikgU2VuZCBwYWNrZXQgbWF0Y2hpbmcgdGhlIGZsb3cgIChud19kc3QgPSBvbGRfbndfZHN0ICkKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgaGFzIG53IGRlc3RpbmF0aW9uIGFkZHJlc3MgcmV3cml0dGVuLiAobndfZHN0PSBuZXdfbndfZHN0KQorCisKKworMjAuIE1vZGlmeSBMNCBTcmMgQWRkcmVzcworCitUZXN0IERlc2NyaXB0aW9uOiBNb2RpZnkgVENQIFNvdXJjZSBQb3J0IG9mIGEgcGFja2V0CisKK1Rlc3QgbW9kZTogQXV0b21hdGVkCitUZXN0IFRpdGxlOiAgTW9kaWZ5TDRTcmMKK1BvcnRzOiAzICgxIENvbnRyb2wgUGxhbmUgMiBEYXRhcGxhbmUpCitJbml0aWFsIFN0YXRlOiBEZWZhdWx0IChDbGVhciBzd2l0Y2ggc3RhdGUpLCBDb25uZWN0aW9uIHNldHVwCitUZXN0LUZpZWxkOiBPcHRpb25hbAorCisgICAgICAgCitUZXN0IE5vdGVzOiAKKworYSkgSW5zZXJ0IGEgZmxvdyB3aXRoIGFjdGlvbiA9IE9GUEFUX1NFVF9UUF9TUkMgLCB0Y3Bfc3BvcnQgPW5ld190Y3Bfc3BvcnQKK2IpIFNlbmQgcGFja2V0IG1hdGNoaW5nIHRoZSBmbG93ICAodGNwX3Nwb3J0ID0gb2xkX3RjcF9zcG9ydCApCitjKSBWZXJpZnkgcGFja2V0IHJlY2VpdmVkIGhhcyB0Y3Agc291cmNlIHBvcnQgcmV3cml0dGVuLiAodGNwX3Nwb3J0ID0gbmV3X3RjcF9zcG9ydCkKKworCisyMS4gTW9kaWZ5IEw0IERzdCBBZGRyZXNzCisKK1Rlc3QgRGVzY3JpcHRpb246IE1vZGlmeSBUQ1AgRGVzdGluYXRpb24gUG9ydCBvZiBhIHBhY2tldAorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIE1vZGlmeUw0RHN0CitQb3J0czogMyAoMSBDb250cm9sIFBsYW5lIDIgRGF0YXBsYW5lKQorSW5pdGlhbCBTdGF0ZTogRGVmYXVsdCAoQ2xlYXIgc3dpdGNoIHN0YXRlKSwgQ29ubmVjdGlvbiBzZXR1cAorVGVzdC1GaWVsZDogT3B0aW9uYWwKKworICAgICAgIAorVGVzdCBOb3RlczogCisKK2EpIEluc2VydCBhIGZsb3cgd2l0aCBhY3Rpb24gPSBPRlBBVF9TRVRfVFBfRFNUICwgdGNwX2Rwb3J0ID1uZXdfdGNwX2Rwb3J0CitiKSBTZW5kIHBhY2tldCBtYXRjaGluZyB0aGUgZmxvdyAgKHRjcF9kcG9ydCA9IG9sZF90Y3BfZHBvcnQgKQorYykgVmVyaWZ5IHBhY2tldCByZWNlaXZlZCBoYXMgdGNwIGRlc3RpbmF0aW9uIHBvcnQgcmV3cml0dGVuLiAodGNwX3Nwb3J0ID0gbmV3X3RjcF9zcG9ydCkKKworCisKKzIyLiBNb2RpZnkgVE9TCisKK1Rlc3QgRGVzY3JpcHRpb246IE1vZGlmeSBOZXR3b3JrIFR5cGUgb2Ygc2VydmljZQorCitUZXN0IG1vZGU6IEF1dG9tYXRlZAorVGVzdCBUaXRsZTogIE1vZGlmeVRvcworUG9ydHM6IDMgKDEgQ29udHJvbCBQbGFuZSAyIERhdGFwbGFuZSkKK0luaXRpYWwgU3RhdGU6IERlZmF1bHQgKENsZWFyIHN3aXRjaCBzdGF0ZSksIENvbm5lY3Rpb24gc2V0dXAKK1Rlc3QtRmllbGQ6IE9wdGlvbmFsCisKKyAgICAgICAKK1Rlc3QgTm90ZXM6IAorCithKSBJbnNlcnQgYSBmbG93IHdpdGggYWN0aW9uID0gT0ZQQVRfU0VUX05XX1RPUywgaXBfdG9zID1uZXdfaXBfdG9zCitiKSBTZW5kIHBhY2tldCBtYXRjaGluZyB0aGUgZmxvdyAgKGlwX3Rvcz0gb2xkX2lwX3RvcykKK2MpIFZlcmlmeSBwYWNrZXQgcmVjZWl2ZWQgaGFzIHRjcCBkZXN0aW5hdGlvbiBwb3J0IHJld3JpdHRlbi4gKGlwX3Rvcz0gbmV3X2lwX3RvcykKKworCisKKzIzLiBPcmRlciBOb3QgcG9zc2libGUgIC0tIFRCRAorCisKKworCisyNC4gU2VxdWVudGlhbCBleGVjdXRpb24gIC0tIFRCRCAKKwo=