<?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>155604</bug_id>
          
          <creation_ts>2016-03-17 15:30:21 -0700</creation_ts>
          <short_desc>AX: Radio button members are not identified together in all cases</short_desc>
          <delta_ts>2016-03-20 08:21:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1175875</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-03-17 15:30:21 -0700</bug_when>
    <thetext>1. State VoiceOver on an iOS device
2. Open http://wafflerama.com/a11y/cssposition.html
3. Navigate through the page, listening to the output for each of the radio buttons

Expected Results:
In step 3, the two sets of radio buttons should each enumerate as &apos;1 of 3&apos;, etc.

Actual Results:
In step 3, the first 3 radio buttons are all announced as &quot;1 of 1&quot;. The second set of radio buttons are properly announced as &quot;1 of 3&quot;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175876</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-03-17 15:30:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/21186992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175878</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-17 15:31:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/25227435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176246</commentid>
    <comment_count>3</comment_count>
      <attachid>274439</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-03-18 11:35:36 -0700</bug_when>
    <thetext>Created attachment 274439
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176247</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-18 11:36:51 -0700</bug_when>
    <thetext>Attachment 274439 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:954:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:955:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:956:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:957:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:958:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/accessibility/AccessibilityRenderObject.cpp:959:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176248</commentid>
    <comment_count>5</comment_count>
      <attachid>274440</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-03-18 11:37:49 -0700</bug_when>
    <thetext>Created attachment 274440
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176468</commentid>
    <comment_count>6</comment_count>
      <attachid>274440</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 22:37:50 -0700</bug_when>
    <thetext>Comment on attachment 274440
patch

The old code is not the right way to find radio buttons. Code to iterate all the radio buttons in a group should not have been replicated in the accessibility code, but instead should be an interface provide by the HTMLInputElement class. We could have a function:

     Vector&lt;HTMLInputElement*&gt; radioButtonGroup() const;

It would get the misnamed CheckedRadioButtons object, then would take the element&apos;s name and find the RadioButtonGroup. That has a HashSet of all the radio buttons in that group and that can be converted into a Vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176577</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-03-20 07:31:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 274440 [details]
&gt; patch
&gt; 
&gt; The old code is not the right way to find radio buttons. Code to iterate all
&gt; the radio buttons in a group should not have been replicated in the
&gt; accessibility code, but instead should be an interface provide by the
&gt; HTMLInputElement class. We could have a function:
&gt; 
&gt;      Vector&lt;HTMLInputElement*&gt; radioButtonGroup() const;
&gt; 
&gt; It would get the misnamed CheckedRadioButtons object, then would take the
&gt; element&apos;s name and find the RadioButtonGroup. That has a HashSet of all the
&gt; radio buttons in that group and that can be converted into a Vector.

I&apos;ll follow up with a new patch for that

https://bugs.webkit.org/show_bug.cgi?id=155696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176584</commentid>
    <comment_count>8</comment_count>
      <attachid>274440</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 08:21:37 -0700</bug_when>
    <thetext>Comment on attachment 274440
patch

Clearing flags on attachment: 274440

Committed r198474: &lt;http://trac.webkit.org/changeset/198474&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176585</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 08:21:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274439</attachid>
            <date>2016-03-18 11:35:36 -0700</date>
            <delta_ts>2016-03-18 11:37:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11171</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTE4ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFJhZGlvIGJ1dHRv
biBtZW1iZXJzIGFyZSBub3QgaWRlbnRpZmllZCB0b2dldGhlciBpbiBhbGwgY2FzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTYwNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjExODY5OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgYXJpYSByYWRpbyBidXR0b25zIHRvIGJlIGdyb3Vw
ZWQgdG9nZXRoZXIgYXMgbGlua2VkIHVpIGVsZW1lbnRzIGV2ZW4gaWYgdGhleSdyZSBub3QgaW5w
dXQgdHlwZXMgb2YgcmFkaW8gYnV0dG9uLgorCisgICAgICAgIE1vZGlmaWVkIHRlc3Q6IGFjY2Vz
c2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbAorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNwZWFrUHJvcGVydHkpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkUmFkaW9CdXR0b25Hcm91cENo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFk
ZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKwogMjAxNi0wMy0xOCAgTmFuIFdhbmcgIDxuX3dhbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBBWEFSSUFDdXJyZW50IGV4cG9zZWQgYnV0IG5vdCBk
aXNwbGF5ZWQgaW4gQWNjZXNzaWJpbGl0eSBJbnNwZWN0b3IKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAkocmV2aXNpb24gMTk4NDI1KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQ5LDI5ICs5
NDksNDQgQEAKICAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS5zcGVhaygpOwogfQogICAg
IAordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRSYWRpb0J1dHRvbkdyb3VwQ2hp
bGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50LCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3ImIGxpbmtlZFVJRWxlbWVudHMpIGNvbnN0Cit7CisgICAgIGZvciAoY29uc3QgYXV0byYg
Y2hpbGQgOiBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgIGlmIChjaGlsZC0+cm9sZVZh
bHVlKCkgPT0gUmFkaW9CdXR0b25Sb2xlKQorICAgICAgICAgICAgIGxpbmtlZFVJRWxlbWVudHMu
YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICBhZGRSYWRpb0J1dHRv
bkdyb3VwQ2hpbGRyZW4oY2hpbGQuZ2V0KCksIGxpbmtlZFVJRWxlbWVudHMpOworICAgICB9Cit9
CisgICAgCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3Jv
dXBNZW1iZXJzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgbGlua2VkVUlFbGVtZW50cykg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIgfHwgcm9sZVZhbHVlKCkgIT0gUmFkaW9CdXR0
b25Sb2xlKQorICAgIGlmIChyb2xlVmFsdWUoKSAhPSBSYWRpb0J1dHRvblJvbGUpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAg
IGlmICghaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCi0gICAgICAgIHJldHVybjsKLSAgICAK
LSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+
KCpub2RlKTsKLSAgICAvLyBpZiB0aGVyZSdzIGEgZm9ybSwgdGhlbiB0aGlzIGlzIGVhc3kKLSAg
ICBpZiAoaW5wdXQuZm9ybSgpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgYXNzb2NpYXRlRWxlbWVu
dCA6IGlucHV0LmZvcm0oKS0+bmFtZWRFbGVtZW50cyhpbnB1dC5uYW1lKCkpKSB7Ci0gICAgICAg
ICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5n
ZXRPckNyZWF0ZSgmYXNzb2NpYXRlRWxlbWVudC5nZXQoKSkpCi0gICAgICAgICAgICAgICAgbGlu
a2VkVUlFbGVtZW50cy5hcHBlbmQob2JqZWN0KTsgICAgICAgIAotICAgICAgICB9IAotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGZvciAoYXV0byYgYXNzb2NpYXRlRWxlbWVudCA6IGRlc2NlbmRhbnRz
T2ZUeXBlPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUtPmRvY3VtZW50KCkpKSB7Ci0gICAgICAgICAg
ICBpZiAoYXNzb2NpYXRlRWxlbWVudC5pc1JhZGlvQnV0dG9uKCkgJiYgYXNzb2NpYXRlRWxlbWVu
dC5uYW1lKCkgPT0gaW5wdXQubmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoJmFzc29j
aWF0ZUVsZW1lbnQpKQorICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKGlz
PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlu
cHV0ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOworICAgICAgICAvLyBpZiB0
aGVyZSdzIGEgZm9ybSwgdGhlbiB0aGlzIGlzIGVhc3kKKyAgICAgICAgaWYgKGlucHV0LmZvcm0o
KSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiBhc3NvY2lhdGVFbGVtZW50IDogaW5wdXQuZm9y
bSgpLT5uYW1lZEVsZW1lbnRzKGlucHV0Lm5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0
ZSgmYXNzb2NpYXRlRWxlbWVudC5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIGxpbmtlZFVJ
RWxlbWVudHMuYXBwZW5kKG9iamVjdCk7CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBmb3IgKGF1dG8mIGFzc29jaWF0ZUVsZW1lbnQgOiBkZXNjZW5kYW50c09m
VHlwZTxIVE1MSW5wdXRFbGVtZW50Pihub2RlLT5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAg
ICAgIGlmIChhc3NvY2lhdGVFbGVtZW50LmlzUmFkaW9CdXR0b24oKSAmJiBhc3NvY2lhdGVFbGVt
ZW50Lm5hbWUoKSA9PSBpbnB1dC5uYW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUo
JmFzc29jaWF0ZUVsZW1lbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgbGlua2VkVUlFbGVt
ZW50cy5hcHBlbmQob2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbnkg
cmFkaW8gYnV0dG9uIHNpYmxpbmdzIHdpdGggdGhlIHRyYWRpdGlvbmFsIG5hbWluZywgbGV0cyBz
ZWFyY2ggZm9yIGEgcmFkaW8gZ3JvdXAgcm9sZSBhbmQgZmluZCBpdHMgY2hpbGRyZW4uCisgICAg
ICAgIGZvciAoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0KCk7IHBh
cmVudDsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3QoKSkgeworICAgICAgICAgICAgaWYg
KHBhcmVudC0+cm9sZVZhbHVlKCkgPT0gUmFkaW9Hcm91cFJvbGUpCisgICAgICAgICAgICAgICAg
YWRkUmFkaW9CdXR0b25Hcm91cENoaWxkcmVuKHBhcmVudCwgbGlua2VkVUlFbGVtZW50cyk7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAkocmV2aXNpb24g
MTk4NDI1KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgIGJvb2wg
aXNUYWJJdGVtU2VsZWN0ZWQoKSBjb25zdDsKICAgICBMYXlvdXRSZWN0IGNoZWNrYm94T3JSYWRp
b1JlY3QoKSBjb25zdDsKICAgICB2b2lkIGFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciYgbGlua2VkVUlFbGVtZW50cykgY29uc3Q7CisgICAgdm9p
ZCBhZGRSYWRpb0J1dHRvbkdyb3VwQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGludGVybmFsTGlua0VsZW1lbnQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBh
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBIaXRUZXN0KEhUTUxBcmVhRWxlbWVudCosIGNvbnN0IEludFBv
aW50JikgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eVBhcmVu
dEZvckltYWdlTWFwKEhUTUxNYXBFbGVtZW50KikgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
OTg0MjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNi0wMy0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiBSYWRpbyBidXR0b24gbWVtYmVycyBhcmUgbm90IGlkZW50aWZpZWQg
dG9nZXRoZXIgaW4gYWxsIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTU2MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTg2OTkyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdy
b3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDE2LTAzLTE4ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgY3Jvc3Nvcmln
aW4gZWxlbWVudCByZXNvdXJjZSBsb2FkaW5nIHNob3VsZCBjaGVjayBIVFRQIHJlZGlyZWN0aW9u
CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYWRpby1idXR0b24tZ3JvdXAt
bWVtYmVycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFkaW8tYnV0dG9uLWdyb3Vw
LW1lbWJlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKwor
CisKKworCisKKworCisKKworCisKKworCisKKworCitUaGlzIHRlc3RzIHRoYXQgbGlua2VkIFVJ
IGVsZW1lbnRzIHdpdGhpbmcgYSByYWRpbyBncm91cCB3b3JrCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitSYWRpbyBidXR0b25zIHdpdGhpbiB0aGUgc2FtZSBuYW1lZCBncm91cCBz
aG91bGQgYmUgYWJsZSB0byBhY2Nlc3MgdGhlaXIgc2libGluZ3MKK1BBU1MgdGVzdDEubGlua2Vk
VUlFbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKHRlc3QxKSBpcyB0cnVlCitQQVNTIHRlc3QxLmxp
bmtlZFVJRWxlbWVudEF0SW5kZXgoMSkuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3Rlc3QxX05vJykpIGlzIHRydWUKK1BBU1MgdGVzdDEubGlu
a2VkVUlFbGVtZW50QXRJbmRleCgyKS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgndGVzdDFfTWF5YmUnKSkgaXMgdHJ1ZQorCisKK1JhZGlvIGJ1
dHRvbnMgdGhhdCBhcmUgbm90IGluIGEgZm9ybSwgYnV0IGluIHRoZSBzYW1lIG5hbWVkIGdyb3Vw
IHNob3VsZCBiZSBhYmxlIHRvIGFjY2VzcyB0aGVpciBzaWJsaW5ncworUEFTUyB0ZXN0Mi5saW5r
ZWRVSUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwodGVzdDIpIGlzIHRydWUKK1BBU1MgdGVzdDIu
bGlua2VkVUlFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGVzdDJfTm8nKSkgaXMgdHJ1ZQorCisKK1JhZGlvIGJ1
dHRvbnMgbGFiZWxlZCBieSAgc2hvdWxkIGJlIGFibGUgdG8gYWNjZXNzIHRoZWlyIHNpYmxpbmdz
CitQQVNTIHRlc3QzLmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbCh0ZXN0MykgaXMg
dHJ1ZQorUEFTUyB0ZXN0My5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwoYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXN0M19ObycpKSBpcyB0
cnVlCisKKworUmFkaW8gYnV0dG9ucyBub3QgaW4gYSBncm91cHMgc2hvdWxkIG5vdCBoYXZlIHNp
YmxpbmdzICh0aGUgZmlyc3QgbGlua2VkIGVsZW1lbnQgaXMgaXRzZWxmKQorUEFTUyB0ZXN0NC5s
aW5rZWRVSUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwodGVzdDQpIGlzIHRydWUKK1BBU1MgIXRl
c3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0
SW5kZXgoMSkuaXNWYWxpZCBpcyB0cnVlCisKKworUmFkaW8gYnV0dG9ucyB0aGF0IGp1c3QgaGF2
ZSBhcmlhIHJvbGVzIHNob3VsZCB3b3JrLgorUEFTUyBhcmlhUmFkaW8xLmxpbmtlZFVJRWxlbWVu
dEF0SW5kZXgoMCkuaXNFcXVhbChhcmlhUmFkaW8xKSBpcyB0cnVlCitQQVNTIGFyaWFSYWRpbzEu
bGlua2VkVUlFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGFyaWFSYWRpbzIpIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3Jv
dXAtbWVtYmVycy5odG1sCShyZXZpc2lvbiAxOTg0MjUpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDggKzM1LDE3IEBACiAgICAgPC9mb3JtPgogICAgIDxicj48YnI+CiAKKyAgICA8IS0tIFRl
c3QgcmFkaW9ncm91cCBwYXJlbnRhZ2UgLS0+CisgICAgPGRpdiBjbGFzcz0icmFkaW9ncm91cCIg
cm9sZT0icmFkaW9ncm91cCIgaWQ9InJhZGlvZ3JvdXAiPgorICAgIDxkaXY+CisgICAgICAgPGRp
diByb2xlPSJyYWRpbyIgaWQ9ImFyaWFyYWRpbzEiIGFyaWEtY2hlY2tlZD0idHJ1ZSI+UmFkaW8g
MTwvZGl2PgorICAgICAgIDxkaXYgcm9sZT0icmFkaW8iIGlkPSJhcmlhcmFkaW8yIiBhcmlhLWNo
ZWNrZWQ9ImZhbHNlIj5SYWRpbyAyPC9kaXY+CisgICAgICAgPGRpdiByb2xlPSJyYWRpbyIgYXJp
YS1jaGVja2VkPSJmYWxzZSI+UmFkaW8gMzwvZGl2PgogICAgIDwvZGl2PgorICAgIDwvZGl2Pgog
CisgICAgPC9kaXY+CisKICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KICAgICA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KIApAQCAtNjksNiArNzgsMTMgQEAKICAgICAgICAgICAgIHZhciB0
ZXN0NCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGVz
dDRfWWVzIik7CiAgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3Q0LmxpbmtlZFVJRWxlbWVu
dEF0SW5kZXgoMCkuaXNFcXVhbCh0ZXN0NCkiKTsKICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
IXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVu
dEF0SW5kZXgoMSkuaXNWYWxpZCIpOworICAgICAgICAgICAgZGVidWcoIlxuIik7CisKKyAgICAg
ICAgICAgIGRlYnVnKCJSYWRpbyBidXR0b25zIHRoYXQganVzdCBoYXZlIGFyaWEgcm9sZXMgc2hv
dWxkIHdvcmsuIik7CisgICAgICAgICAgICB2YXIgYXJpYVJhZGlvMSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYXJpYXJhZGlvMSIpOworICAgICAgICAg
ICAgdmFyIGFyaWFSYWRpbzIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoImFyaWFyYWRpbzIiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJpYVJh
ZGlvMS5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXJpYVJhZGlvMSkiKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJpYVJhZGlvMS5saW5rZWRVSUVsZW1lbnRBdEluZGV4
KDEpLmlzRXF1YWwoYXJpYVJhZGlvMikiKTsKICAgCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAg
ICAgfQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8t
YnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk4NDI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLQotCi0KLQotCi0KLQotCi0KLQotCi0K
LQotCi0KLQotCi1UaGlzIHRlc3RzIHRoYXQgbGlua2VkIFVJIGVsZW1lbnRzIHdpdGhpbmcgYSBy
YWRpbyBncm91cCB3b3JrCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1SYWRpbyBi
dXR0b25zIHdpdGhpbiB0aGUgc2FtZSBuYW1lZCBncm91cCBzaG91bGQgYmUgYWJsZSB0byBhY2Nl
c3MgdGhlaXIgc2libGluZ3MKLVBBU1MgdGVzdDEubGlua2VkVUlFbGVtZW50QXRJbmRleCgwKS5p
c0VxdWFsKHRlc3QxKSBpcyB0cnVlCi1QQVNTIHRlc3QxLmxpbmtlZFVJRWxlbWVudEF0SW5kZXgo
MSkuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J3Rlc3QxX05vJykpIGlzIHRydWUKLVBBU1MgdGVzdDEubGlua2VkVUlFbGVtZW50QXRJbmRleCgy
KS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgn
dGVzdDFfTWF5YmUnKSkgaXMgdHJ1ZQotCi0KLVJhZGlvIGJ1dHRvbnMgdGhhdCBhcmUgbm90IGlu
IGEgZm9ybSwgYnV0IGluIHRoZSBzYW1lIG5hbWVkIGdyb3VwIHNob3VsZCBiZSBhYmxlIHRvIGFj
Y2VzcyB0aGVpciBzaWJsaW5ncwotUEFTUyB0ZXN0Mi5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDAp
LmlzRXF1YWwodGVzdDIpIGlzIHRydWUKLVBBU1MgdGVzdDIubGlua2VkVUlFbGVtZW50QXRJbmRl
eCgxKS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgndGVzdDJfTm8nKSkgaXMgdHJ1ZQotCi0KLVJhZGlvIGJ1dHRvbnMgbGFiZWxlZCBieSAgc2hv
dWxkIGJlIGFibGUgdG8gYWNjZXNzIHRoZWlyIHNpYmxpbmdzCi1QQVNTIHRlc3QzLmxpbmtlZFVJ
RWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbCh0ZXN0MykgaXMgdHJ1ZQotUEFTUyB0ZXN0My5saW5r
ZWRVSUVsZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXN0M19ObycpKSBpcyB0cnVlCi0KLQotUmFkaW8gYnV0dG9u
cyBub3QgaW4gYSBncm91cHMgc2hvdWxkIG5vdCBoYXZlIHNpYmxpbmdzICh0aGUgZmlyc3QgbGlu
a2VkIGVsZW1lbnQgaXMgaXRzZWxmKQotUEFTUyB0ZXN0NC5saW5rZWRVSUVsZW1lbnRBdEluZGV4
KDApLmlzRXF1YWwodGVzdDQpIGlzIHRydWUKLVBBU1MgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0
SW5kZXgoMSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkuaXNWYWxpZCBpcyB0
cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274440</attachid>
            <date>2016-03-18 11:37:49 -0700</date>
            <delta_ts>2016-03-20 08:21:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11165</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTE4ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFJhZGlvIGJ1dHRv
biBtZW1iZXJzIGFyZSBub3QgaWRlbnRpZmllZCB0b2dldGhlciBpbiBhbGwgY2FzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTYwNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjExODY5OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgYXJpYSByYWRpbyBidXR0b25zIHRvIGJlIGdyb3Vw
ZWQgdG9nZXRoZXIgYXMgbGlua2VkIHVpIGVsZW1lbnRzIGV2ZW4gaWYgdGhleSdyZSBub3QgaW5w
dXQgdHlwZXMgb2YgcmFkaW8gYnV0dG9uLgorCisgICAgICAgIE1vZGlmaWVkIHRlc3Q6IGFjY2Vz
c2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbAorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNwZWFrUHJvcGVydHkpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkUmFkaW9CdXR0b25Hcm91cENo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFk
ZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKwogMjAxNi0wMy0xOCAgTmFuIFdhbmcgIDxuX3dhbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBBWEFSSUFDdXJyZW50IGV4cG9zZWQgYnV0IG5vdCBk
aXNwbGF5ZWQgaW4gQWNjZXNzaWJpbGl0eSBJbnNwZWN0b3IKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAkocmV2aXNpb24gMTk4NDI1KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQ5LDI5ICs5
NDksNDQgQEAKICAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS5zcGVhaygpOwogfQogICAg
IAordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRSYWRpb0J1dHRvbkdyb3VwQ2hp
bGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50LCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3ImIGxpbmtlZFVJRWxlbWVudHMpIGNvbnN0Cit7CisgICAgZm9yIChjb25zdCBhdXRvJiBj
aGlsZCA6IHBhcmVudC0+Y2hpbGRyZW4oKSkgeworICAgICAgICBpZiAoY2hpbGQtPnJvbGVWYWx1
ZSgpID09IFJhZGlvQnV0dG9uUm9sZSkKKyAgICAgICAgICAgIGxpbmtlZFVJRWxlbWVudHMuYXBw
ZW5kKGNoaWxkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWRkUmFkaW9CdXR0b25Hcm91
cENoaWxkcmVuKGNoaWxkLmdldCgpLCBsaW5rZWRVSUVsZW1lbnRzKTsKKyAgICB9Cit9CisgICAg
CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1i
ZXJzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgbGlua2VkVUlFbGVtZW50cykgY29uc3QK
IHsKLSAgICBpZiAoIW1fcmVuZGVyZXIgfHwgcm9sZVZhbHVlKCkgIT0gUmFkaW9CdXR0b25Sb2xl
KQorICAgIGlmIChyb2xlVmFsdWUoKSAhPSBSYWRpb0J1dHRvblJvbGUpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIGlmICgh
aXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBI
VE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2Rl
KTsKLSAgICAvLyBpZiB0aGVyZSdzIGEgZm9ybSwgdGhlbiB0aGlzIGlzIGVhc3kKLSAgICBpZiAo
aW5wdXQuZm9ybSgpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgYXNzb2NpYXRlRWxlbWVudCA6IGlu
cHV0LmZvcm0oKS0+bmFtZWRFbGVtZW50cyhpbnB1dC5uYW1lKCkpKSB7Ci0gICAgICAgICAgICBp
ZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNy
ZWF0ZSgmYXNzb2NpYXRlRWxlbWVudC5nZXQoKSkpCi0gICAgICAgICAgICAgICAgbGlua2VkVUlF
bGVtZW50cy5hcHBlbmQob2JqZWN0KTsgICAgICAgIAotICAgICAgICB9IAotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGZvciAoYXV0byYgYXNzb2NpYXRlRWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBl
PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUtPmRvY3VtZW50KCkpKSB7Ci0gICAgICAgICAgICBpZiAo
YXNzb2NpYXRlRWxlbWVudC5pc1JhZGlvQnV0dG9uKCkgJiYgYXNzb2NpYXRlRWxlbWVudC5uYW1l
KCkgPT0gaW5wdXQubmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoJmFzc29jaWF0ZUVs
ZW1lbnQpKQorICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0g
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOworICAgICAgICAvLyBpZiB0aGVyZSdz
IGEgZm9ybSwgdGhlbiB0aGlzIGlzIGVhc3kKKyAgICAgICAgaWYgKGlucHV0LmZvcm0oKSkgewor
ICAgICAgICAgICAgZm9yIChhdXRvJiBhc3NvY2lhdGVFbGVtZW50IDogaW5wdXQuZm9ybSgpLT5u
YW1lZEVsZW1lbnRzKGlucHV0Lm5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZSgmYXNz
b2NpYXRlRWxlbWVudC5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIGxpbmtlZFVJRWxlbWVu
dHMuYXBwZW5kKG9iamVjdCk7CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBmb3IgKGF1dG8mIGFzc29jaWF0ZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxI
VE1MSW5wdXRFbGVtZW50Pihub2RlLT5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAgICAgIGlm
IChhc3NvY2lhdGVFbGVtZW50LmlzUmFkaW9CdXR0b24oKSAmJiBhc3NvY2lhdGVFbGVtZW50Lm5h
bWUoKSA9PSBpbnB1dC5uYW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoJmFzc29j
aWF0ZUVsZW1lbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgbGlua2VkVUlFbGVtZW50cy5h
cHBlbmQob2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbnkgcmFkaW8g
YnV0dG9uIHNpYmxpbmdzIHdpdGggdGhlIHRyYWRpdGlvbmFsIG5hbWluZywgbGV0cyBzZWFyY2gg
Zm9yIGEgcmFkaW8gZ3JvdXAgcm9sZSBhbmQgZmluZCBpdHMgY2hpbGRyZW4uCisgICAgICAgIGZv
ciAoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0KCk7IHBhcmVudDsg
cGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3QoKSkgeworICAgICAgICAgICAgaWYgKHBhcmVu
dC0+cm9sZVZhbHVlKCkgPT0gUmFkaW9Hcm91cFJvbGUpCisgICAgICAgICAgICAgICAgYWRkUmFk
aW9CdXR0b25Hcm91cENoaWxkcmVuKHBhcmVudCwgbGlua2VkVUlFbGVtZW50cyk7CisgICAgICAg
IH0KICAgICB9CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAkocmV2aXNpb24gMTk4NDI1
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgIGJvb2wgaXNUYWJJ
dGVtU2VsZWN0ZWQoKSBjb25zdDsKICAgICBMYXlvdXRSZWN0IGNoZWNrYm94T3JSYWRpb1JlY3Qo
KSBjb25zdDsKICAgICB2b2lkIGFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYgbGlua2VkVUlFbGVtZW50cykgY29uc3Q7CisgICAgdm9pZCBhZGRS
YWRpb0J1dHRvbkdyb3VwQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGludGVy
bmFsTGlua0VsZW1lbnQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3Np
YmlsaXR5SW1hZ2VNYXBIaXRUZXN0KEhUTUxBcmVhRWxlbWVudCosIGNvbnN0IEludFBvaW50Jikg
Y29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eVBhcmVudEZvcklt
YWdlTWFwKEhUTUxNYXBFbGVtZW50KikgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTg0MjUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxNi0wMy0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiBSYWRpbyBidXR0b24gbWVtYmVycyBhcmUgbm90IGlkZW50aWZpZWQgdG9nZXRo
ZXIgaW4gYWxsIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTU2MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTg2OTkyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1l
bWJlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDE2LTAzLTE4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgY3Jvc3NvcmlnaW4gZWxl
bWVudCByZXNvdXJjZSBsb2FkaW5nIHNob3VsZCBjaGVjayBIVFRQIHJlZGlyZWN0aW9uCkluZGV4
OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVy
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJl
cnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKworCisKKwor
CisKKworCisKKworCisKKworCisKKworCitUaGlzIHRlc3RzIHRoYXQgbGlua2VkIFVJIGVsZW1l
bnRzIHdpdGhpbmcgYSByYWRpbyBncm91cCB3b3JrCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitSYWRpbyBidXR0b25zIHdpdGhpbiB0aGUgc2FtZSBuYW1lZCBncm91cCBzaG91bGQg
YmUgYWJsZSB0byBhY2Nlc3MgdGhlaXIgc2libGluZ3MKK1BBU1MgdGVzdDEubGlua2VkVUlFbGVt
ZW50QXRJbmRleCgwKS5pc0VxdWFsKHRlc3QxKSBpcyB0cnVlCitQQVNTIHRlc3QxLmxpbmtlZFVJ
RWxlbWVudEF0SW5kZXgoMSkuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoJ3Rlc3QxX05vJykpIGlzIHRydWUKK1BBU1MgdGVzdDEubGlua2VkVUlF
bGVtZW50QXRJbmRleCgyKS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgndGVzdDFfTWF5YmUnKSkgaXMgdHJ1ZQorCisKK1JhZGlvIGJ1dHRvbnMg
dGhhdCBhcmUgbm90IGluIGEgZm9ybSwgYnV0IGluIHRoZSBzYW1lIG5hbWVkIGdyb3VwIHNob3Vs
ZCBiZSBhYmxlIHRvIGFjY2VzcyB0aGVpciBzaWJsaW5ncworUEFTUyB0ZXN0Mi5saW5rZWRVSUVs
ZW1lbnRBdEluZGV4KDApLmlzRXF1YWwodGVzdDIpIGlzIHRydWUKK1BBU1MgdGVzdDIubGlua2Vk
VUlFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgndGVzdDJfTm8nKSkgaXMgdHJ1ZQorCisKK1JhZGlvIGJ1dHRvbnMg
bGFiZWxlZCBieSAgc2hvdWxkIGJlIGFibGUgdG8gYWNjZXNzIHRoZWlyIHNpYmxpbmdzCitQQVNT
IHRlc3QzLmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbCh0ZXN0MykgaXMgdHJ1ZQor
UEFTUyB0ZXN0My5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwoYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCd0ZXN0M19ObycpKSBpcyB0cnVlCisK
KworUmFkaW8gYnV0dG9ucyBub3QgaW4gYSBncm91cHMgc2hvdWxkIG5vdCBoYXZlIHNpYmxpbmdz
ICh0aGUgZmlyc3QgbGlua2VkIGVsZW1lbnQgaXMgaXRzZWxmKQorUEFTUyB0ZXN0NC5saW5rZWRV
SUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwodGVzdDQpIGlzIHRydWUKK1BBU1MgIXRlc3Q0Lmxp
bmtlZFVJRWxlbWVudEF0SW5kZXgoMSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgo
MSkuaXNWYWxpZCBpcyB0cnVlCisKKworUmFkaW8gYnV0dG9ucyB0aGF0IGp1c3QgaGF2ZSBhcmlh
IHJvbGVzIHNob3VsZCB3b3JrLgorUEFTUyBhcmlhUmFkaW8xLmxpbmtlZFVJRWxlbWVudEF0SW5k
ZXgoMCkuaXNFcXVhbChhcmlhUmFkaW8xKSBpcyB0cnVlCitQQVNTIGFyaWFSYWRpbzEubGlua2Vk
VUlFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGFyaWFSYWRpbzIpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVt
YmVycy5odG1sCShyZXZpc2lvbiAxOTg0MjUpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDgg
KzM1LDE3IEBACiAgICAgPC9mb3JtPgogICAgIDxicj48YnI+CiAKKyAgICA8IS0tIFRlc3QgcmFk
aW9ncm91cCBwYXJlbnRhZ2UgLS0+CisgICAgPGRpdiBjbGFzcz0icmFkaW9ncm91cCIgcm9sZT0i
cmFkaW9ncm91cCIgaWQ9InJhZGlvZ3JvdXAiPgorICAgIDxkaXY+CisgICAgICAgPGRpdiByb2xl
PSJyYWRpbyIgaWQ9ImFyaWFyYWRpbzEiIGFyaWEtY2hlY2tlZD0idHJ1ZSI+UmFkaW8gMTwvZGl2
PgorICAgICAgIDxkaXYgcm9sZT0icmFkaW8iIGlkPSJhcmlhcmFkaW8yIiBhcmlhLWNoZWNrZWQ9
ImZhbHNlIj5SYWRpbyAyPC9kaXY+CisgICAgICAgPGRpdiByb2xlPSJyYWRpbyIgYXJpYS1jaGVj
a2VkPSJmYWxzZSI+UmFkaW8gMzwvZGl2PgogICAgIDwvZGl2PgorICAgIDwvZGl2PgogCisgICAg
PC9kaXY+CisKICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KICAgICA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIApAQCAtNjksNiArNzgsMTMgQEAKICAgICAgICAgICAgIHZhciB0ZXN0NCA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGVzdDRfWWVz
Iik7CiAgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5k
ZXgoMCkuaXNFcXVhbCh0ZXN0NCkiKTsKICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiIXRlc3Q0
LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5k
ZXgoMSkuaXNWYWxpZCIpOworICAgICAgICAgICAgZGVidWcoIlxuIik7CisKKyAgICAgICAgICAg
IGRlYnVnKCJSYWRpbyBidXR0b25zIHRoYXQganVzdCBoYXZlIGFyaWEgcm9sZXMgc2hvdWxkIHdv
cmsuIik7CisgICAgICAgICAgICB2YXIgYXJpYVJhZGlvMSA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYXJpYXJhZGlvMSIpOworICAgICAgICAgICAgdmFy
IGFyaWFSYWRpbzIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImFyaWFyYWRpbzIiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJpYVJhZGlvMS5s
aW5rZWRVSUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXJpYVJhZGlvMSkiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiYXJpYVJhZGlvMS5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDEpLmlz
RXF1YWwoYXJpYVJhZGlvMikiKTsKICAgCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgfQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9u
LWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTk4NDI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0K
LQotCi1UaGlzIHRlc3RzIHRoYXQgbGlua2VkIFVJIGVsZW1lbnRzIHdpdGhpbmcgYSByYWRpbyBn
cm91cCB3b3JrCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1SYWRpbyBidXR0b25z
IHdpdGhpbiB0aGUgc2FtZSBuYW1lZCBncm91cCBzaG91bGQgYmUgYWJsZSB0byBhY2Nlc3MgdGhl
aXIgc2libGluZ3MKLVBBU1MgdGVzdDEubGlua2VkVUlFbGVtZW50QXRJbmRleCgwKS5pc0VxdWFs
KHRlc3QxKSBpcyB0cnVlCi1QQVNTIHRlc3QxLmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkuaXNF
cXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ3Rlc3Qx
X05vJykpIGlzIHRydWUKLVBBU1MgdGVzdDEubGlua2VkVUlFbGVtZW50QXRJbmRleCgyKS5pc0Vx
dWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGVzdDFf
TWF5YmUnKSkgaXMgdHJ1ZQotCi0KLVJhZGlvIGJ1dHRvbnMgdGhhdCBhcmUgbm90IGluIGEgZm9y
bSwgYnV0IGluIHRoZSBzYW1lIG5hbWVkIGdyb3VwIHNob3VsZCBiZSBhYmxlIHRvIGFjY2VzcyB0
aGVpciBzaWJsaW5ncwotUEFTUyB0ZXN0Mi5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDApLmlzRXF1
YWwodGVzdDIpIGlzIHRydWUKLVBBU1MgdGVzdDIubGlua2VkVUlFbGVtZW50QXRJbmRleCgxKS5p
c0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgndGVz
dDJfTm8nKSkgaXMgdHJ1ZQotCi0KLVJhZGlvIGJ1dHRvbnMgbGFiZWxlZCBieSAgc2hvdWxkIGJl
IGFibGUgdG8gYWNjZXNzIHRoZWlyIHNpYmxpbmdzCi1QQVNTIHRlc3QzLmxpbmtlZFVJRWxlbWVu
dEF0SW5kZXgoMCkuaXNFcXVhbCh0ZXN0MykgaXMgdHJ1ZQotUEFTUyB0ZXN0My5saW5rZWRVSUVs
ZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCd0ZXN0M19ObycpKSBpcyB0cnVlCi0KLQotUmFkaW8gYnV0dG9ucyBub3Qg
aW4gYSBncm91cHMgc2hvdWxkIG5vdCBoYXZlIHNpYmxpbmdzICh0aGUgZmlyc3QgbGlua2VkIGVs
ZW1lbnQgaXMgaXRzZWxmKQotUEFTUyB0ZXN0NC5saW5rZWRVSUVsZW1lbnRBdEluZGV4KDApLmlz
RXF1YWwodGVzdDQpIGlzIHRydWUKLVBBU1MgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgo
MSkgfHwgIXRlc3Q0LmxpbmtlZFVJRWxlbWVudEF0SW5kZXgoMSkuaXNWYWxpZCBpcyB0cnVlCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>