<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>107838</bug_id>
          
          <creation_ts>2013-01-24 09:21:44 -0800</creation_ts>
          <short_desc>Objective-C API: testapi.mm should use ARC</short_desc>
          <delta_ts>2013-02-07 15:13:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>108860</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>mrowe</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>815547</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-24 09:21:44 -0800</bug_when>
    <thetext>In ToT testapi.mm uses the Obj-C garbage collector, which hides a lot of our object lifetime bugs. We should enable ARC, since that is what most of our clients will be using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815678</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-01-24 11:48:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/13079712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824736</commentid>
    <comment_count>2</comment_count>
      <attachid>186456</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-04 14:01:31 -0800</bug_when>
    <thetext>Created attachment 186456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824846</commentid>
    <comment_count>3</comment_count>
      <attachid>186483</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-04 15:53:40 -0800</bug_when>
    <thetext>Created attachment 186483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824850</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-04 15:55:46 -0800</bug_when>
    <thetext>New patch that disables building with ARC on 32-bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824871</commentid>
    <comment_count>5</comment_count>
      <attachid>186483</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-04 16:14:35 -0800</bug_when>
    <thetext>Comment on attachment 186483
Patch

Does this compile on 32bit?  You&apos;ve disabled arc but still have @autoreleasepool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824875</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-04 16:18:06 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 186483 [details])
&gt; Does this compile on 32bit?  You&apos;ve disabled arc but still have @autoreleasepool

Yes, it builds. @autoreleasepools are unrelated to ARC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825715</commentid>
    <comment_count>7</comment_count>
      <attachid>186483</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 12:40:22 -0800</bug_when>
    <thetext>Comment on attachment 186483
Patch

Clearing flags on attachment: 186483

Committed r141914: &lt;http://trac.webkit.org/changeset/141914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825716</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 12:40:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827755</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-07 11:37:52 -0800</bug_when>
    <thetext>Reopening because we should fix the build files so that all of the settings are in the relevant xcconfig files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827896</commentid>
    <comment_count>10</comment_count>
      <attachid>187177</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-07 14:30:10 -0800</bug_when>
    <thetext>Created attachment 187177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827899</commentid>
    <comment_count>11</comment_count>
      <attachid>187177</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-02-07 14:38:54 -0800</bug_when>
    <thetext>Comment on attachment 187177
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=187177&amp;action=review

r=me with those changes.  Thanks for cleaning this up!

&gt; Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig:36
&gt; +CLANG_ENABLE_OBJC_ARC = $(CLANG_ENABLE_OBJC_ARC_$(CURRENT_ARCH))

This should have a trailing ; for consistency.

&gt; Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig:39
&gt; +CLANG_ENABLE_OBJC_ARC_ = NO;
&gt; +CLANG_ENABLE_OBJC_ARC_i386 = NO;
&gt; +CLANG_ENABLE_OBJC_ARC_ppc = NO;

Since ARC defaults to off, you can omit all of these lines that explicitly set it to NO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827918</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-07 15:13:15 -0800</bug_when>
    <thetext>Committed r142184: &lt;http://trac.webkit.org/changeset/142184&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186456</attachid>
            <date>2013-02-04 14:01:31 -0800</date>
            <delta_ts>2013-02-04 15:53:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107838-20130204135810.patch</filename>
            <type>text/plain</type>
            <size>16586</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxODA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAyLTA0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiB0ZXN0YXBpLm1tIHNob3VsZCB1c2UgQVJDCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBUb1QgdGVzdGFw
aS5tbSB1c2VzIHRoZSBPYmotQyBnYXJiYWdlIGNvbGxlY3Rvciwgd2hpY2ggaGlkZXMgYSBsb3Qg
b2Ygb3VyIG9iamVjdCBsaWZldGltZSBidWdzLiAKKyAgICAgICAgV2Ugc2hvdWxkIGVuYWJsZSBB
UkMsIHNpbmNlIHRoYXQgaXMgd2hhdCBtb3N0IG9mIG91ciBjbGllbnRzIHdpbGwgYmUgdXNpbmcu
CisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAgICAgKC1bVGVzdE9iamVj
dCBpbml0XSk6CisgICAgICAgICgtW1Rlc3RPYmplY3QgZGVhbGxvY10pOgorICAgICAgICAoK1tU
ZXN0T2JqZWN0IHRlc3RPYmplY3RdKToKKyAgICAgICAgKHRlc3RPYmplY3RpdmVDQVBJKToKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEz
LTAyLTA0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgT2JqZWN0aXZlLUMgQVBJOiBPYmpDQ2FsbGJhY2tGdW5jdGlvbiBzaG91bGQgcmV0YWluIHRo
ZSB0YXJnZXQgb2YgaXRzIE5TSW52b2NhdGlvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQkocmV2aXNpb24gMTQxODA1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsy
NSw4IEBACiAKICNpbXBvcnQgIkphdmFTY3JpcHRDb3JlLmgiCiAKLWV4dGVybiAiQyIgYm9vbCBf
QmxvY2tfaGFzX3NpZ25hdHVyZSh2b2lkICopOwotZXh0ZXJuICJDIiBjb25zdCBjaGFyICogX0Js
b2NrX3NpZ25hdHVyZSh2b2lkICopOworZXh0ZXJuICJDIiBib29sIF9CbG9ja19oYXNfc2lnbmF0
dXJlKGlkKTsKK2V4dGVybiAiQyIgY29uc3QgY2hhciAqIF9CbG9ja19zaWduYXR1cmUoaWQpOwog
CiBleHRlcm4gaW50IGZhaWxlZDsKIGV4dGVybiAiQyIgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSh2
b2lkKTsKQEAgLTY5LDkgKzY5LDIxIEBAICsgKGlkKXRlc3RPYmplY3Q7CiBAc3ludGhlc2l6ZSB2
YXJpYWJsZTsKIEBzeW50aGVzaXplIHNpeDsKIEBzeW50aGVzaXplIHBvaW50OworLShpZClpbml0
Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJl
dHVybiBuaWw7CisgICAgTlNMb2coQCJ0ZXN0IG9iamVjdCAlcCBpbml0aWFsaXplZCIsIHNlbGYp
OworICAgIHJldHVybiBzZWxmOworfQorLSh2b2lkKWRlYWxsb2MKK3sKKyAgICBOU0xvZyhAInRl
c3Qgb2JqZWN0ICVwIGRlYWxsb2NhdGVkIiwgc2VsZik7Cit9CiArIChpZCl0ZXN0T2JqZWN0CiB7
Ci0gICAgcmV0dXJuIFtbW1Rlc3RPYmplY3QgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAg
ICByZXR1cm4gW1tUZXN0T2JqZWN0IGFsbG9jXSBpbml0XTsKIH0KICsgKE5TU3RyaW5nICopY2xh
c3NUZXN0CiB7CkBAIC0xMzYsMjYgKzE0OCwyNiBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkK
ICAgICBOU0xvZyhAIlRlc3RpbmcgT2JqZWN0aXZlLUMgQVBJIik7CiAKICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9j
XSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlND
b250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRleHQg
ZXZhbHVhdGVTY3JpcHQ6QCIyICsgMiJdOwogICAgICAgICBjaGVja1Jlc3VsdChAIjIgKyAyIiwg
W3Jlc3VsdCBpc051bWJlcl0gJiYgW3Jlc3VsdCB0b0ludDMyXSA9PSA0KTsKICAgICB9CiAKICAg
ICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlND
b250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29u
dGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgTlNTdHJpbmcgKnJlc3Vs
dCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiVHdvIHBsdXMgdHdvIGlzICVAIiwgW2Nv
bnRleHQgZXZhbHVhdGVTY3JpcHQ6QCIyICsgMiJdXTsKICAgICAgICAgY2hlY2tSZXN1bHQoQCJz
dHJpbmdXaXRoRm9ybWF0IiwgW3Jlc3VsdCBpc0VxdWFsOkAiVHdvIHBsdXMgdHdvIGlzIDQiXSk7
CiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29u
dGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBK
U0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIGNv
bnRleHRbQCJtZXNzYWdlIl0gPSBAIkhlbGxvIjsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0g
W2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJtZXNzYWdlICsgJywgV29ybGQhJyJdOwogICAgICAg
ICBjaGVja1Jlc3VsdChAIkhlbGxvLCBXb3JsZCEiLCBbcmVzdWx0IGlzU3RyaW5nXSAmJiBbcmVz
dWx0IGlzRXF1YWxUb09iamVjdDpAIkhlbGxvLCBXb3JsZCEiXSk7CiAgICAgfQogCiAgICAgQGF1
dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4
dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQg
PSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtj
b250ZXh0IGV2YWx1YXRlU2NyaXB0OkAiKHsgeDo0MiB9KSJdOwogICAgICAgICBjaGVja1Jlc3Vs
dChAIih7IHg6NDIgfSkiLCBbcmVzdWx0IGlzT2JqZWN0XSAmJiBbcmVzdWx0W0AieCJdIGlzRXF1
YWxUb09iamVjdDpANDJdKTsKICAgICAgICAgaWQgb2JqID0gW3Jlc3VsdCB0b09iamVjdF07CkBA
IC0xNjUsNyArMTc3LDcgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAg
QGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29u
dGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRl
eHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIF9fYmxvY2sgaW50IHJlc3Vs
dDsKICAgICAgICAgY29udGV4dFtAImJsb2NrQ2FsbGJhY2siXSA9IF4oaW50IHZhbHVlKXsKICAg
ICAgICAgICAgIHJlc3VsdCA9IHZhbHVlOwpAQCAtMTc2LDcgKzE4OCw3IEBAIHZvaWQgdGVzdE9i
amVjdGl2ZUNBUEkoKQogCiAgICAgaWYgKGJsb2NrU2lnbmF0dXJlQ29udGFpbnNDbGFzcygpKSB7
CiAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgSlNDb250ZXh0ICpjb250
ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgICAg
ICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAg
ICAgICBfX2Jsb2NrIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICBjb250ZXh0W0Ai
YmxvY2tDYWxsYmFjayJdID0gXihOU1N0cmluZyAqdmFsdWUpewogICAgICAgICAgICAgICAgIHJl
c3VsdCA9IFtAIjQyIiBpc0VxdWFsVG9TdHJpbmc6dmFsdWVdID09IFlFUzsKQEAgLTE4OCwxNCAr
MjAwLDE0IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgICAgICBOU0xvZyhAIlNraXBw
aW5nICdibG9ja0NhbGxiYWNrKE5TU3RyaW5nICopJyB0ZXN0IGNhc2UiKTsKIAogICAgIEBhdXRv
cmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQg
YWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0g
W1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBjaGVja1Jlc3VsdChAIiFjb250ZXh0
LmV4Y2VwdGlvbiIsICFjb250ZXh0LmV4Y2VwdGlvbik7CiAgICAgICAgIFtjb250ZXh0IGV2YWx1
YXRlU2NyaXB0OkAiIUAjJCVeJiooKSBUSElTIElTIE5PVCBWQUxJRCBKQVZBU0NSSVBUIFNZTlRB
WCAhQCMkJV4mKigpIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAiY29udGV4dC5leGNlcHRpb24i
LCBjb250ZXh0LmV4Y2VwdGlvbik7CiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0g
ICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxv
Y10gaW5pdF07CiAgICAgICAgIF9fYmxvY2sgYm9vbCBjYXVnaHQgPSBmYWxzZTsKICAgICAgICAg
Y29udGV4dC5leGNlcHRpb25IYW5kbGVyID0gXihKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWUg
KmV4Y2VwdGlvbikgewogICAgICAgICAgICAgKHZvaWQpY29udGV4dDsKQEAgLTIwNyw3ICsyMTks
NyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vw
b29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBp
bml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250
ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgY29udGV4dFtAImNhbGxiYWNrIl0gPSBeewogICAg
ICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29udGV4dCBjdXJyZW50Q29udGV4dF07
CiAgICAgICAgICAgICBjb250ZXh0LmV4Y2VwdGlvbiA9IFtKU1ZhbHVlIHZhbHVlV2l0aE5ld0Vy
cm9yRnJvbU1lc3NhZ2U6QCJTb21ldGhpbmcgd2VudCB3cm9uZy4iIGluQ29udGV4dDpjb250ZXh0
XTsKQEAgLTIxOCw3ICsyMzAsNyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAK
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tb
SlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAq
Y29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgY29udGV4dFtAImNh
bGxiYWNrIl0gPSBeewogICAgICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29udGV4
dCBjdXJyZW50Q29udGV4dF07CiAgICAgICAgICAgICBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpA
IiFAIyQlXiYqKCkgVEhJUyBJUyBOT1QgVkFMSUQgSkFWQVNDUklQVCBTWU5UQVggIUAjJCVeJioo
KSJdOwpAQCAtMjI5LDcgKzI0MSw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0K
IAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBb
W1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0
ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBbY29udGV4dCBl
dmFsdWF0ZVNjcmlwdDoKICAgICAgICAgICAgIEAiZnVuY3Rpb24gc3VtKGFycmF5KSB7IFwKICAg
ICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gMDsgXApAQCAtMjQ0LDcgKzI1Niw3IEBAIHZvaWQg
dGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAg
ICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2Nd
IGluaXRdOwogICAgICAgICBKU1ZhbHVlICptdWxBZGRGdW5jdGlvbiA9IFtjb250ZXh0IGV2YWx1
YXRlU2NyaXB0OgogICAgICAgICAgICAgQCIoZnVuY3Rpb24oYXJyYXksIG9iamVjdCkgeyBcCiAg
ICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOyBcCkBAIC0yNTcsNyArMjY5LDcgQEAgdm9p
ZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0g
ICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdOyAgICAgICAgCisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250
ZXh0IGFsbG9jXSBpbml0XTsgICAgICAgIAogICAgICAgICBKU1ZhbHVlICphcnJheSA9IFtKU1Zh
bHVlIHZhbHVlV2l0aE5ld0FycmF5SW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBjaGVja1Jl
c3VsdChAImFycmF5TGVuZ3RoRW1wdHkiLCBbW2FycmF5W0AibGVuZ3RoIl0gdG9OdW1iZXJdIHVu
c2lnbmVkSW50ZWdlclZhbHVlXSA9PSAwKTsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUxID0gW0pT
VmFsdWUgdmFsdWVXaXRoSW50MzI6NDIgaW5Db250ZXh0OmNvbnRleHRdOwpAQCAtMjg1LDcgKzI5
Nyw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFz
ZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2Nd
IGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0Nv
bnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBKU1ZhbHVlICpvYmplY3QgPSBbSlNWYWx1ZSB2
YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6Y29udGV4dF07CiAKICAgICAgICAgb2JqZWN0W0Ai
cG9pbnQiXSA9IEB7IEAieCI6QDEsIEAieSI6QDIgfTsKQEAgLTMwMSw3ICszMTMsNyBAQCB2b2lk
IHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAg
ICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRv
cmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9j
XSBpbml0XTsKICAgICAgICAgVGV4dFhZWiAqdGVzdFhZWiA9IFtbVGV4dFhZWiBhbGxvY10gaW5p
dF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0WFlaIl0gPSB0ZXN0WFlaOwogICAgICAgICB0ZXN0
WFlaLnggPSAzOwpAQCAtMzE1LDcgKzMyNyw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQog
ICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRl
eHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlND
b250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBbY29u
dGV4dFtAIk9iamVjdCJdW0AicHJvdG90eXBlIl0gZGVmaW5lUHJvcGVydHk6QCJnZXR0ZXJQcm9w
ZXJ0eSIgZGVzY3JpcHRvcjpAewogICAgICAgICAgICAgSlNQcm9wZXJ0eURlc2NyaXB0b3JHZXRL
ZXk6XnsKICAgICAgICAgICAgICAgICByZXR1cm4gW0pTQ29udGV4dCBjdXJyZW50VGhpc11bQCJ4
Il07CkBAIC0zMjcsNyArMzM5LDcgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQog
CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtb
W0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQg
KmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIGNvbnRleHRbQCJj
b25jYXRlbmF0ZSJdID0gXnsKICAgICAgICAgICAgIE5TQXJyYXkgKmFyZ3VtZW50cyA9IFtKU0Nv
bnRleHQgY3VycmVudEFyZ3VtZW50c107CiAgICAgICAgICAgICBpZiAoIVthcmd1bWVudHMgY291
bnRdKQpAQCAtMzQyLDcgKzM1NCw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0K
IAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBb
W1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0
ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBjb250ZXh0W0Ai
Zm9vIl0gPSBAWUVTOwogICAgICAgICBjaGVja1Jlc3VsdChAIkBZRVMgaXMgYm9vbGVhbiIsIFtj
b250ZXh0W0AiZm9vIl0gaXNCb29sZWFuXSk7CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtj
b250ZXh0IGV2YWx1YXRlU2NyaXB0OkAidHlwZW9mIGZvbyJdOwpAQCAtMzUwLDcgKzM2Miw3IEBA
IHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wg
ewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRd
IGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQg
YWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmpl
Y3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2Jq
ZWN0OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpA
IlN0cmluZyh0ZXN0T2JqZWN0KSJdOwpAQCAtMzU4LDcgKzM3MCw3IEBAIHZvaWQgdGVzdE9iamVj
dGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0Nv
bnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsK
KyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwog
ICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3QgdGVzdE9iamVjdF07
CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwogICAgICAgICBK
U1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlN0cmluZyh0ZXN0T2Jq
ZWN0Ll9fcHJvdG9fXykiXTsKQEAgLTM2NiwyNyArMzc4LDI3IEBAIHZvaWQgdGVzdE9iamVjdGl2
ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRl
eHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAg
ICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAg
ICAgICBjb250ZXh0W0AiVGVzdE9iamVjdCJdID0gW1Rlc3RPYmplY3QgY2xhc3NdOwogICAgICAg
ICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlN0cmluZyhUZXN0
T2JqZWN0KSJdOwogICAgICAgICBjaGVja1Jlc3VsdChAIlN0cmluZyhUZXN0T2JqZWN0KSIsIFty
ZXN1bHQgaXNFcXVhbFRvT2JqZWN0OkAiW29iamVjdCBUZXN0T2JqZWN0Q29uc3RydWN0b3JdIl0p
OwogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNv
bnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAg
SlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBK
U1ZhbHVlKiB2YWx1ZSA9IFtKU1ZhbHVlIHZhbHVlV2l0aE9iamVjdDpbVGVzdE9iamVjdCBjbGFz
c10gaW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBjaGVja1Jlc3VsdChAIlt2YWx1ZSB0b09i
amVjdF0gPT0gW1Rlc3RPYmplY3QgY2xhc3NdIiwgW3ZhbHVlIHRvT2JqZWN0XSA9PSBbVGVzdE9i
amVjdCBjbGFzc10pOwogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBK
U0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNl
XTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRd
OwogICAgICAgICBjb250ZXh0W0AiVGVzdE9iamVjdCJdID0gW1Rlc3RPYmplY3QgY2xhc3NdOwog
ICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlRlc3RP
YmplY3QucGFyZW50VGVzdCgpIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAiVGVzdE9iamVjdC5w
YXJlbnRUZXN0KCkiLCBbcmVzdWx0IGlzRXF1YWxUb09iamVjdDpAIlRlc3RPYmplY3QiXSk7CiAg
ICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4
dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0Nv
bnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIFRlc3RP
YmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVjdCB0ZXN0T2JqZWN0XTsKICAgICAgICAgY29u
dGV4dFtAInRlc3RPYmplY3RBIl0gPSB0ZXN0T2JqZWN0OwogICAgICAgICBjb250ZXh0W0AidGVz
dE9iamVjdEIiXSA9IHRlc3RPYmplY3Q7CkBAIC0zOTUsNyArNDA3LDcgQEAgdm9pZCB0ZXN0T2Jq
ZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpT
Q29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2Vd
OworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07
CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVjdCB0ZXN0T2JqZWN0
XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRlc3RPYmplY3Q7CiAgICAgICAg
IHRlc3RPYmplY3QucG9pbnQgPSAoQ0dQb2ludCl7Myw0fTsKQEAgLTQwNSw3ICs0MTcsNyBAQCB2
b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
LSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBh
dXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFs
bG9jXSBpbml0XTsKICAgICAgICAgVGVzdE9iamVjdCogdGVzdE9iamVjdCA9IFtUZXN0T2JqZWN0
IHRlc3RPYmplY3RdOwogICAgICAgICB0ZXN0T2JqZWN0LnNpeCA9IDY7CiAgICAgICAgIGNvbnRl
eHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwpAQCAtNDE1LDcgKzQyNyw3IEBAIHZvaWQg
dGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAg
ICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2Nd
IGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3QgdGVz
dE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0Owog
ICAgICAgICBjb250ZXh0W0AidGVzdE9iamVjdCJdW0AidmFyaWFibGUiXSA9IEA0OwpAQCAtNDI0
LDIxICs0MzYsMjEgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1
dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4
dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQg
PSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIGNvbnRleHRbQCJwb2ludCJdID0g
QHsgQCJ4IjpANiwgQCJ5IjpANyB9OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4
dCBldmFsdWF0ZVNjcmlwdDpAInBvaW50LnggKyAnLCcgKyBwb2ludC55Il07CiAgICAgICAgIGNo
ZWNrUmVzdWx0KEAicG9pbnQueCArICcsJyArIHBvaW50LnkiLCBbcmVzdWx0IGlzRXF1YWxUb09i
amVjdDpAIjYsNyJdKTsKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAg
SlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFz
ZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0
XTsKICAgICAgICAgY29udGV4dFtAInBvaW50Il0gPSBAeyBAIngiOkA2LCBAInkiOkA3IH07CiAg
ICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAicG9pbnQu
eCArICcsJyArIHBvaW50LnkiXTsKICAgICAgICAgY2hlY2tSZXN1bHQoQCJwb2ludC54ICsgJywn
ICsgcG9pbnQueSIsIFtyZXN1bHQgaXNFcXVhbFRvT2JqZWN0OkAiNiw3Il0pOwogICAgIH0KIAog
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tK
U0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpj
b250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0
ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0
ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29u
dGV4dCBldmFsdWF0ZVNjcmlwdDpAInRlc3RPYmplY3QuZ2V0U3RyaW5nKCkiXTsKQEAgLTQ0Niw3
ICs0NTgsNyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFs
bG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtb
SlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgVGVzdE9iamVjdCogdGVzdE9iamVjdCA9
IFtUZXN0T2JqZWN0IHRlc3RPYmplY3RdOwogICAgICAgICBjb250ZXh0W0AidGVzdE9iamVjdCJd
ID0gdGVzdE9iamVjdDsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRleHQgZXZhbHVh
dGVTY3JpcHQ6QCJ0ZXN0T2JqZWN0LnRlc3RBcmd1bWVudFR5cGVzKDEwMSwwLjUsdHJ1ZSwnZm9v
Jyw2NjYsW2ZhbHNlLCdiYXInLGZhbHNlXSx7eDonYmF6J30pIl07CkBAIC00NTQsNyArNDY2LDcg
QEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9v
bCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5p
dF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4
dCBhbGxvY10gaW5pdF07CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9i
amVjdCB0ZXN0T2JqZWN0XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRlc3RP
YmplY3Q7CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0
OkAidGVzdE9iamVjdC5nZXRTdHJpbmcuY2FsbCh0ZXN0T2JqZWN0KSJdOwpAQCAtNDYyLDcgKzQ3
NCw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFz
ZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2Nd
IGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0Nv
bnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rl
c3RPYmplY3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0
ZXN0T2JqZWN0OwogICAgICAgICBjaGVja1Jlc3VsdChAInRlc3RPYmplY3QuZ2V0U3RyaW5nLmNh
bGwoe30pIHByZSIsICFjb250ZXh0LmV4Y2VwdGlvbik7CkBAIC00NzEsNyArNDgzLDcgQEAgdm9p
ZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0g
ICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxv
Y10gaW5pdF07CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVjdCB0
ZXN0T2JqZWN0XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRlc3RPYmplY3Q7
CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAidmFy
IHJlc3VsdCA9IDA7IHRlc3RPYmplY3QuY2FsbGJhY2soZnVuY3Rpb24oeCl7IHJlc3VsdCA9IHg7
IH0pOyByZXN1bHQiXTsKQEAgLTQ4Nyw4ICs0OTksNiBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJ
KCkKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRleHQxIGV2YWx1YXRlU2NyaXB0OkAi
cGFzc1ZhbHVlQmV0d2VlbkNvbnRleHRzIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAicmVzdWx0
LmNvbnRleHQgPT0gY29udGV4dDEiLCByZXN1bHQuY29udGV4dCA9PSBjb250ZXh0MSk7CiAgICAg
ICAgIGNoZWNrUmVzdWx0KEAiW3ZhbHVlIGlzRXF1YWxUb09iamVjdDpyZXN1bHRdIiwgW3ZhbHVl
IGlzRXF1YWxUb09iamVjdDpyZXN1bHRdKTsKLSAgICAgICAgW2NvbnRleHQxIHJlbGVhc2VdOwot
ICAgICAgICBbY29udGV4dDIgcmVsZWFzZV07CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQxODA1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQxOTIsNiArNDE5Miw4IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkMwMjFCRjIxMzY5MDBDMzAwRkM1NDY3
IC8qIFRvb2xFeGVjdXRhYmxlLnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJ
CQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJR0NDX0VOQUJMRV9PQkpDX0dDX21h
Y29zeCA9IE5POwogCQkJfTsKIAkJCW5hbWUgPSBEZWJ1ZzsKIAkJfTsKQEAgLTQxOTksNiArNDIw
MSw4IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gQkMwMjFCRjIxMzY5MDBDMzAwRkM1NDY3IC8qIFRvb2xFeGVjdXRhYmxl
LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlDTEFOR19FTkFCTEVfT0JK
Q19BUkMgPSBZRVM7CisJCQkJR0NDX0VOQUJMRV9PQkpDX0dDX21hY29zeCA9IE5POwogCQkJfTsK
IAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OwpAQCAtNDIwNiw2ICs0MjEwLDggQEAKIAkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBC
QzAyMUJGMjEzNjkwMEMzMDBGQzU0NjcgLyogVG9vbEV4ZWN1dGFibGUueGNjb25maWcgKi87CiAJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCUNMQU5HX0VOQUJMRV9PQkpDX0FSQyA9IFlFUzsKKwkJ
CQlHQ0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4ID0gTk87CiAJCQl9OwogCQkJbmFtZSA9IFByb2R1
Y3Rpb247CiAJCX07CkBAIC00MzI3LDYgKzQzMzMsOCBAQAogCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMDIxQkYyMTM2OTAw
QzMwMEZDNTQ2NyAvKiBUb29sRXhlY3V0YWJsZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUdDQ19FTkFCTEVf
T0JKQ19HQ19tYWNvc3ggPSBOTzsKIAkJCX07CiAJCQluYW1lID0gUHJvZmlsaW5nOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186483</attachid>
            <date>2013-02-04 15:53:40 -0800</date>
            <delta_ts>2013-02-07 14:30:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107838-20130204155019.patch</filename>
            <type>text/plain</type>
            <size>17060</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxODI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTAyLTA0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiB0ZXN0YXBpLm1tIHNob3VsZCB1c2UgQVJDCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBUb1QgdGVzdGFw
aS5tbSB1c2VzIHRoZSBPYmotQyBnYXJiYWdlIGNvbGxlY3Rvciwgd2hpY2ggaGlkZXMgYSBsb3Qg
b2Ygb3VyIG9iamVjdCBsaWZldGltZSBidWdzLgorICAgICAgICBXZSBzaG91bGQgZW5hYmxlIEFS
Qywgc2luY2UgdGhhdCBpcyB3aGF0IG1vc3Qgb2Ygb3VyIGNsaWVudHMgd2lsbCBiZSB1c2luZy4g
V2UgdXNlIFhjb2RlIHByb2plY3QgCisgICAgICAgIHNldHRpbmdzIHRvIG1ha2Ugc3VyZSB3ZSBk
b24ndCB0cnkgdG8gY29tcGlsZSBBUkMgb24gMzItYml0LgorCisgICAgICAgICogQVBJL3Rlc3Rz
L3Rlc3RhcGkubW06CisgICAgICAgICgrW1Rlc3RPYmplY3QgdGVzdE9iamVjdF0pOgorICAgICAg
ICAodGVzdE9iamVjdGl2ZUNBUEkpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTMtMDItMDQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
NDE4MDkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1t
CShyZXZpc2lvbiAxNDE4MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDggQEAKIAogI2ltcG9ydCAiSmF2
YVNjcmlwdENvcmUuaCIKIAotZXh0ZXJuICJDIiBib29sIF9CbG9ja19oYXNfc2lnbmF0dXJlKHZv
aWQgKik7Ci1leHRlcm4gIkMiIGNvbnN0IGNoYXIgKiBfQmxvY2tfc2lnbmF0dXJlKHZvaWQgKik7
CitleHRlcm4gIkMiIGJvb2wgX0Jsb2NrX2hhc19zaWduYXR1cmUoaWQpOworZXh0ZXJuICJDIiBj
b25zdCBjaGFyICogX0Jsb2NrX3NpZ25hdHVyZShpZCk7CiAKIGV4dGVybiBpbnQgZmFpbGVkOwog
ZXh0ZXJuICJDIiB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKHZvaWQpOwpAQCAtNzEsNyArNzEsNyBA
QCArIChpZCl0ZXN0T2JqZWN0OwogQHN5bnRoZXNpemUgcG9pbnQ7CiArIChpZCl0ZXN0T2JqZWN0
CiB7Ci0gICAgcmV0dXJuIFtbW1Rlc3RPYmplY3QgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsK
KyAgICByZXR1cm4gW1tUZXN0T2JqZWN0IGFsbG9jXSBpbml0XTsKIH0KICsgKE5TU3RyaW5nICop
Y2xhc3NUZXN0CiB7CkBAIC0xMzYsMjYgKzEzNiwyNiBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJ
KCkKICAgICBOU0xvZyhAIlRlc3RpbmcgT2JqZWN0aXZlLUMgQVBJIik7CiAKICAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFs
bG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtb
SlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRl
eHQgZXZhbHVhdGVTY3JpcHQ6QCIyICsgMiJdOwogICAgICAgICBjaGVja1Jlc3VsdChAIjIgKyAy
IiwgW3Jlc3VsdCBpc051bWJlcl0gJiYgW3Jlc3VsdCB0b0ludDMyXSA9PSA0KTsKICAgICB9CiAK
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tb
SlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAq
Y29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgTlNTdHJpbmcgKnJl
c3VsdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiVHdvIHBsdXMgdHdvIGlzICVAIiwg
W2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCIyICsgMiJdXTsKICAgICAgICAgY2hlY2tSZXN1bHQo
QCJzdHJpbmdXaXRoRm9ybWF0IiwgW3Jlc3VsdCBpc0VxdWFsOkAiVHdvIHBsdXMgdHdvIGlzIDQi
XSk7CiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAq
Y29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAg
ICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAg
IGNvbnRleHRbQCJtZXNzYWdlIl0gPSBAIkhlbGxvIjsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0
ID0gW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJtZXNzYWdlICsgJywgV29ybGQhJyJdOwogICAg
ICAgICBjaGVja1Jlc3VsdChAIkhlbGxvLCBXb3JsZCEiLCBbcmVzdWx0IGlzU3RyaW5nXSAmJiBb
cmVzdWx0IGlzRXF1YWxUb09iamVjdDpAIkhlbGxvLCBXb3JsZCEiXSk7CiAgICAgfQogCiAgICAg
QGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29u
dGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRl
eHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9
IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAiKHsgeDo0MiB9KSJdOwogICAgICAgICBjaGVja1Jl
c3VsdChAIih7IHg6NDIgfSkiLCBbcmVzdWx0IGlzT2JqZWN0XSAmJiBbcmVzdWx0W0AieCJdIGlz
RXF1YWxUb09iamVjdDpANDJdKTsKICAgICAgICAgaWQgb2JqID0gW3Jlc3VsdCB0b09iamVjdF07
CkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAg
ICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pT
Q29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNv
bnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIF9fYmxvY2sgaW50IHJl
c3VsdDsKICAgICAgICAgY29udGV4dFtAImJsb2NrQ2FsbGJhY2siXSA9IF4oaW50IHZhbHVlKXsK
ICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlOwpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgdGVz
dE9iamVjdGl2ZUNBUEkoKQogCiAgICAgaWYgKGJsb2NrU2lnbmF0dXJlQ29udGFpbnNDbGFzcygp
KSB7CiAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgSlNDb250ZXh0ICpj
b250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAg
ICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAg
ICAgICAgICBfX2Jsb2NrIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICBjb250ZXh0
W0AiYmxvY2tDYWxsYmFjayJdID0gXihOU1N0cmluZyAqdmFsdWUpewogICAgICAgICAgICAgICAg
IHJlc3VsdCA9IFtAIjQyIiBpc0VxdWFsVG9TdHJpbmc6dmFsdWVdID09IFlFUzsKQEAgLTE4OCwx
NCArMTg4LDE0IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgICAgICBOU0xvZyhAIlNr
aXBwaW5nICdibG9ja0NhbGxiYWNrKE5TU3RyaW5nICopJyB0ZXN0IGNhc2UiKTsKIAogICAgIEBh
dXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRl
eHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0
ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBjaGVja1Jlc3VsdChAIiFjb250
ZXh0LmV4Y2VwdGlvbiIsICFjb250ZXh0LmV4Y2VwdGlvbik7CiAgICAgICAgIFtjb250ZXh0IGV2
YWx1YXRlU2NyaXB0OkAiIUAjJCVeJiooKSBUSElTIElTIE5PVCBWQUxJRCBKQVZBU0NSSVBUIFNZ
TlRBWCAhQCMkJV4mKigpIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAiY29udGV4dC5leGNlcHRp
b24iLCBjb250ZXh0LmV4Y2VwdGlvbik7CiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7
Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBh
bGxvY10gaW5pdF07CiAgICAgICAgIF9fYmxvY2sgYm9vbCBjYXVnaHQgPSBmYWxzZTsKICAgICAg
ICAgY29udGV4dC5leGNlcHRpb25IYW5kbGVyID0gXihKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFs
dWUgKmV4Y2VwdGlvbikgewogICAgICAgICAgICAgKHZvaWQpY29udGV4dDsKQEAgLTIwNyw3ICsy
MDcsNyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9j
XSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlND
b250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgY29udGV4dFtAImNhbGxiYWNrIl0gPSBeewog
ICAgICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29udGV4dCBjdXJyZW50Q29udGV4
dF07CiAgICAgICAgICAgICBjb250ZXh0LmV4Y2VwdGlvbiA9IFtKU1ZhbHVlIHZhbHVlV2l0aE5l
d0Vycm9yRnJvbU1lc3NhZ2U6QCJTb21ldGhpbmcgd2VudCB3cm9uZy4iIGluQ29udGV4dDpjb250
ZXh0XTsKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9
CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0g
W1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4
dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgY29udGV4dFtA
ImNhbGxiYWNrIl0gPSBeewogICAgICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29u
dGV4dCBjdXJyZW50Q29udGV4dF07CiAgICAgICAgICAgICBbY29udGV4dCBldmFsdWF0ZVNjcmlw
dDpAIiFAIyQlXiYqKCkgVEhJUyBJUyBOT1QgVkFMSUQgSkFWQVNDUklQVCBTWU5UQVggIUAjJCVe
JiooKSJdOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAg
IH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQg
PSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250
ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBbY29udGV4
dCBldmFsdWF0ZVNjcmlwdDoKICAgICAgICAgICAgIEAiZnVuY3Rpb24gc3VtKGFycmF5KSB7IFwK
ICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gMDsgXApAQCAtMjQ0LDcgKzI0NCw3IEBAIHZv
aWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewot
ICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxs
b2NdIGluaXRdOwogICAgICAgICBKU1ZhbHVlICptdWxBZGRGdW5jdGlvbiA9IFtjb250ZXh0IGV2
YWx1YXRlU2NyaXB0OgogICAgICAgICAgICAgQCIoZnVuY3Rpb24oYXJyYXksIG9iamVjdCkgeyBc
CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOyBcCkBAIC0yNTcsNyArMjU3LDcgQEAg
dm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7
Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOyAgICAgICAgCisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlND
b250ZXh0IGFsbG9jXSBpbml0XTsgICAgICAgIAogICAgICAgICBKU1ZhbHVlICphcnJheSA9IFtK
U1ZhbHVlIHZhbHVlV2l0aE5ld0FycmF5SW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBjaGVj
a1Jlc3VsdChAImFycmF5TGVuZ3RoRW1wdHkiLCBbW2FycmF5W0AibGVuZ3RoIl0gdG9OdW1iZXJd
IHVuc2lnbmVkSW50ZWdlclZhbHVlXSA9PSAwKTsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUxID0g
W0pTVmFsdWUgdmFsdWVXaXRoSW50MzI6NDIgaW5Db250ZXh0OmNvbnRleHRdOwpAQCAtMjg1LDcg
KzI4NSw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVs
ZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxs
b2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tK
U0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBKU1ZhbHVlICpvYmplY3QgPSBbSlNWYWx1
ZSB2YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6Y29udGV4dF07CiAKICAgICAgICAgb2JqZWN0
W0AicG9pbnQiXSA9IEB7IEAieCI6QDEsIEAieSI6QDIgfTsKQEAgLTMwMSw3ICszMDEsNyBAQCB2
b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
LSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBh
dXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFs
bG9jXSBpbml0XTsKICAgICAgICAgVGV4dFhZWiAqdGVzdFhZWiA9IFtbVGV4dFhZWiBhbGxvY10g
aW5pdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0WFlaIl0gPSB0ZXN0WFlaOwogICAgICAgICB0
ZXN0WFlaLnggPSAzOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEko
KQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNv
bnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAg
SlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBb
Y29udGV4dFtAIk9iamVjdCJdW0AicHJvdG90eXBlIl0gZGVmaW5lUHJvcGVydHk6QCJnZXR0ZXJQ
cm9wZXJ0eSIgZGVzY3JpcHRvcjpAewogICAgICAgICAgICAgSlNQcm9wZXJ0eURlc2NyaXB0b3JH
ZXRLZXk6XnsKICAgICAgICAgICAgICAgICByZXR1cm4gW0pTQ29udGV4dCBjdXJyZW50VGhpc11b
QCJ4Il07CkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAg
fQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9
IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRl
eHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIGNvbnRleHRb
QCJjb25jYXRlbmF0ZSJdID0gXnsKICAgICAgICAgICAgIE5TQXJyYXkgKmFyZ3VtZW50cyA9IFtK
U0NvbnRleHQgY3VycmVudEFyZ3VtZW50c107CiAgICAgICAgICAgICBpZiAoIVthcmd1bWVudHMg
Y291bnRdKQpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAg
IH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQg
PSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250
ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBjb250ZXh0
W0AiZm9vIl0gPSBAWUVTOwogICAgICAgICBjaGVja1Jlc3VsdChAIkBZRVMgaXMgYm9vbGVhbiIs
IFtjb250ZXh0W0AiZm9vIl0gaXNCb29sZWFuXSk7CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9
IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAidHlwZW9mIGZvbyJdOwpAQCAtMzUwLDcgKzM1MCw3
IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBv
b2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGlu
aXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRl
eHQgYWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RP
YmplY3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0
T2JqZWN0OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlw
dDpAIlN0cmluZyh0ZXN0T2JqZWN0KSJdOwpAQCAtMzU4LDcgKzM1OCw3IEBAIHZvaWQgdGVzdE9i
amVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBK
U0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNl
XTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRd
OwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3QgdGVzdE9iamVj
dF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwogICAgICAg
ICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlN0cmluZyh0ZXN0
T2JqZWN0Ll9fcHJvdG9fXykiXTsKQEAgLTM2NiwyNyArMzY2LDI3IEBAIHZvaWQgdGVzdE9iamVj
dGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0Nv
bnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsK
KyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwog
ICAgICAgICBjb250ZXh0W0AiVGVzdE9iamVjdCJdID0gW1Rlc3RPYmplY3QgY2xhc3NdOwogICAg
ICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlN0cmluZyhU
ZXN0T2JqZWN0KSJdOwogICAgICAgICBjaGVja1Jlc3VsdChAIlN0cmluZyhUZXN0T2JqZWN0KSIs
IFtyZXN1bHQgaXNFcXVhbFRvT2JqZWN0OkAiW29iamVjdCBUZXN0T2JqZWN0Q29uc3RydWN0b3Jd
Il0pOwogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQg
KmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAg
ICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAg
ICBKU1ZhbHVlKiB2YWx1ZSA9IFtKU1ZhbHVlIHZhbHVlV2l0aE9iamVjdDpbVGVzdE9iamVjdCBj
bGFzc10gaW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBjaGVja1Jlc3VsdChAIlt2YWx1ZSB0
b09iamVjdF0gPT0gW1Rlc3RPYmplY3QgY2xhc3NdIiwgW3ZhbHVlIHRvT2JqZWN0XSA9PSBbVGVz
dE9iamVjdCBjbGFzc10pOwogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAg
ICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxl
YXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGlu
aXRdOwogICAgICAgICBjb250ZXh0W0AiVGVzdE9iamVjdCJdID0gW1Rlc3RPYmplY3QgY2xhc3Nd
OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIlRl
c3RPYmplY3QucGFyZW50VGVzdCgpIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAiVGVzdE9iamVj
dC5wYXJlbnRUZXN0KCkiLCBbcmVzdWx0IGlzRXF1YWxUb09iamVjdDpAIlRlc3RPYmplY3QiXSk7
CiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29u
dGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBK
U0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIFRl
c3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVjdCB0ZXN0T2JqZWN0XTsKICAgICAgICAg
Y29udGV4dFtAInRlc3RPYmplY3RBIl0gPSB0ZXN0T2JqZWN0OwogICAgICAgICBjb250ZXh0W0Ai
dGVzdE9iamVjdEIiXSA9IHRlc3RPYmplY3Q7CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCB0ZXN0
T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAg
IEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVh
c2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5p
dF07CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVjdCB0ZXN0T2Jq
ZWN0XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRlc3RPYmplY3Q7CiAgICAg
ICAgIHRlc3RPYmplY3QucG9pbnQgPSAoQ0dQb2ludCl7Myw0fTsKQEAgLTQwNSw3ICs0MDUsNyBA
QCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29s
IHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0
XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0
IGFsbG9jXSBpbml0XTsKICAgICAgICAgVGVzdE9iamVjdCogdGVzdE9iamVjdCA9IFtUZXN0T2Jq
ZWN0IHRlc3RPYmplY3RdOwogICAgICAgICB0ZXN0T2JqZWN0LnNpeCA9IDY7CiAgICAgICAgIGNv
bnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHZv
aWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewot
ICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxs
b2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3Qg
dGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0
OwogICAgICAgICBjb250ZXh0W0AidGVzdE9iamVjdCJdW0AidmFyaWFibGUiXSA9IEA0OwpAQCAt
NDI0LDIxICs0MjQsMjEgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAg
QGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29u
dGV4dCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRl
eHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIGNvbnRleHRbQCJwb2ludCJd
ID0gQHsgQCJ4IjpANiwgQCJ5IjpANyB9OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBbY29u
dGV4dCBldmFsdWF0ZVNjcmlwdDpAInBvaW50LnggKyAnLCcgKyBwb2ludC55Il07CiAgICAgICAg
IGNoZWNrUmVzdWx0KEAicG9pbnQueCArICcsJyArIHBvaW50LnkiLCBbcmVzdWx0IGlzRXF1YWxU
b09iamVjdDpAIjYsNyJdKTsKICAgICB9CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAg
ICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0IGFsbG9jXSBpbml0XSBhdXRvcmVs
ZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBp
bml0XTsKICAgICAgICAgY29udGV4dFtAInBvaW50Il0gPSBAeyBAIngiOkA2LCBAInkiOkA3IH07
CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAicG9p
bnQueCArICcsJyArIHBvaW50LnkiXTsKICAgICAgICAgY2hlY2tSZXN1bHQoQCJwb2ludC54ICsg
JywnICsgcG9pbnQueSIsIFtyZXN1bHQgaXNFcXVhbFRvT2JqZWN0OkAiNiw3Il0pOwogICAgIH0K
IAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBb
W1tKU0NvbnRleHQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0
ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0
KiB0ZXN0T2JqZWN0ID0gW1Rlc3RPYmplY3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRb
QCJ0ZXN0T2JqZWN0Il0gPSB0ZXN0T2JqZWN0OwogICAgICAgICBKU1ZhbHVlICpyZXN1bHQgPSBb
Y29udGV4dCBldmFsdWF0ZVNjcmlwdDpAInRlc3RPYmplY3QuZ2V0U3RyaW5nKCkiXTsKQEAgLTQ0
Niw3ICs0NDYsNyBAQCB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKCkKICAgICB9CiAKICAgICBAYXV0
b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tbSlNDb250ZXh0
IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9
IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICAgICAgVGVzdE9iamVjdCogdGVzdE9iamVj
dCA9IFtUZXN0T2JqZWN0IHRlc3RPYmplY3RdOwogICAgICAgICBjb250ZXh0W0AidGVzdE9iamVj
dCJdID0gdGVzdE9iamVjdDsKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRleHQgZXZh
bHVhdGVTY3JpcHQ6QCJ0ZXN0T2JqZWN0LnRlc3RBcmd1bWVudFR5cGVzKDEwMSwwLjUsdHJ1ZSwn
Zm9vJyw2NjYsW2ZhbHNlLCdiYXInLGZhbHNlXSx7eDonYmF6J30pIl07CkBAIC00NTQsNyArNDU0
LDcgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNl
cG9vbCB7Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10g
aW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29u
dGV4dCBhbGxvY10gaW5pdF07CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVz
dE9iamVjdCB0ZXN0T2JqZWN0XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRl
c3RPYmplY3Q7CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2Ny
aXB0OkAidGVzdE9iamVjdC5nZXRTdHJpbmcuY2FsbCh0ZXN0T2JqZWN0KSJdOwpAQCAtNDYyLDcg
KzQ2Miw3IEBAIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkoKQogICAgIH0KIAogICAgIEBhdXRvcmVs
ZWFzZXBvb2wgewotICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW1tKU0NvbnRleHQgYWxs
b2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tK
U0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBUZXN0T2JqZWN0KiB0ZXN0T2JqZWN0ID0g
W1Rlc3RPYmplY3QgdGVzdE9iamVjdF07CiAgICAgICAgIGNvbnRleHRbQCJ0ZXN0T2JqZWN0Il0g
PSB0ZXN0T2JqZWN0OwogICAgICAgICBjaGVja1Jlc3VsdChAInRlc3RPYmplY3QuZ2V0U3RyaW5n
LmNhbGwoe30pIHByZSIsICFjb250ZXh0LmV4Y2VwdGlvbik7CkBAIC00NzEsNyArNDcxLDcgQEAg
dm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSgpCiAgICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7
Ci0gICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbW0pTQ29udGV4dCBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworICAgICAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbW0pTQ29udGV4dCBh
bGxvY10gaW5pdF07CiAgICAgICAgIFRlc3RPYmplY3QqIHRlc3RPYmplY3QgPSBbVGVzdE9iamVj
dCB0ZXN0T2JqZWN0XTsKICAgICAgICAgY29udGV4dFtAInRlc3RPYmplY3QiXSA9IHRlc3RPYmpl
Y3Q7CiAgICAgICAgIEpTVmFsdWUgKnJlc3VsdCA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAi
dmFyIHJlc3VsdCA9IDA7IHRlc3RPYmplY3QuY2FsbGJhY2soZnVuY3Rpb24oeCl7IHJlc3VsdCA9
IHg7IH0pOyByZXN1bHQiXTsKQEAgLTQ4Nyw4ICs0ODcsNiBAQCB2b2lkIHRlc3RPYmplY3RpdmVD
QVBJKCkKICAgICAgICAgSlNWYWx1ZSAqcmVzdWx0ID0gW2NvbnRleHQxIGV2YWx1YXRlU2NyaXB0
OkAicGFzc1ZhbHVlQmV0d2VlbkNvbnRleHRzIl07CiAgICAgICAgIGNoZWNrUmVzdWx0KEAicmVz
dWx0LmNvbnRleHQgPT0gY29udGV4dDEiLCByZXN1bHQuY29udGV4dCA9PSBjb250ZXh0MSk7CiAg
ICAgICAgIGNoZWNrUmVzdWx0KEAiW3ZhbHVlIGlzRXF1YWxUb09iamVjdDpyZXN1bHRdIiwgW3Zh
bHVlIGlzRXF1YWxUb09iamVjdDpyZXN1bHRdKTsKLSAgICAgICAgW2NvbnRleHQxIHJlbGVhc2Vd
OwotICAgICAgICBbY29udGV4dDIgcmVsZWFzZV07CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQxODE1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTQxOTIsNiArNDE5MiwxMiBAQAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMDIxQkYyMTM2OTAwQzMwMEZD
NTQ2NyAvKiBUb29sRXhlY3V0YWJsZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCSJDTEFOR19FTkFCTEVfT0JK
Q19BUkNbYXJjaD0qXSIgPSBZRVM7CisJCQkJIkNMQU5HX0VOQUJMRV9PQkpDX0FSQ1thcmNoPWkz
ODZdIiA9IE5POworCQkJCUdDQ19FTkFCTEVfT0JKQ19HQ19tYWNvc3ggPSAiIjsKKwkJCQkiR0ND
X0VOQUJMRV9PQkpDX0dDX21hY29zeFthcmNoPSpdIiA9IE5POworCQkJCSJHQ0NfRU5BQkxFX09C
SkNfR0NfbWFjb3N4W2FyY2g9aTM4Nl0iID0gWUVTOwogCQkJfTsKIAkJCW5hbWUgPSBEZWJ1ZzsK
IAkJfTsKQEAgLTQxOTksNiArNDIwNSwxMiBAQAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMDIxQkYyMTM2OTAwQzMwMEZD
NTQ2NyAvKiBUb29sRXhlY3V0YWJsZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCSJDTEFOR19FTkFCTEVfT0JK
Q19BUkNbYXJjaD0qXSIgPSBZRVM7CisJCQkJIkNMQU5HX0VOQUJMRV9PQkpDX0FSQ1thcmNoPWkz
ODZdIiA9IE5POworCQkJCUdDQ19FTkFCTEVfT0JKQ19HQ19tYWNvc3ggPSAiIjsKKwkJCQkiR0ND
X0VOQUJMRV9PQkpDX0dDX21hY29zeFthcmNoPSpdIiA9IE5POworCQkJCSJHQ0NfRU5BQkxFX09C
SkNfR0NfbWFjb3N4W2FyY2g9aTM4Nl0iID0gWUVTOwogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNl
OwogCQl9OwpAQCAtNDIwNiw2ICs0MjE4LDEyIEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkMwMjFCRjIxMzY5MDBDMzAw
RkM1NDY3IC8qIFRvb2xFeGVjdXRhYmxlLnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJIkNMQU5HX0VOQUJMRV9P
QkpDX0FSQ1thcmNoPSpdIiA9IFlFUzsKKwkJCQkiQ0xBTkdfRU5BQkxFX09CSkNfQVJDW2FyY2g9
aTM4Nl0iID0gTk87CisJCQkJR0NDX0VOQUJMRV9PQkpDX0dDX21hY29zeCA9ICIiOworCQkJCSJH
Q0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4W2FyY2g9Kl0iID0gTk87CisJCQkJIkdDQ19FTkFCTEVf
T0JKQ19HQ19tYWNvc3hbYXJjaD1pMzg2XSIgPSBZRVM7CiAJCQl9OwogCQkJbmFtZSA9IFByb2R1
Y3Rpb247CiAJCX07CkBAIC00MzI3LDYgKzQzNDUsMTIgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25m
aWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQzAyMUJGMjEzNjkw
MEMzMDBGQzU0NjcgLyogVG9vbEV4ZWN1dGFibGUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRp
bmdzID0geworCQkJCUNMQU5HX0VOQUJMRV9PQkpDX0FSQyA9IFlFUzsKKwkJCQkiQ0xBTkdfRU5B
QkxFX09CSkNfQVJDW2FyY2g9Kl0iID0gWUVTOworCQkJCSJDTEFOR19FTkFCTEVfT0JKQ19BUkNb
YXJjaD1pMzg2XSIgPSBOTzsKKwkJCQlHQ0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4ID0gIiI7CisJ
CQkJIkdDQ19FTkFCTEVfT0JKQ19HQ19tYWNvc3hbYXJjaD0qXSIgPSBOTzsKKwkJCQkiR0NDX0VO
QUJMRV9PQkpDX0dDX21hY29zeFthcmNoPWkzODZdIiA9IFlFUzsKIAkJCX07CiAJCQluYW1lID0g
UHJvZmlsaW5nOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187177</attachid>
            <date>2013-02-07 14:30:10 -0800</date>
            <delta_ts>2013-02-07 14:38:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107838-20130207142646.patch</filename>
            <type>text/plain</type>
            <size>3704</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyMTc5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEzLTAyLTA3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiB0ZXN0YXBpLm1tIHNob3VsZCB1c2UgQVJDCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGUg
Y2hhbmdlcyB0byB0aGUgWGNvZGUgcHJvamVjdCBmaWxlIGFuZCBtb3ZpbmcgdGhlIGVxdWl2YWxl
bnQgZmxhZ3MgaW50byAKKyAgICAgICAgdGhlIFRvb2xFeGVjdXRhYmxlIHhjY29uZmlnIGZpbGUu
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9Ub29sRXhlY3V0YWJsZS54Y2NvbmZpZzoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEz
LTAyLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHOjpC
eXRlQ29kZVBhcnNlciBzaG91bGQgZG8gc3VyZ2ljYWwgY29uc3RhbnQgZm9sZGluZyB0byByZWR1
Y2UgbG9hZCBvbiB0aGUgb3B0aW1pemF0aW9uIGZpeHBvaW50CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvVG9vbEV4ZWN1dGFibGUueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL1Rvb2xFeGVjdXRhYmxl
LnhjY29uZmlnCShyZXZpc2lvbiAxNDIxNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29u
ZmlndXJhdGlvbnMvVG9vbEV4ZWN1dGFibGUueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDMgKzMxLDEyIEBAIFNLSVBfSU5TVEFMTCA9ICQoU0tJUF9JTlNUQUxMXyQoRk9SQ0VfVE8KIFNL
SVBfSU5TVEFMTF8gPSBZRVM7CiBTS0lQX0lOU1RBTExfTk8gPSBZRVM7CiBTS0lQX0lOU1RBTExf
WUVTID0gTk87CisKK0dDQ19FTkFCTEVfT0JKQ19HQyA9IE5POworQ0xBTkdfRU5BQkxFX09CSkNf
QVJDID0gJChDTEFOR19FTkFCTEVfT0JKQ19BUkNfJChDVVJSRU5UX0FSQ0gpKQorQ0xBTkdfRU5B
QkxFX09CSkNfQVJDXyA9IE5POworQ0xBTkdfRU5BQkxFX09CSkNfQVJDX2kzODYgPSBOTzsKK0NM
QU5HX0VOQUJMRV9PQkpDX0FSQ19wcGMgPSBOTzsKK0NMQU5HX0VOQUJMRV9PQkpDX0FSQ194ODZf
NjQgPSBZRVM7CitDTEFOR19FTkFCTEVfT0JKQ19BUkNfYXJtdjcgPSBZRVM7CitDTEFOR19FTkFC
TEVfT0JKQ19BUkNfYXJtdjYgPSBZRVM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTQyMTc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQyMDAsMTIg
KzQyMDAsNiBAQAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IEJDMDIxQkYyMTM2OTAwQzMwMEZDNTQ2NyAvKiBUb29sRXhlY3V0
YWJsZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJQ0xBTkdfRU5BQkxF
X09CSkNfQVJDID0gWUVTOwotCQkJCSJDTEFOR19FTkFCTEVfT0JKQ19BUkNbYXJjaD0qXSIgPSBZ
RVM7Ci0JCQkJIkNMQU5HX0VOQUJMRV9PQkpDX0FSQ1thcmNoPWkzODZdIiA9IE5POwotCQkJCUdD
Q19FTkFCTEVfT0JKQ19HQ19tYWNvc3ggPSAiIjsKLQkJCQkiR0NDX0VOQUJMRV9PQkpDX0dDX21h
Y29zeFthcmNoPSpdIiA9IE5POwotCQkJCSJHQ0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4W2FyY2g9
aTM4Nl0iID0gWUVTOwogCQkJfTsKIAkJCW5hbWUgPSBEZWJ1ZzsKIAkJfTsKQEAgLTQyMTMsMTIg
KzQyMDcsNiBAQAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IEJDMDIxQkYyMTM2OTAwQzMwMEZDNTQ2NyAvKiBUb29sRXhlY3V0
YWJsZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJQ0xBTkdfRU5BQkxF
X09CSkNfQVJDID0gWUVTOwotCQkJCSJDTEFOR19FTkFCTEVfT0JKQ19BUkNbYXJjaD0qXSIgPSBZ
RVM7Ci0JCQkJIkNMQU5HX0VOQUJMRV9PQkpDX0FSQ1thcmNoPWkzODZdIiA9IE5POwotCQkJCUdD
Q19FTkFCTEVfT0JKQ19HQ19tYWNvc3ggPSAiIjsKLQkJCQkiR0NDX0VOQUJMRV9PQkpDX0dDX21h
Y29zeFthcmNoPSpdIiA9IE5POwotCQkJCSJHQ0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4W2FyY2g9
aTM4Nl0iID0gWUVTOwogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OwpAQCAtNDIyNiwx
MiArNDIxNCw2IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gQkMwMjFCRjIxMzY5MDBDMzAwRkM1NDY3IC8qIFRvb2xFeGVj
dXRhYmxlLnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDTEFOR19FTkFC
TEVfT0JKQ19BUkMgPSBZRVM7Ci0JCQkJIkNMQU5HX0VOQUJMRV9PQkpDX0FSQ1thcmNoPSpdIiA9
IFlFUzsKLQkJCQkiQ0xBTkdfRU5BQkxFX09CSkNfQVJDW2FyY2g9aTM4Nl0iID0gTk87Ci0JCQkJ
R0NDX0VOQUJMRV9PQkpDX0dDX21hY29zeCA9ICIiOwotCQkJCSJHQ0NfRU5BQkxFX09CSkNfR0Nf
bWFjb3N4W2FyY2g9Kl0iID0gTk87Ci0JCQkJIkdDQ19FTkFCTEVfT0JKQ19HQ19tYWNvc3hbYXJj
aD1pMzg2XSIgPSBZRVM7CiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CkBAIC00
MzUzLDEyICs0MzM1LDYgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQzAyMUJGMjEzNjkwMEMzMDBGQzU0NjcgLyogVG9v
bEV4ZWN1dGFibGUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0gewotCQkJCUNMQU5H
X0VOQUJMRV9PQkpDX0FSQyA9IFlFUzsKLQkJCQkiQ0xBTkdfRU5BQkxFX09CSkNfQVJDW2FyY2g9
Kl0iID0gWUVTOwotCQkJCSJDTEFOR19FTkFCTEVfT0JKQ19BUkNbYXJjaD1pMzg2XSIgPSBOTzsK
LQkJCQlHQ0NfRU5BQkxFX09CSkNfR0NfbWFjb3N4ID0gIiI7Ci0JCQkJIkdDQ19FTkFCTEVfT0JK
Q19HQ19tYWNvc3hbYXJjaD0qXSIgPSBOTzsKLQkJCQkiR0NDX0VOQUJMRV9PQkpDX0dDX21hY29z
eFthcmNoPWkzODZdIiA9IFlFUzsKIAkJCX07CiAJCQluYW1lID0gUHJvZmlsaW5nOwogCQl9Owo=
</data>
<flag name="review"
          id="206899"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>