<?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>49768</bug_id>
          
          <creation_ts>2010-11-18 16:22:23 -0800</creation_ts>
          <short_desc>nrwt multiprocessing - add &apos;worker number&apos; concept, move stuff to worker thread</short_desc>
          <delta_ts>2010-11-19 17:50:07 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>49566</blocked>
    
    <blocked>49779</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>311159</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-18 16:22:23 -0800</bug_when>
    <thetext>nrwt multiprocessing - add &apos;worker number&apos; concept, move stuff to worker thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311161</commentid>
    <comment_count>1</comment_count>
      <attachid>74316</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-18 16:24:01 -0800</bug_when>
    <thetext>Created attachment 74316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311170</commentid>
    <comment_count>2</comment_count>
      <attachid>74321</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-18 16:42:42 -0800</bug_when>
    <thetext>Created attachment 74321
minor cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311210</commentid>
    <comment_count>3</comment_count>
      <attachid>74321</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-18 17:44:17 -0800</bug_when>
    <thetext>Comment on attachment 74321
minor cleanup

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

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:55
&gt; +from webkitpy.layout_tests.test_types import test_type_base
&gt; +from webkitpy.layout_tests.test_types import text_diff
&gt; +from webkitpy.layout_tests.test_types import image_diff

Nit: Sort alphabetically

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:486
&gt; +                                  self._worker_number,
&gt; +                                  self._name,

It seems redundant to have to pass worker number and worker name.  Are there cases where you can&apos;t derive the name from the number?  Maybe there should just be a static function somewhere that converts number to name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311223</commentid>
    <comment_count>4</comment_count>
      <attachid>74335</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-18 18:19:25 -0800</bug_when>
    <thetext>Created attachment 74335
review feedback - sort imports alphabetically</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311226</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-18 18:21:31 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 74321 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74321&amp;action=review
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:55
&gt; &gt; +from webkitpy.layout_tests.test_types import test_type_base
&gt; &gt; +from webkitpy.layout_tests.test_types import text_diff
&gt; &gt; +from webkitpy.layout_tests.test_types import image_diff
&gt; 
&gt; Nit: Sort alphabetically
&gt;

Done.
 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:486
&gt; &gt; +                                  self._worker_number,
&gt; &gt; +                                  self._name,
&gt; 
&gt; It seems redundant to have to pass worker number and worker name.  Are there cases where you can&apos;t derive the name from the number?  Maybe there should just be a static function somewhere that converts number to name?

In fact, if you look at older versions of the rollup patches that&apos;s what I used to have. Then I realized that there&apos;s no reason for SingleTestThread to know that you can derive worker_name from worker_number, and that this better encapsulate things. I&apos;d prefer to leave it as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311521</commentid>
    <comment_count>6</comment_count>
      <attachid>74335</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-19 09:37:42 -0800</bug_when>
    <thetext>Comment on attachment 74335
review feedback - sort imports alphabetically

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

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:171
&gt; +    def __init__(self, port, options, worker_number, worker_name,
&gt; +                 test_input, test_types, test_args):

My main concern with having a separate name and number is that it makes functions with lots of parameters fragile.  Since there&apos;s no compile time checking of parameters, it&apos;s easy to miss a caller and break things when refactoring.

In this case, it&apos;s relatively isolated (only this call takes both), so I don&apos;t feel that strongly about it.  This patch doesn&apos;t use worker_number, do you need it in the future?  Maybe it should be added when it&apos;s used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311523</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-19 09:39:03 -0800</bug_when>
    <thetext>Another option for encapsulating is to make a small class that combines worker name and number.  You could have a getter on the class that derives the name from the number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311543</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-19 10:14:09 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 74335 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74335&amp;action=review
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:171
&gt; &gt; +    def __init__(self, port, options, worker_number, worker_name,
&gt; &gt; +                 test_input, test_types, test_args):
&gt; 
&gt; My main concern with having a separate name and number is that it makes functions with lots of parameters fragile.  Since there&apos;s no compile time checking of parameters, it&apos;s easy to miss a caller and break things when refactoring.
&gt; 

It&apos;s a fair concern. A bunch of these arguments go away in subsequent patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311784</commentid>
    <comment_count>9</comment_count>
      <attachid>74335</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-19 17:50:02 -0800</bug_when>
    <thetext>Comment on attachment 74335
review feedback - sort imports alphabetically

Clearing flags on attachment: 74335

Committed r72458: &lt;http://trac.webkit.org/changeset/72458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311785</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-19 17:50:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74316</attachid>
            <date>2010-11-18 16:24:01 -0800</date>
            <delta_ts>2010-11-18 16:42:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49768-20101118162400.patch</filename>
            <type>text/plain</type>
            <size>13756</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwYjQ4ZWJiMmVmY2RmYmQ1ZGRiYThlOTBlMzhiMGJkYTZjMzExOGY1Li4yNDJkOWUx
ZWJlOGRhZTQ1YjcxNWE5YzM0NzU3OGYyOWRkMmQ4ODQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTAtMTEtMTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCBtdWx0aXByb2Nl
c3NpbmcgLSBhZGQgJ3dvcmtlciBudW1iZXInIGNvbmNlcHQsIG1vdmUgc3R1ZmYgdG8gd29ya2Vy
IHRocmVhZAorCisgICAgICAgIEFkZCB0aGUgJ3dvcmtlciBudW1iZXInIGFuZCAnd29ya2VyIG5h
bWUnIGNvbmNlcHRzIHRvIHRoZSAKKyAgICAgICAgVGVzdFNoZWxsVGhyZWFkIG9iamVjdHMsIGFu
ZCBtb3ZlIHRlc3RfdHlwZXMgYW5kIHRlc3RfYXJncyBmcm9tCisgICAgICAgIHRoZSBUZXN0UnVu
bmVyIHRvIHRoZSBUZXN0U2hlbGxUaHJlYWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzY4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5OgorCisyMDEwLTExLTE4ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IGNyZWF0ZSBmaXJzdCBwYXJ0IG9mICdtZXNzYWdlX2Jyb2tlcicgY2xhc3MgZm9y
IG11bHRpcHJvY2Vzc2luZyBmaXhlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCBkZTk3YWQ0ZThhNzE3ZDQz
Y2I0NzkyOTU5N2E1ZTA2ZmQ2NWU1MDQ1Li4xMzM2YzkzMTA0MjU4YzI1OWY3YWQ1ZWJlMzBjMGEy
MTI5NGY5ZDdmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNDksNiArNDksMTEgQEAgaW1wb3J0IHRocmVh
ZAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIAorCitmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCB0ZXN0X3R5cGVfYmFzZQorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMudGVzdF90eXBlcyBpbXBvcnQgdGV4dF9kaWZmCitmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9kaWZmCisKIGltcG9ydCB0ZXN0X2Zh
aWx1cmVzCiBpbXBvcnQgdGVzdF9vdXRwdXQKIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTY0LDcg
KzY5LDcgQEAgZGVmIF9leHBlY3RlZF90ZXN0X291dHB1dChwb3J0LCBmaWxlbmFtZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5leHBlY3RlZF9jaGVja3N1bShmaWxl
bmFtZSkpCiAKIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywgdGVzdF9pbnB1dCwg
dGVzdF90eXBlcywgdGVzdF9hcmdzLAotICAgICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dCk6
CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfb3V0cHV0LCB3b3JrZXJfbmFtZSk6CiAgICAgIiIi
UmVjZWl2ZXMgdGhlIG91dHB1dCBmcm9tIGEgRHVtcFJlbmRlclRyZWUgcHJvY2Vzcywgc3ViamVj
dHMgaXQgdG8gYQogICAgIG51bWJlciBvZiB0ZXN0cywgYW5kIHJldHVybnMgYSBsaXN0IG9mIGZh
aWx1cmUgdHlwZXMgdGhlIHRlc3QgcHJvZHVjZWQuCiAKQEAgLTc2LDYgKzgxLDcgQEAgZGVmIF9w
cm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0
X2FyZ3MsCiAgICAgICB0ZXN0X3R5cGVzOiBsaXN0IG9mIHRlc3QgdHlwZXMgdG8gc3ViamVjdCB0
aGUgb3V0cHV0IHRvCiAgICAgICB0ZXN0X2FyZ3M6IGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8g
ZWFjaCB0ZXN0CiAgICAgICB0ZXN0X291dHB1dDogYSBUZXN0T3V0cHV0IG9iamVjdCBjb250YWlu
aW5nIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3QKKyAgICAgIHdvcmtlcl9uYW1lOiB3b3JrZXIgbmFt
ZSBmb3IgbG9nZ2luZwogCiAgICAgUmV0dXJuczogYSBUZXN0UmVzdWx0IG9iamVjdAogICAgICIi
IgpAQCAtODYsMjAgKzkyLDIwIEBAIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywg
dGVzdF9pbnB1dCwgdGVzdF90eXBlcywgdGVzdF9hcmdzLAogICAgIGlmIHRlc3Rfb3V0cHV0LnRp
bWVvdXQ6CiAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1l
b3V0KCkpCiAKKyAgICB0ZXN0X25hbWUgPSBwb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVz
dF9pbnB1dC5maWxlbmFtZSkKICAgICBpZiB0ZXN0X291dHB1dC5jcmFzaDoKLSAgICAgICAgX2xv
Zy5kZWJ1ZygiU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAodGVzdF9pbnB1dC5maWxlbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRw
dXQuZXJyb3IpKQorICAgICAgICBfbG9nLmRlYnVnKCIlcyBTdGFja3RyYWNlIGZvciAlczpcbiVz
IiAlICh3b3JrZXJfbmFtZSwgdGVzdF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dC5lcnJvcikpCiAgICAgICAgICMgU3Ry
aXAgb2ZmICJmaWxlOi8vIiBzaW5jZSBSZWxhdGl2ZVRlc3RGaWxlbmFtZSBleHBlY3RzCiAgICAg
ICAgICMgZmlsZXN5c3RlbSBwYXRocy4KLSAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4o
b3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2lucHV0LmZpbGVuYW1lKSkKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRo
LmpvaW4ob3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9uYW1lKQogICAgICAgICBmaWxl
bmFtZSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsgIi1zdGFjay50eHQiCiAgICAg
ICAgIHBvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3MucGF0aC5zcGxpdChmaWxlbmFtZSlbMF0p
CiAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZW5hbWUsICJ3YiIsICJ1dGYtOCIpIGFzIGZp
bGU6CiAgICAgICAgICAgICBmaWxlLndyaXRlKHRlc3Rfb3V0cHV0LmVycm9yKQogICAgIGVsaWYg
dGVzdF9vdXRwdXQuZXJyb3I6Ci0gICAgICAgIF9sb2cuZGVidWcoIlByZXZpb3VzIHRlc3Qgb3V0
cHV0IHN0ZGVyciBsaW5lczpcbiVzIiAlIHRlc3Rfb3V0cHV0LmVycm9yKQorICAgICAgICBfbG9n
LmRlYnVnKCIlcyAlcyBvdXRwdXQgc3RkZXJyIGxpbmVzOlxuJXMiICUgKHdvcmtlcl9uYW1lLCB0
ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9vdXRwdXQuZXJyb3IpKQogCiAgICAgZXhwZWN0ZWRfdGVzdF9vdXRwdXQg
PSBfZXhwZWN0ZWRfdGVzdF9vdXRwdXQocG9ydCwgdGVzdF9pbnB1dC5maWxlbmFtZSkKIApAQCAt
MTQzLDcgKzE0OSw3IEBAIGRlZiBfc2hvdWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKG9wdGlv
bnMpOgogICAgIHJldHVybiBvcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCBub3QgKG9wdGlvbnMubmV3
X2Jhc2VsaW5lIG9yIG9wdGlvbnMucmVzZXRfcmVzdWx0cykKIAogCi1kZWYgX3J1bl9zaW5nbGVf
dGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRy
aXZlcik6CitkZWYgX3J1bl9zaW5nbGVfdGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRyaXZlciwgd29ya2VyX25hbWUpOgogICAgICMgRklYTUU6
IFB1bGwgdGhpcyBpbnRvIFRlc3RTaGVsbFRocmVhZC5fcnVuKCkuCiAKICAgICAjIFRoZSBpbWFn
ZSBoYXNoIGlzIHVzZWQgdG8gYXZvaWQgZG9pbmcgYW4gaW1hZ2UgZHVtcCBpZiB0aGUKQEAgLTE1
NywxNyArMTYzLDIxIEBAIGRlZiBfcnVuX3NpbmdsZV90ZXN0KHBvcnQsIG9wdGlvbnMsIHRlc3Rf
aW5wdXQsIHRlc3RfdHlwZXMsIHRlc3RfYXJncywgZHJpdmVyKToKICAgICB1cmkgPSBwb3J0LmZp
bGVuYW1lX3RvX3VyaSh0ZXN0X2lucHV0LmZpbGVuYW1lKQogICAgIHRlc3Rfb3V0cHV0ID0gZHJp
dmVyLnJ1bl90ZXN0KHVyaSwgdGVzdF9pbnB1dC50aW1lb3V0LCBpbWFnZV9oYXNoX3RvX2RyaXZl
cikKICAgICByZXR1cm4gX3Byb2Nlc3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQs
IHRlc3RfdHlwZXMsIHRlc3RfYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
b3V0cHV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRwdXQsIHdvcmtlcl9u
YW1lKQogCiAKIGNsYXNzIFNpbmdsZVRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAg
IiIiVGhyZWFkIHdyYXBwZXIgZm9yIHJ1bm5pbmcgYSBzaW5nbGUgdGVzdCBmaWxlLiIiIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQsIHRlc3RfdHlw
ZXMsIHRlc3RfYXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHdv
cmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgQXJnczoKICAgICAg
ICAgICBwb3J0OiBvYmplY3QgaW1wbGVtZW50aW5nIHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAg
ICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgYXJndW1lbnQgb2JqZWN0IGZyb20gb3B0cGFyc2UK
KyAgICAgICAgICB3b3JrZXJfbnVtYmVyOiB3b3JrZXIgbnVtYmVyIGZvciB0ZXN0cworICAgICAg
ICAgICAgICAoRklYTUU6IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byBwb3J0LmNyZWF0ZV9kcml2
ZXIoKSkuCisgICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCiAgICAgICAgICAgdGVz
dF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQK
ICAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0CiAgICAgICAgICAgICAgIGFnYWluc3QuCkBAIC0xODEsNiArMTkxLDgg
QEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2Vs
Zi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKICAgICAgICAgc2VsZi5fdGVzdF9hcmdzID0gdGVz
dF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5fd29ya2Vy
X251bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5fbmFtZSA9IHdvcmtlcl9uYW1l
CiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9jb3ZlcmVkX3J1bigpCkBAIC0x
OTMsNyArMjA1LDggQEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToK
ICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHQg
PSBfcnVuX3NpbmdsZV90ZXN0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lucHV0LCBzZWxm
Ll90ZXN0X3R5cGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fdGVzdF9hcmdzLCBzZWxmLl9kcml2ZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2FyZ3MsIHNlbGYuX2RyaXZlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUpCiAg
ICAgICAgIHNlbGYuX2RyaXZlci5zdG9wKCkKIAogICAgIGRlZiBnZXRfdGVzdF9yZXN1bHQoc2Vs
Zik6CkBAIC0yMzYsMjkgKzI0OSwyNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAKIAogY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIGZpbGVuYW1lX2xpc3RfcXVldWUs
IHJlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICAgdGVzdF90eXBlcywgdGVzdF9hcmdzKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgd29ya2VyX251bWJlciwKKyAg
ICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwgcmVzdWx0X3F1ZXVlKToKICAgICAg
ICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRlIGZvciB0aGlzIER1bXBSZW5kZXJU
cmVlIHRocmVhZC4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIHBvcnQ6IGludGVyZmFjZSB0
byBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczogY29tbWFuZCBsaW5lIG9w
dGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQorICAgICAgICAgIHdvcmtlcl9udW1iZXI6IGlk
ZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhyZWFkLgogICAgICAgICAgIGZpbGVu
YW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCBjb250YWlucyBs
aXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1lLCB1cmkpIHBhaXJzLgog
ICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1ZSBjbGFzcyB0aGF0IHdp
bGwgY29udGFpbgogICAgICAgICAgICAgICBzZXJpYWxpemVkIFRlc3RSZXN1bHQgb2JqZWN0cy4K
LSAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0Ci0gICAgICAgICAgICAgIGFnYWluc3QuCi0gICAgICAgICAgdGVzdF9h
cmdzOiBBIFRlc3RBcmd1bWVudHMgb2JqZWN0IHRvIHBhc3MgdG8gZWFjaCBUZXN0VHlwZS4KICAg
ICAgICAgIiIiCiAgICAgICAgIFdhdGNoYWJsZVRocmVhZC5fX2luaXRfXyhzZWxmKQogICAgICAg
ICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAg
ICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorICAgICAgICBzZWxmLl9u
YW1lID0gJ3dvcmtlci0lZCcgJSB3b3JrZXJfbnVtYmVyCiAgICAgICAgIHNlbGYuX2ZpbGVuYW1l
X2xpc3RfcXVldWUgPSBmaWxlbmFtZV9saXN0X3F1ZXVlCiAgICAgICAgIHNlbGYuX3Jlc3VsdF9x
dWV1ZSA9IHJlc3VsdF9xdWV1ZQogICAgICAgICBzZWxmLl9maWxlbmFtZV9saXN0ID0gW10KLSAg
ICAgICAgc2VsZi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKLSAgICAgICAgc2VsZi5fdGVzdF9h
cmdzID0gdGVzdF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKICAgICAgICAgc2Vs
Zi5fdGVzdF9ncm91cF90aW1pbmdfc3RhdHMgPSB7fQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHMgPSBbXQpAQCAtMjY5LDYgKzI4MCwxMiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hh
YmxlVGhyZWFkKToKICAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAg
ICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9IDAKIAorICAgICAgICBzZWxmLl90ZXN0X3R5
cGVzID0gW10KKyAgICAgICAgZm9yIGNscyBpbiBzZWxmLl9nZXRfdGVzdF90eXBlX2NsYXNzZXMo
KToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMuYXBwZW5kKGNscyhzZWxmLl9wb3J0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVz
dWx0c19kaXJlY3RvcnkpKQorICAgICAgICBzZWxmLl90ZXN0X2FyZ3MgPSBzZWxmLl9nZXRfdGVz
dF9hcmdzKHdvcmtlcl9udW1iZXIpCisKICAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9mIHRlc3Rz
IHdlJ3JlIHJ1bm5pbmcuCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCkBAIC0yNzYsNiAr
MjkzLDI2IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAg
ICAjIFRpbWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3Vy
cmVudF9ncm91cC4KICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9u
ZQogCisgICAgZGVmIF9nZXRfdGVzdF9hcmdzKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICAiIiJSZXR1cm5zIHRoZSB0dXBsZSBvZiBhcmd1bWVudHMgZm9yIHRlc3RzIGFuZCBmb3IgRHVt
cFJlbmRlclRyZWUuIiIiCisgICAgICAgIHRlc3RfYXJncyA9IHRlc3RfdHlwZV9iYXNlLlRlc3RB
cmd1bWVudHMoKQorICAgICAgICB0ZXN0X2FyZ3MucG5nX3BhdGggPSBOb25lCisgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHM6CisgICAgICAgICAgICBwbmdfcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBuZ19yZXN1bHQlcy5wbmciICUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIpCisgICAgICAgICAgICB0
ZXN0X2FyZ3MucG5nX3BhdGggPSBwbmdfcGF0aAorICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2Vs
aW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0
X3Jlc3VsdHMgPSBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHMKKworICAgICAgICByZXR1cm4g
dGVzdF9hcmdzCisKKyAgICBkZWYgX2dldF90ZXN0X3R5cGVfY2xhc3NlcyhzZWxmKToKKyAgICAg
ICAgY2xhc3NlcyA9IFt0ZXh0X2RpZmYuVGVzdFRleHREaWZmXQorICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnBpeGVsX3Rlc3RzOgorICAgICAgICAgICAgY2xhc3Nlcy5hcHBlbmQoaW1hZ2VfZGlm
Zi5JbWFnZURpZmYpCisgICAgICAgIHJldHVybiBjbGFzc2VzCisKICAgICBkZWYgZ2V0X3Rlc3Rf
Z3JvdXBfdGltaW5nX3N0YXRzKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIGEgZGljdGlvbmFy
eSBtYXBwaW5nIHRlc3QgZ3JvdXAgdG8gYSB0dXBsZSBvZgogICAgICAgICAobnVtYmVyIG9mIHRl
c3RzIGluIHRoYXQgZ3JvdXAsIHRpbWUgdG8gcnVuIHRoZSB0ZXN0cykiIiIKQEAgLTQ0Nyw2ICs0
ODQsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAg
IiIiCiAgICAgICAgIHdvcmtlciA9IFNpbmdsZVRlc3RUaHJlYWQoc2VsZi5fcG9ydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3Rlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdGVzdF9hcmdzKQpAQCAtNDk2LDcgKzUzNSw3IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChX
YXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSB0aW1lLnRpbWUo
KSArIHRocmVhZF90aW1lb3V0CiAgICAgICAgIHRlc3RfcmVzdWx0ID0gX3J1bl9zaW5nbGVfdGVz
dChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLCB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdF90eXBlcywgc2VsZi5fdGVzdF9hcmdz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyLCBzZWxm
Ll9uYW1lKQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKHRlc3RfcmVzdWx0KQog
ICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHQKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5k
ZXggYjM4MDRmNDcwYmM2M2ZiM2Q1YjdiNjBlYWY3NjkzYTNkOTk4OWE3MS4uOTEyOGFlODU0MmJi
NGNiZDRjOWQ5YTVlOTc5OWVmZjJiNDJiNDhkOSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
CkBAIC03Miw5ICs3Miw2IEBAIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiBmcm9tIGxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIGxh
eW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1w
b3J0IHRlc3RfcmVzdWx0c191cGxvYWRlcgotZnJvbSB0ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9k
aWZmCi1mcm9tIHRlc3RfdHlwZXMgaW1wb3J0IHRleHRfZGlmZgotZnJvbSB0ZXN0X3R5cGVzIGlt
cG9ydCB0ZXN0X3R5cGVfYmFzZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0
IHVzZXIKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eSBpbXBvcnQgc2ltcGxlanNvbgpAQCAtMjU0
LDExICsyNTEsNiBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAjIHNlbGYuX3dlYnNvY2tl
dF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldCgKICAgICAgICAg
IyAgICAgICAgb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdXNlX3Rscz1UcnVlLCBwb3J0PTkz
MjMpCiAKLSAgICAgICAgIyBhIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cwotICAgICAgICBzZWxm
Ll90ZXN0X3R5cGVzID0gW3RleHRfZGlmZi5UZXN0VGV4dERpZmZdCi0gICAgICAgIGlmIG9wdGlv
bnMucGl4ZWxfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLmFwcGVuZChpbWFn
ZV9kaWZmLkltYWdlRGlmZikKLQogICAgICAgICAjIGEgc2V0IG9mIHRlc3QgZmlsZXMsIGFuZCB0
aGUgc2FtZSB0ZXN0cyBhcyBhIGxpc3QKICAgICAgICAgc2VsZi5fdGVzdF9maWxlcyA9IHNldCgp
CiAgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXNfbGlzdCA9IE5vbmUKQEAgLTU1OSwxOSArNTUxLDYg
QEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIGZpbGVuYW1lX3F1ZXVlLnB1dChpdGVt
KQogICAgICAgICByZXR1cm4gZmlsZW5hbWVfcXVldWUKIAotICAgIGRlZiBfZ2V0X3Rlc3RfYXJn
cyhzZWxmLCBpbmRleCk6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIHR1cGxlIG9mIGFyZ3VtZW50
cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1wUmVuZGVyVHJlZS4iIiIKLSAgICAgICAgdGVzdF9hcmdz
ID0gdGVzdF90eXBlX2Jhc2UuVGVzdEFyZ3VtZW50cygpCi0gICAgICAgIHRlc3RfYXJncy5wbmdf
cGF0aCA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKLSAgICAg
ICAgICAgIHBuZ19wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJl
Y3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG5nX3Jlc3VsdCVz
LnBuZyIgJSBpbmRleCkKLSAgICAgICAgICAgIHRlc3RfYXJncy5wbmdfcGF0aCA9IHBuZ19wYXRo
Ci0gICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgPSBzZWxmLl9vcHRpb25zLm5ld19iYXNl
bGluZQotICAgICAgICB0ZXN0X2FyZ3MucmVzZXRfcmVzdWx0cyA9IHNlbGYuX29wdGlvbnMucmVz
ZXRfcmVzdWx0cwotCi0gICAgICAgIHJldHVybiB0ZXN0X2FyZ3MKLQogICAgIGRlZiBfY29udGFp
bnNfdGVzdHMoc2VsZiwgc3ViZGlyKToKICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiBzZWxmLl90
ZXN0X2ZpbGVzOgogICAgICAgICAgICAgaWYgdGVzdF9maWxlLmZpbmQoc3ViZGlyKSA+PSAwOgpA
QCAtNTg5LDE3ICs1NjgsMTAgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKIAogICAgICAgICAjIEluc3Rh
bnRpYXRlIFRlc3RTaGVsbFRocmVhZHMgYW5kIHN0YXJ0IHRoZW0uCiAgICAgICAgIHRocmVhZHMg
PSBbXQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJv
Y2Vzc2VzKSk6Ci0gICAgICAgICAgICAjIENyZWF0ZSBzZXBhcmF0ZSBUZXN0VHlwZXMgaW5zdGFu
Y2VzIGZvciBlYWNoIHRocmVhZC4KLSAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBbXQotICAgICAg
ICAgICAgZm9yIHRlc3RfdHlwZSBpbiBzZWxmLl90ZXN0X3R5cGVzOgotICAgICAgICAgICAgICAg
IHRlc3RfdHlwZXMuYXBwZW5kKHRlc3RfdHlwZShzZWxmLl9wb3J0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSkpCi0K
LSAgICAgICAgICAgIHRlc3RfYXJncyA9IHNlbGYuX2dldF90ZXN0X2FyZ3MoaSkKKyAgICAgICAg
Zm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nl
c3NlcykpOgogICAgICAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVz
dFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywg
ZmlsZW5hbWVfcXVldWUsIHNlbGYuX3Jlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICB0ZXN0
X3R5cGVzLCB0ZXN0X2FyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2Vy
X251bWJlciwKKyAgICAgICAgICAgICAgICBmaWxlbmFtZV9xdWV1ZSwgc2VsZi5fcmVzdWx0X3F1
ZXVlKQogICAgICAgICAgICAgaWYgc2VsZi5faXNfc2luZ2xlX3RocmVhZGVkKCk6CiAgICAgICAg
ICAgICAgICAgdGhyZWFkLnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLCByZXN1bHRfc3VtbWFyeSkK
ICAgICAgICAgICAgIGVsc2U6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74321</attachid>
            <date>2010-11-18 16:42:42 -0800</date>
            <delta_ts>2010-11-18 18:19:21 -0800</delta_ts>
            <desc>minor cleanup</desc>
            <filename>bug-49768-20101118164241.patch</filename>
            <type>text/plain</type>
            <size>13756</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwYjQ4ZWJiMmVmY2RmYmQ1ZGRiYThlOTBlMzhiMGJkYTZjMzExOGY1Li4yNDJkOWUx
ZWJlOGRhZTQ1YjcxNWE5YzM0NzU3OGYyOWRkMmQ4ODQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTAtMTEtMTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCBtdWx0aXByb2Nl
c3NpbmcgLSBhZGQgJ3dvcmtlciBudW1iZXInIGNvbmNlcHQsIG1vdmUgc3R1ZmYgdG8gd29ya2Vy
IHRocmVhZAorCisgICAgICAgIEFkZCB0aGUgJ3dvcmtlciBudW1iZXInIGFuZCAnd29ya2VyIG5h
bWUnIGNvbmNlcHRzIHRvIHRoZSAKKyAgICAgICAgVGVzdFNoZWxsVGhyZWFkIG9iamVjdHMsIGFu
ZCBtb3ZlIHRlc3RfdHlwZXMgYW5kIHRlc3RfYXJncyBmcm9tCisgICAgICAgIHRoZSBUZXN0UnVu
bmVyIHRvIHRoZSBUZXN0U2hlbGxUaHJlYWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzY4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5OgorCisyMDEwLTExLTE4ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IGNyZWF0ZSBmaXJzdCBwYXJ0IG9mICdtZXNzYWdlX2Jyb2tlcicgY2xhc3MgZm9y
IG11bHRpcHJvY2Vzc2luZyBmaXhlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCBkZTk3YWQ0ZThhNzE3ZDQz
Y2I0NzkyOTU5N2E1ZTA2ZmQ2NWU1MDQ1Li5kYjQxMTc1MDcyZTAzOTY5ZTVjODU3MTYxMjcyYjQx
YTM5Mzk2NjAyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNDksNiArNDksMTEgQEAgaW1wb3J0IHRocmVh
ZAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIAorCitmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCB0ZXN0X3R5cGVfYmFzZQorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMudGVzdF90eXBlcyBpbXBvcnQgdGV4dF9kaWZmCitmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9kaWZmCisKIGltcG9ydCB0ZXN0X2Zh
aWx1cmVzCiBpbXBvcnQgdGVzdF9vdXRwdXQKIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTY0LDcg
KzY5LDcgQEAgZGVmIF9leHBlY3RlZF90ZXN0X291dHB1dChwb3J0LCBmaWxlbmFtZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5leHBlY3RlZF9jaGVja3N1bShmaWxl
bmFtZSkpCiAKIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywgdGVzdF9pbnB1dCwg
dGVzdF90eXBlcywgdGVzdF9hcmdzLAotICAgICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dCk6
CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfb3V0cHV0LCB3b3JrZXJfbmFtZSk6CiAgICAgIiIi
UmVjZWl2ZXMgdGhlIG91dHB1dCBmcm9tIGEgRHVtcFJlbmRlclRyZWUgcHJvY2Vzcywgc3ViamVj
dHMgaXQgdG8gYQogICAgIG51bWJlciBvZiB0ZXN0cywgYW5kIHJldHVybnMgYSBsaXN0IG9mIGZh
aWx1cmUgdHlwZXMgdGhlIHRlc3QgcHJvZHVjZWQuCiAKQEAgLTc2LDYgKzgxLDcgQEAgZGVmIF9w
cm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0
X2FyZ3MsCiAgICAgICB0ZXN0X3R5cGVzOiBsaXN0IG9mIHRlc3QgdHlwZXMgdG8gc3ViamVjdCB0
aGUgb3V0cHV0IHRvCiAgICAgICB0ZXN0X2FyZ3M6IGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8g
ZWFjaCB0ZXN0CiAgICAgICB0ZXN0X291dHB1dDogYSBUZXN0T3V0cHV0IG9iamVjdCBjb250YWlu
aW5nIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3QKKyAgICAgIHdvcmtlcl9uYW1lOiB3b3JrZXIgbmFt
ZSBmb3IgbG9nZ2luZwogCiAgICAgUmV0dXJuczogYSBUZXN0UmVzdWx0IG9iamVjdAogICAgICIi
IgpAQCAtODYsMjAgKzkyLDE4IEBAIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywg
dGVzdF9pbnB1dCwgdGVzdF90eXBlcywgdGVzdF9hcmdzLAogICAgIGlmIHRlc3Rfb3V0cHV0LnRp
bWVvdXQ6CiAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1l
b3V0KCkpCiAKKyAgICB0ZXN0X25hbWUgPSBwb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVz
dF9pbnB1dC5maWxlbmFtZSkKICAgICBpZiB0ZXN0X291dHB1dC5jcmFzaDoKLSAgICAgICAgX2xv
Zy5kZWJ1ZygiU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAodGVzdF9pbnB1dC5maWxlbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRw
dXQuZXJyb3IpKQotICAgICAgICAjIFN0cmlwIG9mZiAiZmlsZTovLyIgc2luY2UgUmVsYXRpdmVU
ZXN0RmlsZW5hbWUgZXhwZWN0cwotICAgICAgICAjIGZpbGVzeXN0ZW0gcGF0aHMuCi0gICAgICAg
IGZpbGVuYW1lID0gb3MucGF0aC5qb2luKG9wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5maWxlbmFtZSkpCisg
ICAgICAgIF9sb2cuZGVidWcoIiVzIFN0YWNrdHJhY2UgZm9yICVzOlxuJXMiICUgKHdvcmtlcl9u
YW1lLCB0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3Rfb3V0cHV0LmVycm9yKSkKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRo
LmpvaW4ob3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9uYW1lKQogICAgICAgICBmaWxl
bmFtZSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsgIi1zdGFjay50eHQiCiAgICAg
ICAgIHBvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3MucGF0aC5zcGxpdChmaWxlbmFtZSlbMF0p
CiAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZW5hbWUsICJ3YiIsICJ1dGYtOCIpIGFzIGZp
bGU6CiAgICAgICAgICAgICBmaWxlLndyaXRlKHRlc3Rfb3V0cHV0LmVycm9yKQogICAgIGVsaWYg
dGVzdF9vdXRwdXQuZXJyb3I6Ci0gICAgICAgIF9sb2cuZGVidWcoIlByZXZpb3VzIHRlc3Qgb3V0
cHV0IHN0ZGVyciBsaW5lczpcbiVzIiAlIHRlc3Rfb3V0cHV0LmVycm9yKQorICAgICAgICBfbG9n
LmRlYnVnKCIlcyAlcyBvdXRwdXQgc3RkZXJyIGxpbmVzOlxuJXMiICUgKHdvcmtlcl9uYW1lLCB0
ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9vdXRwdXQuZXJyb3IpKQogCiAgICAgZXhwZWN0ZWRfdGVzdF9vdXRwdXQg
PSBfZXhwZWN0ZWRfdGVzdF9vdXRwdXQocG9ydCwgdGVzdF9pbnB1dC5maWxlbmFtZSkKIApAQCAt
MTQzLDcgKzE0Nyw3IEBAIGRlZiBfc2hvdWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKG9wdGlv
bnMpOgogICAgIHJldHVybiBvcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCBub3QgKG9wdGlvbnMubmV3
X2Jhc2VsaW5lIG9yIG9wdGlvbnMucmVzZXRfcmVzdWx0cykKIAogCi1kZWYgX3J1bl9zaW5nbGVf
dGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRy
aXZlcik6CitkZWYgX3J1bl9zaW5nbGVfdGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRyaXZlciwgd29ya2VyX25hbWUpOgogICAgICMgRklYTUU6
IFB1bGwgdGhpcyBpbnRvIFRlc3RTaGVsbFRocmVhZC5fcnVuKCkuCiAKICAgICAjIFRoZSBpbWFn
ZSBoYXNoIGlzIHVzZWQgdG8gYXZvaWQgZG9pbmcgYW4gaW1hZ2UgZHVtcCBpZiB0aGUKQEAgLTE1
NywxNyArMTYxLDIxIEBAIGRlZiBfcnVuX3NpbmdsZV90ZXN0KHBvcnQsIG9wdGlvbnMsIHRlc3Rf
aW5wdXQsIHRlc3RfdHlwZXMsIHRlc3RfYXJncywgZHJpdmVyKToKICAgICB1cmkgPSBwb3J0LmZp
bGVuYW1lX3RvX3VyaSh0ZXN0X2lucHV0LmZpbGVuYW1lKQogICAgIHRlc3Rfb3V0cHV0ID0gZHJp
dmVyLnJ1bl90ZXN0KHVyaSwgdGVzdF9pbnB1dC50aW1lb3V0LCBpbWFnZV9oYXNoX3RvX2RyaXZl
cikKICAgICByZXR1cm4gX3Byb2Nlc3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQs
IHRlc3RfdHlwZXMsIHRlc3RfYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
b3V0cHV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRwdXQsIHdvcmtlcl9u
YW1lKQogCiAKIGNsYXNzIFNpbmdsZVRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAg
IiIiVGhyZWFkIHdyYXBwZXIgZm9yIHJ1bm5pbmcgYSBzaW5nbGUgdGVzdCBmaWxlLiIiIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQsIHRlc3RfdHlw
ZXMsIHRlc3RfYXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHdv
cmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgQXJnczoKICAgICAg
ICAgICBwb3J0OiBvYmplY3QgaW1wbGVtZW50aW5nIHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAg
ICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgYXJndW1lbnQgb2JqZWN0IGZyb20gb3B0cGFyc2UK
KyAgICAgICAgICB3b3JrZXJfbnVtYmVyOiB3b3JrZXIgbnVtYmVyIGZvciB0ZXN0cworICAgICAg
ICAgICAgICAoRklYTUU6IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byBwb3J0LmNyZWF0ZV9kcml2
ZXIoKSkuCisgICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCiAgICAgICAgICAgdGVz
dF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQK
ICAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0CiAgICAgICAgICAgICAgIGFnYWluc3QuCkBAIC0xODEsNiArMTg5LDgg
QEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2Vs
Zi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKICAgICAgICAgc2VsZi5fdGVzdF9hcmdzID0gdGVz
dF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5fd29ya2Vy
X251bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5fbmFtZSA9IHdvcmtlcl9uYW1l
CiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9jb3ZlcmVkX3J1bigpCkBAIC0x
OTMsNyArMjAzLDggQEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToK
ICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHQg
PSBfcnVuX3NpbmdsZV90ZXN0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lucHV0LCBzZWxm
Ll90ZXN0X3R5cGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fdGVzdF9hcmdzLCBzZWxmLl9kcml2ZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2FyZ3MsIHNlbGYuX2RyaXZlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUpCiAg
ICAgICAgIHNlbGYuX2RyaXZlci5zdG9wKCkKIAogICAgIGRlZiBnZXRfdGVzdF9yZXN1bHQoc2Vs
Zik6CkBAIC0yMzYsMjkgKzI0NywyNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAKIAogY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIGZpbGVuYW1lX2xpc3RfcXVldWUs
IHJlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICAgdGVzdF90eXBlcywgdGVzdF9hcmdzKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgd29ya2VyX251bWJlciwKKyAg
ICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwgcmVzdWx0X3F1ZXVlKToKICAgICAg
ICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRlIGZvciB0aGlzIER1bXBSZW5kZXJU
cmVlIHRocmVhZC4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIHBvcnQ6IGludGVyZmFjZSB0
byBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczogY29tbWFuZCBsaW5lIG9w
dGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQorICAgICAgICAgIHdvcmtlcl9udW1iZXI6IGlk
ZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhyZWFkLgogICAgICAgICAgIGZpbGVu
YW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCBjb250YWlucyBs
aXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1lLCB1cmkpIHBhaXJzLgog
ICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1ZSBjbGFzcyB0aGF0IHdp
bGwgY29udGFpbgogICAgICAgICAgICAgICBzZXJpYWxpemVkIFRlc3RSZXN1bHQgb2JqZWN0cy4K
LSAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0Ci0gICAgICAgICAgICAgIGFnYWluc3QuCi0gICAgICAgICAgdGVzdF9h
cmdzOiBBIFRlc3RBcmd1bWVudHMgb2JqZWN0IHRvIHBhc3MgdG8gZWFjaCBUZXN0VHlwZS4KICAg
ICAgICAgIiIiCiAgICAgICAgIFdhdGNoYWJsZVRocmVhZC5fX2luaXRfXyhzZWxmKQogICAgICAg
ICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAg
ICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorICAgICAgICBzZWxmLl9u
YW1lID0gJ3dvcmtlci0lZCcgJSB3b3JrZXJfbnVtYmVyCiAgICAgICAgIHNlbGYuX2ZpbGVuYW1l
X2xpc3RfcXVldWUgPSBmaWxlbmFtZV9saXN0X3F1ZXVlCiAgICAgICAgIHNlbGYuX3Jlc3VsdF9x
dWV1ZSA9IHJlc3VsdF9xdWV1ZQogICAgICAgICBzZWxmLl9maWxlbmFtZV9saXN0ID0gW10KLSAg
ICAgICAgc2VsZi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKLSAgICAgICAgc2VsZi5fdGVzdF9h
cmdzID0gdGVzdF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKICAgICAgICAgc2Vs
Zi5fdGVzdF9ncm91cF90aW1pbmdfc3RhdHMgPSB7fQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHMgPSBbXQpAQCAtMjY5LDYgKzI3OCwxMiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hh
YmxlVGhyZWFkKToKICAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAg
ICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9IDAKIAorICAgICAgICBzZWxmLl90ZXN0X3R5
cGVzID0gW10KKyAgICAgICAgZm9yIGNscyBpbiBzZWxmLl9nZXRfdGVzdF90eXBlX2NsYXNzZXMo
KToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMuYXBwZW5kKGNscyhzZWxmLl9wb3J0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVz
dWx0c19kaXJlY3RvcnkpKQorICAgICAgICBzZWxmLl90ZXN0X2FyZ3MgPSBzZWxmLl9nZXRfdGVz
dF9hcmdzKHdvcmtlcl9udW1iZXIpCisKICAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9mIHRlc3Rz
IHdlJ3JlIHJ1bm5pbmcuCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCkBAIC0yNzYsNiAr
MjkxLDI2IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAg
ICAjIFRpbWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3Vy
cmVudF9ncm91cC4KICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9u
ZQogCisgICAgZGVmIF9nZXRfdGVzdF9hcmdzKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICAiIiJSZXR1cm5zIHRoZSB0dXBsZSBvZiBhcmd1bWVudHMgZm9yIHRlc3RzIGFuZCBmb3IgRHVt
cFJlbmRlclRyZWUuIiIiCisgICAgICAgIHRlc3RfYXJncyA9IHRlc3RfdHlwZV9iYXNlLlRlc3RB
cmd1bWVudHMoKQorICAgICAgICB0ZXN0X2FyZ3MucG5nX3BhdGggPSBOb25lCisgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHM6CisgICAgICAgICAgICBwbmdfcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBuZ19yZXN1bHQlcy5wbmciICUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIpCisgICAgICAgICAgICB0
ZXN0X2FyZ3MucG5nX3BhdGggPSBwbmdfcGF0aAorICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2Vs
aW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0
X3Jlc3VsdHMgPSBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHMKKworICAgICAgICByZXR1cm4g
dGVzdF9hcmdzCisKKyAgICBkZWYgX2dldF90ZXN0X3R5cGVfY2xhc3NlcyhzZWxmKToKKyAgICAg
ICAgY2xhc3NlcyA9IFt0ZXh0X2RpZmYuVGVzdFRleHREaWZmXQorICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnBpeGVsX3Rlc3RzOgorICAgICAgICAgICAgY2xhc3Nlcy5hcHBlbmQoaW1hZ2VfZGlm
Zi5JbWFnZURpZmYpCisgICAgICAgIHJldHVybiBjbGFzc2VzCisKICAgICBkZWYgZ2V0X3Rlc3Rf
Z3JvdXBfdGltaW5nX3N0YXRzKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIGEgZGljdGlvbmFy
eSBtYXBwaW5nIHRlc3QgZ3JvdXAgdG8gYSB0dXBsZSBvZgogICAgICAgICAobnVtYmVyIG9mIHRl
c3RzIGluIHRoYXQgZ3JvdXAsIHRpbWUgdG8gcnVuIHRoZSB0ZXN0cykiIiIKQEAgLTQ0Nyw2ICs0
ODIsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAg
IiIiCiAgICAgICAgIHdvcmtlciA9IFNpbmdsZVRlc3RUaHJlYWQoc2VsZi5fcG9ydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3Rlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdGVzdF9hcmdzKQpAQCAtNDk2LDcgKzUzMyw3IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChX
YXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSB0aW1lLnRpbWUo
KSArIHRocmVhZF90aW1lb3V0CiAgICAgICAgIHRlc3RfcmVzdWx0ID0gX3J1bl9zaW5nbGVfdGVz
dChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLCB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdF90eXBlcywgc2VsZi5fdGVzdF9hcmdz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyLCBzZWxm
Ll9uYW1lKQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKHRlc3RfcmVzdWx0KQog
ICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHQKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5k
ZXggYjM4MDRmNDcwYmM2M2ZiM2Q1YjdiNjBlYWY3NjkzYTNkOTk4OWE3MS4uOTEyOGFlODU0MmJi
NGNiZDRjOWQ5YTVlOTc5OWVmZjJiNDJiNDhkOSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
CkBAIC03Miw5ICs3Miw2IEBAIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiBmcm9tIGxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIGxh
eW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1w
b3J0IHRlc3RfcmVzdWx0c191cGxvYWRlcgotZnJvbSB0ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9k
aWZmCi1mcm9tIHRlc3RfdHlwZXMgaW1wb3J0IHRleHRfZGlmZgotZnJvbSB0ZXN0X3R5cGVzIGlt
cG9ydCB0ZXN0X3R5cGVfYmFzZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0
IHVzZXIKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eSBpbXBvcnQgc2ltcGxlanNvbgpAQCAtMjU0
LDExICsyNTEsNiBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAjIHNlbGYuX3dlYnNvY2tl
dF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldCgKICAgICAgICAg
IyAgICAgICAgb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdXNlX3Rscz1UcnVlLCBwb3J0PTkz
MjMpCiAKLSAgICAgICAgIyBhIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cwotICAgICAgICBzZWxm
Ll90ZXN0X3R5cGVzID0gW3RleHRfZGlmZi5UZXN0VGV4dERpZmZdCi0gICAgICAgIGlmIG9wdGlv
bnMucGl4ZWxfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLmFwcGVuZChpbWFn
ZV9kaWZmLkltYWdlRGlmZikKLQogICAgICAgICAjIGEgc2V0IG9mIHRlc3QgZmlsZXMsIGFuZCB0
aGUgc2FtZSB0ZXN0cyBhcyBhIGxpc3QKICAgICAgICAgc2VsZi5fdGVzdF9maWxlcyA9IHNldCgp
CiAgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXNfbGlzdCA9IE5vbmUKQEAgLTU1OSwxOSArNTUxLDYg
QEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIGZpbGVuYW1lX3F1ZXVlLnB1dChpdGVt
KQogICAgICAgICByZXR1cm4gZmlsZW5hbWVfcXVldWUKIAotICAgIGRlZiBfZ2V0X3Rlc3RfYXJn
cyhzZWxmLCBpbmRleCk6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIHR1cGxlIG9mIGFyZ3VtZW50
cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1wUmVuZGVyVHJlZS4iIiIKLSAgICAgICAgdGVzdF9hcmdz
ID0gdGVzdF90eXBlX2Jhc2UuVGVzdEFyZ3VtZW50cygpCi0gICAgICAgIHRlc3RfYXJncy5wbmdf
cGF0aCA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKLSAgICAg
ICAgICAgIHBuZ19wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJl
Y3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG5nX3Jlc3VsdCVz
LnBuZyIgJSBpbmRleCkKLSAgICAgICAgICAgIHRlc3RfYXJncy5wbmdfcGF0aCA9IHBuZ19wYXRo
Ci0gICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgPSBzZWxmLl9vcHRpb25zLm5ld19iYXNl
bGluZQotICAgICAgICB0ZXN0X2FyZ3MucmVzZXRfcmVzdWx0cyA9IHNlbGYuX29wdGlvbnMucmVz
ZXRfcmVzdWx0cwotCi0gICAgICAgIHJldHVybiB0ZXN0X2FyZ3MKLQogICAgIGRlZiBfY29udGFp
bnNfdGVzdHMoc2VsZiwgc3ViZGlyKToKICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiBzZWxmLl90
ZXN0X2ZpbGVzOgogICAgICAgICAgICAgaWYgdGVzdF9maWxlLmZpbmQoc3ViZGlyKSA+PSAwOgpA
QCAtNTg5LDE3ICs1NjgsMTAgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKIAogICAgICAgICAjIEluc3Rh
bnRpYXRlIFRlc3RTaGVsbFRocmVhZHMgYW5kIHN0YXJ0IHRoZW0uCiAgICAgICAgIHRocmVhZHMg
PSBbXQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJv
Y2Vzc2VzKSk6Ci0gICAgICAgICAgICAjIENyZWF0ZSBzZXBhcmF0ZSBUZXN0VHlwZXMgaW5zdGFu
Y2VzIGZvciBlYWNoIHRocmVhZC4KLSAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBbXQotICAgICAg
ICAgICAgZm9yIHRlc3RfdHlwZSBpbiBzZWxmLl90ZXN0X3R5cGVzOgotICAgICAgICAgICAgICAg
IHRlc3RfdHlwZXMuYXBwZW5kKHRlc3RfdHlwZShzZWxmLl9wb3J0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSkpCi0K
LSAgICAgICAgICAgIHRlc3RfYXJncyA9IHNlbGYuX2dldF90ZXN0X2FyZ3MoaSkKKyAgICAgICAg
Zm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nl
c3NlcykpOgogICAgICAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVz
dFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywg
ZmlsZW5hbWVfcXVldWUsIHNlbGYuX3Jlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICB0ZXN0
X3R5cGVzLCB0ZXN0X2FyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2Vy
X251bWJlciwKKyAgICAgICAgICAgICAgICBmaWxlbmFtZV9xdWV1ZSwgc2VsZi5fcmVzdWx0X3F1
ZXVlKQogICAgICAgICAgICAgaWYgc2VsZi5faXNfc2luZ2xlX3RocmVhZGVkKCk6CiAgICAgICAg
ICAgICAgICAgdGhyZWFkLnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLCByZXN1bHRfc3VtbWFyeSkK
ICAgICAgICAgICAgIGVsc2U6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74335</attachid>
            <date>2010-11-18 18:19:25 -0800</date>
            <delta_ts>2010-11-19 17:50:01 -0800</delta_ts>
            <desc>review feedback - sort imports alphabetically</desc>
            <filename>bug-49768-20101118181924.patch</filename>
            <type>text/plain</type>
            <size>13756</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwYjQ4ZWJiMmVmY2RmYmQ1ZGRiYThlOTBlMzhiMGJkYTZjMzExOGY1Li4yNDJkOWUx
ZWJlOGRhZTQ1YjcxNWE5YzM0NzU3OGYyOWRkMmQ4ODQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTAtMTEtMTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCBtdWx0aXByb2Nl
c3NpbmcgLSBhZGQgJ3dvcmtlciBudW1iZXInIGNvbmNlcHQsIG1vdmUgc3R1ZmYgdG8gd29ya2Vy
IHRocmVhZAorCisgICAgICAgIEFkZCB0aGUgJ3dvcmtlciBudW1iZXInIGFuZCAnd29ya2VyIG5h
bWUnIGNvbmNlcHRzIHRvIHRoZSAKKyAgICAgICAgVGVzdFNoZWxsVGhyZWFkIG9iamVjdHMsIGFu
ZCBtb3ZlIHRlc3RfdHlwZXMgYW5kIHRlc3RfYXJncyBmcm9tCisgICAgICAgIHRoZSBUZXN0UnVu
bmVyIHRvIHRoZSBUZXN0U2hlbGxUaHJlYWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzY4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5OgorCisyMDEwLTExLTE4ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IGNyZWF0ZSBmaXJzdCBwYXJ0IG9mICdtZXNzYWdlX2Jyb2tlcicgY2xhc3MgZm9y
IG11bHRpcHJvY2Vzc2luZyBmaXhlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCBkZTk3YWQ0ZThhNzE3ZDQz
Y2I0NzkyOTU5N2E1ZTA2ZmQ2NWU1MDQ1Li45MDE4NzAzYzI0NzJkYTBmY2M0NjlkMzgxZjA2ZWYy
MjBhODUyNTllIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNDksNiArNDksMTEgQEAgaW1wb3J0IHRocmVh
ZAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIAorCitmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9kaWZmCitmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy50ZXN0X3R5cGVzIGltcG9ydCB0ZXN0X3R5cGVfYmFzZQorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMudGVzdF90eXBlcyBpbXBvcnQgdGV4dF9kaWZmCisKIGltcG9ydCB0ZXN0X2Zh
aWx1cmVzCiBpbXBvcnQgdGVzdF9vdXRwdXQKIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTY0LDcg
KzY5LDcgQEAgZGVmIF9leHBlY3RlZF90ZXN0X291dHB1dChwb3J0LCBmaWxlbmFtZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5leHBlY3RlZF9jaGVja3N1bShmaWxl
bmFtZSkpCiAKIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywgdGVzdF9pbnB1dCwg
dGVzdF90eXBlcywgdGVzdF9hcmdzLAotICAgICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dCk6
CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfb3V0cHV0LCB3b3JrZXJfbmFtZSk6CiAgICAgIiIi
UmVjZWl2ZXMgdGhlIG91dHB1dCBmcm9tIGEgRHVtcFJlbmRlclRyZWUgcHJvY2Vzcywgc3ViamVj
dHMgaXQgdG8gYQogICAgIG51bWJlciBvZiB0ZXN0cywgYW5kIHJldHVybnMgYSBsaXN0IG9mIGZh
aWx1cmUgdHlwZXMgdGhlIHRlc3QgcHJvZHVjZWQuCiAKQEAgLTc2LDYgKzgxLDcgQEAgZGVmIF9w
cm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0
X2FyZ3MsCiAgICAgICB0ZXN0X3R5cGVzOiBsaXN0IG9mIHRlc3QgdHlwZXMgdG8gc3ViamVjdCB0
aGUgb3V0cHV0IHRvCiAgICAgICB0ZXN0X2FyZ3M6IGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8g
ZWFjaCB0ZXN0CiAgICAgICB0ZXN0X291dHB1dDogYSBUZXN0T3V0cHV0IG9iamVjdCBjb250YWlu
aW5nIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3QKKyAgICAgIHdvcmtlcl9uYW1lOiB3b3JrZXIgbmFt
ZSBmb3IgbG9nZ2luZwogCiAgICAgUmV0dXJuczogYSBUZXN0UmVzdWx0IG9iamVjdAogICAgICIi
IgpAQCAtODYsMjAgKzkyLDE4IEBAIGRlZiBfcHJvY2Vzc19vdXRwdXQocG9ydCwgb3B0aW9ucywg
dGVzdF9pbnB1dCwgdGVzdF90eXBlcywgdGVzdF9hcmdzLAogICAgIGlmIHRlc3Rfb3V0cHV0LnRp
bWVvdXQ6CiAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1l
b3V0KCkpCiAKKyAgICB0ZXN0X25hbWUgPSBwb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVz
dF9pbnB1dC5maWxlbmFtZSkKICAgICBpZiB0ZXN0X291dHB1dC5jcmFzaDoKLSAgICAgICAgX2xv
Zy5kZWJ1ZygiU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAodGVzdF9pbnB1dC5maWxlbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRw
dXQuZXJyb3IpKQotICAgICAgICAjIFN0cmlwIG9mZiAiZmlsZTovLyIgc2luY2UgUmVsYXRpdmVU
ZXN0RmlsZW5hbWUgZXhwZWN0cwotICAgICAgICAjIGZpbGVzeXN0ZW0gcGF0aHMuCi0gICAgICAg
IGZpbGVuYW1lID0gb3MucGF0aC5qb2luKG9wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5maWxlbmFtZSkpCisg
ICAgICAgIF9sb2cuZGVidWcoIiVzIFN0YWNrdHJhY2UgZm9yICVzOlxuJXMiICUgKHdvcmtlcl9u
YW1lLCB0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3Rfb3V0cHV0LmVycm9yKSkKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRo
LmpvaW4ob3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9uYW1lKQogICAgICAgICBmaWxl
bmFtZSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsgIi1zdGFjay50eHQiCiAgICAg
ICAgIHBvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3MucGF0aC5zcGxpdChmaWxlbmFtZSlbMF0p
CiAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZW5hbWUsICJ3YiIsICJ1dGYtOCIpIGFzIGZp
bGU6CiAgICAgICAgICAgICBmaWxlLndyaXRlKHRlc3Rfb3V0cHV0LmVycm9yKQogICAgIGVsaWYg
dGVzdF9vdXRwdXQuZXJyb3I6Ci0gICAgICAgIF9sb2cuZGVidWcoIlByZXZpb3VzIHRlc3Qgb3V0
cHV0IHN0ZGVyciBsaW5lczpcbiVzIiAlIHRlc3Rfb3V0cHV0LmVycm9yKQorICAgICAgICBfbG9n
LmRlYnVnKCIlcyAlcyBvdXRwdXQgc3RkZXJyIGxpbmVzOlxuJXMiICUgKHdvcmtlcl9uYW1lLCB0
ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9vdXRwdXQuZXJyb3IpKQogCiAgICAgZXhwZWN0ZWRfdGVzdF9vdXRwdXQg
PSBfZXhwZWN0ZWRfdGVzdF9vdXRwdXQocG9ydCwgdGVzdF9pbnB1dC5maWxlbmFtZSkKIApAQCAt
MTQzLDcgKzE0Nyw3IEBAIGRlZiBfc2hvdWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKG9wdGlv
bnMpOgogICAgIHJldHVybiBvcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCBub3QgKG9wdGlvbnMubmV3
X2Jhc2VsaW5lIG9yIG9wdGlvbnMucmVzZXRfcmVzdWx0cykKIAogCi1kZWYgX3J1bl9zaW5nbGVf
dGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRy
aXZlcik6CitkZWYgX3J1bl9zaW5nbGVfdGVzdChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGRyaXZlciwgd29ya2VyX25hbWUpOgogICAgICMgRklYTUU6
IFB1bGwgdGhpcyBpbnRvIFRlc3RTaGVsbFRocmVhZC5fcnVuKCkuCiAKICAgICAjIFRoZSBpbWFn
ZSBoYXNoIGlzIHVzZWQgdG8gYXZvaWQgZG9pbmcgYW4gaW1hZ2UgZHVtcCBpZiB0aGUKQEAgLTE1
NywxNyArMTYxLDIxIEBAIGRlZiBfcnVuX3NpbmdsZV90ZXN0KHBvcnQsIG9wdGlvbnMsIHRlc3Rf
aW5wdXQsIHRlc3RfdHlwZXMsIHRlc3RfYXJncywgZHJpdmVyKToKICAgICB1cmkgPSBwb3J0LmZp
bGVuYW1lX3RvX3VyaSh0ZXN0X2lucHV0LmZpbGVuYW1lKQogICAgIHRlc3Rfb3V0cHV0ID0gZHJp
dmVyLnJ1bl90ZXN0KHVyaSwgdGVzdF9pbnB1dC50aW1lb3V0LCBpbWFnZV9oYXNoX3RvX2RyaXZl
cikKICAgICByZXR1cm4gX3Byb2Nlc3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQs
IHRlc3RfdHlwZXMsIHRlc3RfYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
b3V0cHV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRwdXQsIHdvcmtlcl9u
YW1lKQogCiAKIGNsYXNzIFNpbmdsZVRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAg
IiIiVGhyZWFkIHdyYXBwZXIgZm9yIHJ1bm5pbmcgYSBzaW5nbGUgdGVzdCBmaWxlLiIiIgogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQsIHRlc3RfdHlw
ZXMsIHRlc3RfYXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHdv
cmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LCB0
ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgQXJnczoKICAgICAg
ICAgICBwb3J0OiBvYmplY3QgaW1wbGVtZW50aW5nIHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAg
ICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgYXJndW1lbnQgb2JqZWN0IGZyb20gb3B0cGFyc2UK
KyAgICAgICAgICB3b3JrZXJfbnVtYmVyOiB3b3JrZXIgbnVtYmVyIGZvciB0ZXN0cworICAgICAg
ICAgICAgICAoRklYTUU6IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byBwb3J0LmNyZWF0ZV9kcml2
ZXIoKSkuCisgICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCiAgICAgICAgICAgdGVz
dF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQK
ICAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0CiAgICAgICAgICAgICAgIGFnYWluc3QuCkBAIC0xODEsNiArMTg5LDgg
QEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2Vs
Zi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKICAgICAgICAgc2VsZi5fdGVzdF9hcmdzID0gdGVz
dF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5fd29ya2Vy
X251bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5fbmFtZSA9IHdvcmtlcl9uYW1l
CiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9jb3ZlcmVkX3J1bigpCkBAIC0x
OTMsNyArMjAzLDggQEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToK
ICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHQg
PSBfcnVuX3NpbmdsZV90ZXN0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lucHV0LCBzZWxm
Ll90ZXN0X3R5cGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fdGVzdF9hcmdzLCBzZWxmLl9kcml2ZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2FyZ3MsIHNlbGYuX2RyaXZlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUpCiAg
ICAgICAgIHNlbGYuX2RyaXZlci5zdG9wKCkKIAogICAgIGRlZiBnZXRfdGVzdF9yZXN1bHQoc2Vs
Zik6CkBAIC0yMzYsMjkgKzI0NywyNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAKIAogY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIGZpbGVuYW1lX2xpc3RfcXVldWUs
IHJlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICAgdGVzdF90eXBlcywgdGVzdF9hcmdzKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgd29ya2VyX251bWJlciwKKyAg
ICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwgcmVzdWx0X3F1ZXVlKToKICAgICAg
ICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRlIGZvciB0aGlzIER1bXBSZW5kZXJU
cmVlIHRocmVhZC4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIHBvcnQ6IGludGVyZmFjZSB0
byBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczogY29tbWFuZCBsaW5lIG9w
dGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQorICAgICAgICAgIHdvcmtlcl9udW1iZXI6IGlk
ZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhyZWFkLgogICAgICAgICAgIGZpbGVu
YW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCBjb250YWlucyBs
aXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1lLCB1cmkpIHBhaXJzLgog
ICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1ZSBjbGFzcyB0aGF0IHdp
bGwgY29udGFpbgogICAgICAgICAgICAgICBzZXJpYWxpemVkIFRlc3RSZXN1bHQgb2JqZWN0cy4K
LSAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4g
dGhlIHRlc3Qgb3V0cHV0Ci0gICAgICAgICAgICAgIGFnYWluc3QuCi0gICAgICAgICAgdGVzdF9h
cmdzOiBBIFRlc3RBcmd1bWVudHMgb2JqZWN0IHRvIHBhc3MgdG8gZWFjaCBUZXN0VHlwZS4KICAg
ICAgICAgIiIiCiAgICAgICAgIFdhdGNoYWJsZVRocmVhZC5fX2luaXRfXyhzZWxmKQogICAgICAg
ICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAg
ICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorICAgICAgICBzZWxmLl9u
YW1lID0gJ3dvcmtlci0lZCcgJSB3b3JrZXJfbnVtYmVyCiAgICAgICAgIHNlbGYuX2ZpbGVuYW1l
X2xpc3RfcXVldWUgPSBmaWxlbmFtZV9saXN0X3F1ZXVlCiAgICAgICAgIHNlbGYuX3Jlc3VsdF9x
dWV1ZSA9IHJlc3VsdF9xdWV1ZQogICAgICAgICBzZWxmLl9maWxlbmFtZV9saXN0ID0gW10KLSAg
ICAgICAgc2VsZi5fdGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKLSAgICAgICAgc2VsZi5fdGVzdF9h
cmdzID0gdGVzdF9hcmdzCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKICAgICAgICAgc2Vs
Zi5fdGVzdF9ncm91cF90aW1pbmdfc3RhdHMgPSB7fQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHMgPSBbXQpAQCAtMjY5LDYgKzI3OCwxMiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hh
YmxlVGhyZWFkKToKICAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAg
ICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9IDAKIAorICAgICAgICBzZWxmLl90ZXN0X3R5
cGVzID0gW10KKyAgICAgICAgZm9yIGNscyBpbiBzZWxmLl9nZXRfdGVzdF90eXBlX2NsYXNzZXMo
KToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMuYXBwZW5kKGNscyhzZWxmLl9wb3J0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVz
dWx0c19kaXJlY3RvcnkpKQorICAgICAgICBzZWxmLl90ZXN0X2FyZ3MgPSBzZWxmLl9nZXRfdGVz
dF9hcmdzKHdvcmtlcl9udW1iZXIpCisKICAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9mIHRlc3Rz
IHdlJ3JlIHJ1bm5pbmcuCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCkBAIC0yNzYsNiAr
MjkxLDI2IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAg
ICAjIFRpbWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3Vy
cmVudF9ncm91cC4KICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9u
ZQogCisgICAgZGVmIF9nZXRfdGVzdF9hcmdzKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICAiIiJSZXR1cm5zIHRoZSB0dXBsZSBvZiBhcmd1bWVudHMgZm9yIHRlc3RzIGFuZCBmb3IgRHVt
cFJlbmRlclRyZWUuIiIiCisgICAgICAgIHRlc3RfYXJncyA9IHRlc3RfdHlwZV9iYXNlLlRlc3RB
cmd1bWVudHMoKQorICAgICAgICB0ZXN0X2FyZ3MucG5nX3BhdGggPSBOb25lCisgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHM6CisgICAgICAgICAgICBwbmdfcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBuZ19yZXN1bHQlcy5wbmciICUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIpCisgICAgICAgICAgICB0
ZXN0X2FyZ3MucG5nX3BhdGggPSBwbmdfcGF0aAorICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2Vs
aW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0
X3Jlc3VsdHMgPSBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHMKKworICAgICAgICByZXR1cm4g
dGVzdF9hcmdzCisKKyAgICBkZWYgX2dldF90ZXN0X3R5cGVfY2xhc3NlcyhzZWxmKToKKyAgICAg
ICAgY2xhc3NlcyA9IFt0ZXh0X2RpZmYuVGVzdFRleHREaWZmXQorICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnBpeGVsX3Rlc3RzOgorICAgICAgICAgICAgY2xhc3Nlcy5hcHBlbmQoaW1hZ2VfZGlm
Zi5JbWFnZURpZmYpCisgICAgICAgIHJldHVybiBjbGFzc2VzCisKICAgICBkZWYgZ2V0X3Rlc3Rf
Z3JvdXBfdGltaW5nX3N0YXRzKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIGEgZGljdGlvbmFy
eSBtYXBwaW5nIHRlc3QgZ3JvdXAgdG8gYSB0dXBsZSBvZgogICAgICAgICAobnVtYmVyIG9mIHRl
c3RzIGluIHRoYXQgZ3JvdXAsIHRpbWUgdG8gcnVuIHRoZSB0ZXN0cykiIiIKQEAgLTQ0Nyw2ICs0
ODIsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAg
IiIiCiAgICAgICAgIHdvcmtlciA9IFNpbmdsZVRlc3RUaHJlYWQoc2VsZi5fcG9ydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3Rlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdGVzdF9hcmdzKQpAQCAtNDk2LDcgKzUzMyw3IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChX
YXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSB0aW1lLnRpbWUo
KSArIHRocmVhZF90aW1lb3V0CiAgICAgICAgIHRlc3RfcmVzdWx0ID0gX3J1bl9zaW5nbGVfdGVz
dChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLCB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdF90eXBlcywgc2VsZi5fdGVzdF9hcmdz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyLCBzZWxm
Ll9uYW1lKQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKHRlc3RfcmVzdWx0KQog
ICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHQKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5k
ZXggYjM4MDRmNDcwYmM2M2ZiM2Q1YjdiNjBlYWY3NjkzYTNkOTk4OWE3MS4uOTEyOGFlODU0MmJi
NGNiZDRjOWQ5YTVlOTc5OWVmZjJiNDJiNDhkOSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
CkBAIC03Miw5ICs3Miw2IEBAIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiBmcm9tIGxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIGxh
eW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1w
b3J0IHRlc3RfcmVzdWx0c191cGxvYWRlcgotZnJvbSB0ZXN0X3R5cGVzIGltcG9ydCBpbWFnZV9k
aWZmCi1mcm9tIHRlc3RfdHlwZXMgaW1wb3J0IHRleHRfZGlmZgotZnJvbSB0ZXN0X3R5cGVzIGlt
cG9ydCB0ZXN0X3R5cGVfYmFzZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0
IHVzZXIKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eSBpbXBvcnQgc2ltcGxlanNvbgpAQCAtMjU0
LDExICsyNTEsNiBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAjIHNlbGYuX3dlYnNvY2tl
dF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldCgKICAgICAgICAg
IyAgICAgICAgb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSwgdXNlX3Rscz1UcnVlLCBwb3J0PTkz
MjMpCiAKLSAgICAgICAgIyBhIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cwotICAgICAgICBzZWxm
Ll90ZXN0X3R5cGVzID0gW3RleHRfZGlmZi5UZXN0VGV4dERpZmZdCi0gICAgICAgIGlmIG9wdGlv
bnMucGl4ZWxfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLmFwcGVuZChpbWFn
ZV9kaWZmLkltYWdlRGlmZikKLQogICAgICAgICAjIGEgc2V0IG9mIHRlc3QgZmlsZXMsIGFuZCB0
aGUgc2FtZSB0ZXN0cyBhcyBhIGxpc3QKICAgICAgICAgc2VsZi5fdGVzdF9maWxlcyA9IHNldCgp
CiAgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXNfbGlzdCA9IE5vbmUKQEAgLTU1OSwxOSArNTUxLDYg
QEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIGZpbGVuYW1lX3F1ZXVlLnB1dChpdGVt
KQogICAgICAgICByZXR1cm4gZmlsZW5hbWVfcXVldWUKIAotICAgIGRlZiBfZ2V0X3Rlc3RfYXJn
cyhzZWxmLCBpbmRleCk6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIHR1cGxlIG9mIGFyZ3VtZW50
cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1wUmVuZGVyVHJlZS4iIiIKLSAgICAgICAgdGVzdF9hcmdz
ID0gdGVzdF90eXBlX2Jhc2UuVGVzdEFyZ3VtZW50cygpCi0gICAgICAgIHRlc3RfYXJncy5wbmdf
cGF0aCA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKLSAgICAg
ICAgICAgIHBuZ19wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJl
Y3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG5nX3Jlc3VsdCVz
LnBuZyIgJSBpbmRleCkKLSAgICAgICAgICAgIHRlc3RfYXJncy5wbmdfcGF0aCA9IHBuZ19wYXRo
Ci0gICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgPSBzZWxmLl9vcHRpb25zLm5ld19iYXNl
bGluZQotICAgICAgICB0ZXN0X2FyZ3MucmVzZXRfcmVzdWx0cyA9IHNlbGYuX29wdGlvbnMucmVz
ZXRfcmVzdWx0cwotCi0gICAgICAgIHJldHVybiB0ZXN0X2FyZ3MKLQogICAgIGRlZiBfY29udGFp
bnNfdGVzdHMoc2VsZiwgc3ViZGlyKToKICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiBzZWxmLl90
ZXN0X2ZpbGVzOgogICAgICAgICAgICAgaWYgdGVzdF9maWxlLmZpbmQoc3ViZGlyKSA+PSAwOgpA
QCAtNTg5LDE3ICs1NjgsMTAgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKIAogICAgICAgICAjIEluc3Rh
bnRpYXRlIFRlc3RTaGVsbFRocmVhZHMgYW5kIHN0YXJ0IHRoZW0uCiAgICAgICAgIHRocmVhZHMg
PSBbXQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJv
Y2Vzc2VzKSk6Ci0gICAgICAgICAgICAjIENyZWF0ZSBzZXBhcmF0ZSBUZXN0VHlwZXMgaW5zdGFu
Y2VzIGZvciBlYWNoIHRocmVhZC4KLSAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBbXQotICAgICAg
ICAgICAgZm9yIHRlc3RfdHlwZSBpbiBzZWxmLl90ZXN0X3R5cGVzOgotICAgICAgICAgICAgICAg
IHRlc3RfdHlwZXMuYXBwZW5kKHRlc3RfdHlwZShzZWxmLl9wb3J0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSkpCi0K
LSAgICAgICAgICAgIHRlc3RfYXJncyA9IHNlbGYuX2dldF90ZXN0X2FyZ3MoaSkKKyAgICAgICAg
Zm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nl
c3NlcykpOgogICAgICAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVz
dFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywg
ZmlsZW5hbWVfcXVldWUsIHNlbGYuX3Jlc3VsdF9xdWV1ZSwKLSAgICAgICAgICAgICAgICB0ZXN0
X3R5cGVzLCB0ZXN0X2FyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2Vy
X251bWJlciwKKyAgICAgICAgICAgICAgICBmaWxlbmFtZV9xdWV1ZSwgc2VsZi5fcmVzdWx0X3F1
ZXVlKQogICAgICAgICAgICAgaWYgc2VsZi5faXNfc2luZ2xlX3RocmVhZGVkKCk6CiAgICAgICAg
ICAgICAgICAgdGhyZWFkLnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLCByZXN1bHRfc3VtbWFyeSkK
ICAgICAgICAgICAgIGVsc2U6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>