<?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>70220</bug_id>
          
          <creation_ts>2011-10-17 01:28:40 -0700</creation_ts>
          <short_desc>Remove OptionGroupElement</short_desc>
          <delta_ts>2011-10-17 22:38:48 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484988</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 01:28:40 -0700</bug_when>
    <thetext>Remove OptionGroupElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484989</commentid>
    <comment_count>1</comment_count>
      <attachid>111224</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 01:35:06 -0700</bug_when>
    <thetext>Created attachment 111224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484990</commentid>
    <comment_count>2</comment_count>
      <attachid>111224</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-17 01:38:13 -0700</bug_when>
    <thetext>Comment on attachment 111224
Patch

Attachment 111224 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10079784</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484994</commentid>
    <comment_count>3</comment_count>
      <attachid>111225</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 01:45:50 -0700</bug_when>
    <thetext>Created attachment 111225
Patch 2

GTK build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485246</commentid>
    <comment_count>4</comment_count>
      <attachid>111225</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 10:16:09 -0700</bug_when>
    <thetext>Comment on attachment 111225
Patch 2

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

&gt; Source/WebCore/dom/OptionElement.cpp:112
&gt; +    if (parentElement &amp;&amp; isHTMLOptGroupElement(parentElement))

I’m not sure we should have a special function for this. Just doing hasTagName(optgroupTag) directly seems fine to me.

&gt; Source/WebCore/html/HTMLOptGroupElement.cpp:147
&gt; +    return node &amp;&amp; node-&gt;isHTMLElement() &amp;&amp; node-&gt;hasTagName(optgroupTag);

There is no need for the isHTMLElement check in this function. The hasTagName function already checks the namespace and will return false for non-HTMLElement.

&gt; Source/WebCore/html/HTMLOptGroupElement.h:64
&gt; +bool isHTMLOptGroupElement(const Node*);

As I said above, I am not sure we need a helper function. It’s the same thing as calling hasTagName(optgroupTag).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485773</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 21:01:17 -0700</bug_when>
    <thetext>Thank you for reviewing.

Ok, I&apos;ll remove isHTMLOptGroupElement(), and land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485774</commentid>
    <comment_count>6</comment_count>
      <attachid>111374</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 21:05:55 -0700</bug_when>
    <thetext>Created attachment 111374
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485811</commentid>
    <comment_count>7</comment_count>
      <attachid>111374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 22:38:43 -0700</bug_when>
    <thetext>Comment on attachment 111374
Patch for landing

Clearing flags on attachment: 111374

Committed r97720: &lt;http://trac.webkit.org/changeset/97720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485812</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 22:38:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111224</attachid>
            <date>2011-10-17 01:35:06 -0700</date>
            <delta_ts>2011-10-17 01:45:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70220-20111017173504.patch</filename>
            <type>text/plain</type>
            <size>21995</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1OTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlOWQ0YTE0MTEwNjk3ZGIy
YmZmZjVjNTVjMjg0NGYxODcxZDM1MTIwLi4yM2E1OTYyODJlNTM0Y2E2NjA3NzVlOTc4YWJlYjEy
NzVkYzA4OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMTAtMTcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBPcHRpb25Hcm91
cEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDogUmVtb3ZlIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgYW5kL29yIE9wdGlvbkdyb3VwRWxl
bWVudC5oLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogZGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS5wcm86IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBk
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRv
LgorICAgICAgICAqIGRvbS9PcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9w
dGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGluZ0dyb3VwTGFiZWwpOgorICAg
ICAgICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBvZiB0b09wdGlvbkdyb3Vw
RWxlbWVudCgpLgorICAgICAgICAqIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1M
T3B0R3JvdXBFbGVtZW50KTogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50Lmg6CisgICAgICAgICAtIERvbid0IGluaGVyaXQgT3B0aW9uR3JvdXBFbGVtZW50LgorICAg
ICAgICAgLSBNYWtlIGdyb3VwTGFiZWxUZXh0KCkgbm9uLXZpcnR1YWwuCisgICAgICAgICAtIEFk
ZCBpc0hUTUxPcHRHcm91cEVsZW1lbnQoKSBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBodG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50
OjpyZWNhbGNMaXN0SXRlbXMpOgorICAgICAgICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkg
aW5zdGVhZCBvZiBpc09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgRG9uJ3QgdXNlIHRvT3B0aW9uRWxlbWVudCgpLCB1c2Ug
aXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgYW5kIHN0YXRpY19jYXN0PD4gaW5zdGVhZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAgICAg
ICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBvZiBpc09wdGlvbkdyb3VwRWxl
bWVudCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6aXRlbVRleHQpOgorICAgICAgICBEb24ndCB1c2Ug
dG9PcHRpb25FbGVtZW50KCksIHVzZSBpc0hUTUxPcHRHcm91cEVsZW1lbnQoKSBhbmQgc3RhdGlj
X2Nhc3Q8PiBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1J
c0VuYWJsZWQpOgorICAgICAgICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBv
ZiBpc09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxp
c3Q6Oml0ZW1Jc0xhYmVsKTogZGl0dG8uCisKIDIwMTEtMTAtMTcgIEFuZHJlaSBMYXZyZW5peXVr
ICA8YW5keS5sYXZyQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggY2xhbmcgV2ViS2l0R1RLKyBi
dWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODI5MjVlYTNjYTBiMjM5N2Y4YTFhMzAyODZl
MDBmM2RlMGJmNTI2Ni4uODkwNDc2OTcxYTZkMjgxNDBlNTdhYmJjYjlhMDlmZmI0MDg1YThkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU2NSw3ICs1NjUsNiBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGRvbS9Ob3RhdGlvbi5j
cHAKICAgICBkb20vT3B0aW9uRWxlbWVudC5jcHAKLSAgICBkb20vT3B0aW9uR3JvdXBFbGVtZW50
LmNwcAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcAogICAgIGRvbS9QYWdlVHJhbnNpdGlvbkV2
ZW50LmNwcAogICAgIGRvbS9QZW5kaW5nU2NyaXB0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGMy
MTE4Nzg4ODQxYzhlYjc0OTYxZjU0Zjk4N2FiODFiYjYwYjBlNDYuLjgzOWFhNWQ2ZTZiZTUyM2Yz
OWY2OWI5NmViYmE2ZmVhM2RkMjE5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUyNDUsOCArNTI0
NSw2IEBACiAgICAgICAgICAgICAnZG9tL05vdGF0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9P
cHRpb25FbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL09wdGlvbkVsZW1lbnQuaCcsCi0g
ICAgICAgICAgICAnZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ2Rv
bS9PcHRpb25Hcm91cEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL092ZXJmbG93RXZlbnQu
Y3BwJywKICAgICAgICAgICAgICdkb20vT3ZlcmZsb3dFdmVudC5oJywKICAgICAgICAgICAgICdk
b20vUGFnZVRyYW5zaXRpb25FdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBiMGM0YmQ4MGE4
NTc3NTQxZTkwZDg1OGM3MjlhYjQyMGFmYjEyOWRmLi43MjkyZmY3ZmQ2MWI2YWY5ODUwOTM0NDE2
OWU1ZWI4ODE4OGI3NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNTI4LDcgKzUyOCw2IEBAIFNPVVJD
RVMgKz0gXAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwIFwKICAgICBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwIFwKICAgICBkb20vTm90YXRpb24uY3BwIFwKLSAgICBkb20vT3B0aW9uR3Jv
dXBFbGVtZW50LmNwcCBcCiAgICAgZG9tL09wdGlvbkVsZW1lbnQuY3BwIFwKICAgICBkb20vU3Rh
dGljSGFzaFNldE5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL092ZXJmbG93RXZlbnQuY3BwIFwKQEAg
LTE1NjIsNyArMTU2MSw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5oIFwKICAgICBkb20vTm90YXRpb24uaCBcCiAgICAgZG9tL09wdGlvbkVsZW1lbnQuaCBc
Ci0gICAgZG9tL09wdGlvbkdyb3VwRWxlbWVudC5oIFwKICAgICBkb20vU3RhdGljSGFzaFNldE5v
ZGVMaXN0LmggXAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmggXAogICAgIGRvbS9QYWdlVHJhbnNp
dGlvbkV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCBmM2NkMzdkZWU1NzM5ZmY4Mzk3N2M1Y2JiMjk2NjZiOWRlMzAzNzM2Li44NGRj
ODY4OTFkYTA1ODNhZjY2NGUzNDI1NGE1MTAwNGRjMTZjZTJhIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDc4OTAsNjIgKzQ3ODkwLDYgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE9w
dGlvbkdyb3VwRWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25Hcm91cEVsZW1lbnQuaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE92ZXJmbG93
RXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NzgyMTgyZDhh
NzJhOTA4YTQwNDA0OTNlZWYyMWY2NjY5MDAwNDQyLi44N2NmNjBkY2MxZjJiNmQ4MzYyMGRkZWY3
NjNlODYxMjEyMTE3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzEsOCArMTMxLDYgQEAKIAkJMDg2QkJEMEYxMzYwMzlD
MjAwOEIxNUQ4IC8qIEdseXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODcyODE1NTBGMjZCOUI2
MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1MTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxl
bWVudC5jcHAgKi87IH07CiAJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODcy
ODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oICovOyB9OwotCQkwODcyODE1
NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzI4MTUzMEYyNkI5QjYwMEFGQzU5
NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwICovOyB9OwotCQkwODcyODE1ODBGMjZCOUI2MDBB
RkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1NDBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3Jv
dXBFbGVtZW50LmggKi87IH07CiAJCTA4NzNCODZCMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBh
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzNC
ODZBMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODc1NThDNTEzQjRBNTdEMDBGNDkzMDcgLyog
U3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzU1OEMzMTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJy
b2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwICovOyB9OwogCQkwODc1NThDNjEzQjRBNTdE
MDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODc1NThDNDEzQjRBNTdEMDBGNDkz
MDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcxNTIsOCArNzE1MCw2IEBACiAJCTA4
NkJCRDBFMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHbHlwaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODcyODE1
MTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBPcHRpb25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDg3MjgxNTIwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwODcyODE1MzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9u
R3JvdXBFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9w
dGlvbkdyb3VwRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NzI4
MTU0MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uR3JvdXBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NzNCODZBMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBhZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhQYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA4NzU1OEMzMTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQ
YWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg3NTU4QzQxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJvZ2F0ZVBhaXJB
d2FyZVRleHRJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXJy
b2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIxMTQ4LDggKzIxMTQ0LDYgQEAKIAkJCQk5M0VFQzFGNDA5QzI4Nzc3MDBDNTE1RDEgLyog
Tm90YXRpb24uaWRsICovLAogCQkJCTA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25F
bGVtZW50LmNwcCAqLywKIAkJCQkwODcyODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxl
bWVudC5oICovLAotCQkJCTA4NzI4MTUzMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVs
ZW1lbnQuY3BwICovLAotCQkJCTA4NzI4MTU0MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91
cEVsZW1lbnQuaCAqLywKIAkJCQkxQTBENTczNDBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dF
dmVudC5jcHAgKi8sCiAJCQkJMUEwRDU3MzUwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZl
bnQuaCAqLywKIAkJCQkxQTBENTczODBBNUM3ODEyMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5p
ZGwgKi8sCkBAIC0yMzY3Nyw3ICsyMzY3MSw2IEBACiAJCQkJRjRFQUY0QUYxMEM3NDJCMTAwOTEw
MEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTI0NDVGNzEz
OTU4OTNBMDA0QjZDMTkgLyogT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDg3MjgxNTYwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCTA4NzI4MTU4MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91
cEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwMTQ2MjhCMTAzQ0QxREUwMDBCMjBEQiAv
KiBPcmlnaW5BY2Nlc3NFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBOTI2N0QwRDUzRjA1
NzAwNjNFQ0MyIC8qIE9yaWdpblF1b3RhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFB
OTI2N0YwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblVzYWdlUmVjb3JkLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2NzI2LDcgKzI2NzE5LDYgQEAKIAkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEg
LyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0
RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3Jv
dXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTAwMTQ2MjhBMTAzQ0QxREUwMDBCMjBE
QiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5MjY3QzBE
NTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxQTkyNjdFMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5Vc2FnZVJlY29yZC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcAppbmRleCAyYmRkZGEx
ZmU3MWY3ZTlmYTkzY2FlOGE2NDcyY2VmYjM1ZDgzMTk5Li4zMzFlYTBmODZhYjA0OGVmNWVlNTQ4
YmM2ZWNhYTY3OWJjYjMzMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9u
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwCkBA
IC0yNCwxMCArMjQsMTAgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJP
cHRpb25Hcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIApAQCAtMTA5LDcgKzEwOSw3IEBAIFN0cmluZyBPcHRpb25F
bGVtZW50Ojpub3JtYWxpemVUZXh0KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBzcmMpCiBTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblRleHRSZXNwZWN0
aW5nR3JvdXBMYWJlbChjb25zdCBPcHRpb25FbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWxlbWVu
dCogZWxlbWVudCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KGVsZW1lbnQtPnBhcmVudE5vZGUoKSk7Ci0gICAgaWYgKHBhcmVudEVsZW1lbnQg
JiYgdG9PcHRpb25Hcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkpCisgICAgaWYgKHBhcmVudEVs
ZW1lbnQgJiYgaXNIVE1MT3B0R3JvdXBFbGVtZW50KHBhcmVudEVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm4gIiAgICAiICsgY29sbGVjdE9wdGlvbkxhYmVsT3JUZXh0KGRhdGEsIGVsZW1lbnQpOwog
CiAgICAgcmV0dXJuIGNvbGxlY3RPcHRpb25MYWJlbE9yVGV4dChkYXRhLCBlbGVtZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc2Mzk4OWE2YjQwZmY2YTE1NjYzZmRjMmE4ODQyNzNmMjIwM2ZhNTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiT3B0aW9uR3JvdXBFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJF
bGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTE9wdEdyb3Vw
RWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotT3B0aW9uR3JvdXBFbGVtZW50KiB0b09wdGlvbkdyb3VwRWxlbWVudChFbGVtZW50
KiBlbGVtZW50KQotewotICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGdyb3VwVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50KTsKLSAgICByZXR1cm4gMDsK
LX0KLQotYm9vbCBpc09wdGlvbkdyb3VwRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQotewotICAg
IHJldHVybiBlbGVtZW50LT5oYXNMb2NhbE5hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZyk7Ci19
Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25Hcm91cEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjk4YTNmMjhjN2ZlYWVmNjkwZGI0YmI5NDQwODhhMWQ5YjliZTRj
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVm
IE9wdGlvbkdyb3VwRWxlbWVudF9oCi0jZGVmaW5lIE9wdGlvbkdyb3VwRWxlbWVudF9oCi0KLSNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEVs
ZW1lbnQ7Ci0KLWNsYXNzIE9wdGlvbkdyb3VwRWxlbWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+T3B0aW9uR3JvdXBFbGVtZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBncm91cExh
YmVsVGV4dCgpIGNvbnN0ID0gMDsKLX07Ci0KLU9wdGlvbkdyb3VwRWxlbWVudCogdG9PcHRpb25H
cm91cEVsZW1lbnQoRWxlbWVudCopOwotYm9vbCBpc09wdGlvbkdyb3VwRWxlbWVudChFbGVtZW50
Kik7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcAppbmRleCBiMWU2YWIyYjNiOWY1ZWYwZDY1MGVlMTJiNjAwOTg2ZDEzYjQzODE0Li5k
ZGJjYmZlM2Q3NGEzNmE3NDZkM2Y1OTNhZDI0NGNiZTE4YjI0Nzg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTE0MSw1ICsxNDEsMTAgQEAgdm9p
ZCBIVE1MT3B0R3JvdXBFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkKICAgICBpZiAoc2Vs
ZWN0ICYmICFzZWxlY3QtPmZvY3VzZWQoKSkKICAgICAgICAgc2VsZWN0LT5hY2Nlc3NLZXlBY3Rp
b24oZmFsc2UpOwogfQorCitib29sIGlzSFRNTE9wdEdyb3VwRWxlbWVudChjb25zdCBOb2RlKiBu
b2RlKQoreworICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBub2Rl
LT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKTsKK30KICAgICAKIH0gLy8gbmFtZXNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCmluZGV4IGI3Nzc3YTY1MDdjMmNm
OWI5MjRiZDM5NzcxYjY2ODA2MGE2NjNhODIuLmZhMWI3OGY4NjEyZmM4OTBiOTI2OGIyMWExOWI1
YjUyMTZmMGU4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3Vw
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5o
CkBAIC0yNSwxOSArMjUsMTggQEAKICNkZWZpbmUgSFRNTE9wdEdyb3VwRWxlbWVudF9oCiAKICNp
bmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCi0jaW5jbHVkZSAiT3B0aW9uR3JvdXBF
bGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEhUTUxTZWxlY3RF
bGVtZW50OwogCi1jbGFzcyBIVE1MT3B0R3JvdXBFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQsIHB1YmxpYyBPcHRpb25Hcm91cEVsZW1lbnQgeworY2xhc3MgSFRNTE9wdEdy
b3VwRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3B0R3JvdXBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBIVE1MU2Vs
ZWN0RWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdmlydHVh
bCBTdHJpbmcgZ3JvdXBMYWJlbFRleHQoKSBjb25zdDsKKyAgICBTdHJpbmcgZ3JvdXBMYWJlbFRl
eHQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBIVE1MT3B0R3JvdXBFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwpAQCAtNjIsNiArNjEs
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKIH07CiAKK2Jv
b2wgaXNIVE1MT3B0R3JvdXBFbGVtZW50KGNvbnN0IE5vZGUqKTsKKwogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXgg
M2YxNzFlYjA1YzEyYTA3NzgyYWZjOGQ2ZTlkMzg3ZWNmOTFiOTYwZi4uY2Y0MTg0NzE4N2JhY2Q5
MDYzMTcyNWFhYTNkN2U0YThiNTZmNTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKQEAgLTM3LDExICszNywxMSBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJPcHRpb25Hcm91
cEVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5o
IgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCkBAIC02NzksNyArNjc5LDcgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6cmVjYWxjTGlzdEl0ZW1zKGJvb2wgdXBkYXRlU2VsZWN0ZWRTdGF0
ZXMpIGNvbnN0CiAgICAgICAgIC8vIG9wdGdyb3VwIHRhZ3MgbWF5IG5vdCBuZXN0LiBIb3dldmVy
LCBib3RoIEZpcmVGb3ggYW5kIElFIHdpbGwKICAgICAgICAgLy8gZmxhdHRlbiB0aGUgdHJlZSBh
dXRvbWF0aWNhbGx5LCBzbyB3ZSBmb2xsb3cgc3VpdC4KICAgICAgICAgLy8gKGh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0MDEvaW50ZXJhY3QvZm9ybXMuaHRtbCNoLTE3LjYpCi0gICAgICAgIGlm
IChpc09wdGlvbkdyb3VwRWxlbWVudChjdXJyZW50KSkgeworICAgICAgICBpZiAoaXNIVE1MT3B0
R3JvdXBFbGVtZW50KGN1cnJlbnQpKSB7CiAgICAgICAgICAgICBtX2xpc3RJdGVtcy5hcHBlbmQo
Y3VycmVudCk7CiAgICAgICAgICAgICBpZiAoY3VycmVudC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAg
ICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggYTBkZGNiMmE3MDBiYmFm
NzZkNDkzNTk1ZjljYjIwMWRmNTcyM2IyNC4uM2E2ZDQxMzE4Njg2MGU5OGJmMmJmMDJiYWFhNWI0
YTgzMThmYTk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtNDMsMTAgKzQzLDEwIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRN
TE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgotI2lu
Y2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCkBAIC0xMTYsOCArMTE2
LDggQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAg
ICBGb250IGl0ZW1Gb250ID0gc3R5bGUoKS0+Zm9udCgpOwogICAgICAgICAgICAgaWYgKE9wdGlv
bkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoZWxlbWVudCkpCiAgICAg
ICAgICAgICAgICAgdGV4dCA9IG9wdGlvbkVsZW1lbnQtPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdy
b3VwTGFiZWwoKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKE9wdGlvbkdyb3VwRWxlbWVudCogb3B0
aW9uR3JvdXBFbGVtZW50ID0gdG9PcHRpb25Hcm91cEVsZW1lbnQoZWxlbWVudCkpIHsKLSAgICAg
ICAgICAgICAgICB0ZXh0ID0gb3B0aW9uR3JvdXBFbGVtZW50LT5ncm91cExhYmVsVGV4dCgpOwor
ICAgICAgICAgICAgZWxzZSBpZiAoaXNIVE1MT3B0R3JvdXBFbGVtZW50KGVsZW1lbnQpKSB7Cisg
ICAgICAgICAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxPcHRHcm91cEVsZW1l
bnQqPihlbGVtZW50KS0+Z3JvdXBMYWJlbFRleHQoKTsKICAgICAgICAgICAgICAgICBGb250RGVz
Y3JpcHRpb24gZCA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAg
IGQuc2V0V2VpZ2h0KGQuYm9sZGVyV2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGl0ZW1Gb250
ID0gRm9udChkLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250LndvcmRTcGFjaW5n
KCkpOwpAQCAtMzg0LDggKzM4NCw4IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9y
ZWdyb3VuZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmCiAgICAgU3Ry
aW5nIGl0ZW1UZXh0OwogICAgIGlmIChvcHRpb25FbGVtZW50KQogICAgICAgICBpdGVtVGV4dCA9
IG9wdGlvbkVsZW1lbnQtPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICBl
bHNlIGlmIChPcHRpb25Hcm91cEVsZW1lbnQqIG9wdGlvbkdyb3VwRWxlbWVudCA9IHRvT3B0aW9u
R3JvdXBFbGVtZW50KGVsZW1lbnQpKQotICAgICAgICBpdGVtVGV4dCA9IG9wdGlvbkdyb3VwRWxl
bWVudC0+Z3JvdXBMYWJlbFRleHQoKTsKKyAgICBlbHNlIGlmIChpc0hUTUxPcHRHcm91cEVsZW1l
bnQoZWxlbWVudCkpCisgICAgICAgIGl0ZW1UZXh0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTE9w
dEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpLT5ncm91cExhYmVsVGV4dCgpOwogICAgIGFwcGx5VGV4
dFRyYW5zZm9ybShzdHlsZSgpLCBpdGVtVGV4dCwgJyAnKTsKIAogICAgIENvbG9yIHRleHRDb2xv
ciA9IGVsZW1lbnQtPnJlbmRlclN0eWxlKCkgPyBlbGVtZW50LT5yZW5kZXJTdHlsZSgpLT52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcikgOiBzdHlsZSgpLT52aXNpdGVkRGVw
ZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7CkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBS
ZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYKICAgICBMYXlvdXRSZWN0IHIgPSBpdGVtQm91bmRpbmdCb3hSZWN0
KHBhaW50T2Zmc2V0LCBsaXN0SW5kZXgpOwogICAgIHIubW92ZShpdGVtT2Zmc2V0Rm9yQWxpZ25t
ZW50KHRleHRSdW4sIGl0ZW1TdHlsZSwgaXRlbUZvbnQsIHIpKTsKIAotICAgIGlmIChpc09wdGlv
bkdyb3VwRWxlbWVudChlbGVtZW50KSkgeworICAgIGlmIChpc0hUTUxPcHRHcm91cEVsZW1lbnQo
ZWxlbWVudCkpIHsKICAgICAgICAgRm9udERlc2NyaXB0aW9uIGQgPSBpdGVtRm9udC5mb250RGVz
Y3JpcHRpb24oKTsKICAgICAgICAgZC5zZXRXZWlnaHQoZC5ib2xkZXJXZWlnaHQoKSk7CiAgICAg
ICAgIGl0ZW1Gb250ID0gRm9udChkLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250
LndvcmRTcGFjaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKaW5kZXggMzY4MTk5YzVhOGJhOTA0ODJmYzZiYWVlZTQ5YTZhYWIzOTY1NzQ3NC4uMTdh
ZGFlNjM5MGYxMTYyYTBjNjM1M2JiOTAxNTkyN2UwOTMzYzJhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zNzUsOCArMzc1LDggQEAgU3RyaW5n
IFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAKICAg
ICBTdHJpbmcgaXRlbVN0cmluZzsKICAgICBFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2xp
c3RJbmRleF07Ci0gICAgaWYgKE9wdGlvbkdyb3VwRWxlbWVudCogb3B0aW9uR3JvdXBFbGVtZW50
ID0gdG9PcHRpb25Hcm91cEVsZW1lbnQoZWxlbWVudCkpCi0gICAgICAgIGl0ZW1TdHJpbmcgPSBv
cHRpb25Hcm91cEVsZW1lbnQtPmdyb3VwTGFiZWxUZXh0KCk7CisgICAgaWYgKGlzSFRNTE9wdEdy
b3VwRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgaXRlbVN0cmluZyA9IHN0YXRpY19jYXN0PGNv
bnN0IEhUTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50KS0+Z3JvdXBMYWJlbFRleHQoKTsKICAg
ICBlbHNlIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50
KGVsZW1lbnQpKQogICAgICAgICBpdGVtU3RyaW5nID0gb3B0aW9uRWxlbWVudC0+dGV4dEluZGVu
dGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOwogCkBAIC00MjAsNyArNDIwLDcgQEAgYm9vbCBSZW5k
ZXJNZW51TGlzdDo6aXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAKICAg
ICBib29sIGdyb3VwRW5hYmxlZCA9IHRydWU7CiAgICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1l
bnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGlzT3B0aW9uR3Jv
dXBFbGVtZW50KHBhcmVudEVsZW1lbnQpKQorICAgICAgICBpZiAoaXNIVE1MT3B0R3JvdXBFbGVt
ZW50KHBhcmVudEVsZW1lbnQpKQogICAgICAgICAgICAgZ3JvdXBFbmFibGVkID0gIXN0YXRpY19j
YXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihwYXJlbnRFbGVtZW50KS0+ZGlzYWJsZWQoKTsKICAg
ICB9CiAgICAgaWYgKCFncm91cEVuYWJsZWQpCkBAIC01NDksNyArNTQ5LDcgQEAgYm9vbCBSZW5k
ZXJNZW51TGlzdDo6aXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKIGJv
b2wgUmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QK
IHsKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gdG9IVE1MU2Vs
ZWN0RWxlbWVudChub2RlKCkpLT5saXN0SXRlbXMoKTsKLSAgICByZXR1cm4gbGlzdEluZGV4IDwg
bGlzdEl0ZW1zLnNpemUoKSAmJiBpc09wdGlvbkdyb3VwRWxlbWVudChsaXN0SXRlbXNbbGlzdElu
ZGV4XSk7CisgICAgcmV0dXJuIGxpc3RJbmRleCA8IGxpc3RJdGVtcy5zaXplKCkgJiYgaXNIVE1M
T3B0R3JvdXBFbGVtZW50KGxpc3RJdGVtc1tsaXN0SW5kZXhdKTsKIH0KIAogYm9vbCBSZW5kZXJN
ZW51TGlzdDo6aXRlbUlzU2VsZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111225</attachid>
            <date>2011-10-17 01:45:50 -0700</date>
            <delta_ts>2011-10-17 21:05:48 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-70220-20111017174548.patch</filename>
            <type>text/plain</type>
            <size>22671</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1OTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlOWQ0YTE0MTEwNjk3ZGIy
YmZmZjVjNTVjMjg0NGYxODcxZDM1MTIwLi42OGM1YzI5OThjMmM5ZTQ2NWEwMzgyZDA3ZGMyZTk0
NjhkMWYyMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTAtMTcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBPcHRpb25Hcm91
cEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDogUmVtb3ZlIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgYW5kL29yIE9wdGlvbkdyb3VwRWxl
bWVudC5oLgorICAgICAgICAqIEdOVU1ha2VmaWxlLmFtLmxpc3Q6IGRpdHRvLgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IGRpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBkaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIGRvbS9P
cHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnQ6OmNvbGxl
Y3RPcHRpb25UZXh0UmVzcGVjdGluZ0dyb3VwTGFiZWwpOgorICAgICAgICBVc2UgaXNIVE1MT3B0
R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBvZiB0b09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAg
ICAqIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9P
cHRpb25Hcm91cEVsZW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MT3B0R3JvdXBFbGVtZW50KTog
QWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAgICAgICAt
IERvbid0IGluaGVyaXQgT3B0aW9uR3JvdXBFbGVtZW50LgorICAgICAgICAgLSBNYWtlIGdyb3Vw
TGFiZWxUZXh0KCkgbm9uLXZpcnR1YWwuCisgICAgICAgICAtIEFkZCBpc0hUTUxPcHRHcm91cEVs
ZW1lbnQoKSBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZWNhbGNMaXN0SXRlbXMp
OgorICAgICAgICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBvZiBpc09wdGlv
bkdyb3VwRWxlbWVudCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAg
ICAgICAgRG9uJ3QgdXNlIHRvT3B0aW9uRWxlbWVudCgpLCB1c2UgaXNIVE1MT3B0R3JvdXBFbGVt
ZW50KCkgYW5kIHN0YXRpY19jYXN0PD4gaW5zdGVhZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAgICAgICBVc2UgaXNIVE1MT3B0R3Jv
dXBFbGVtZW50KCkgaW5zdGVhZCBvZiBpc09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6aXRlbVRleHQpOgorICAgICAgICBEb24ndCB1c2UgdG9PcHRpb25FbGVtZW50KCks
IHVzZSBpc0hUTUxPcHRHcm91cEVsZW1lbnQoKSBhbmQgc3RhdGljX2Nhc3Q8PiBpbnN0ZWFkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc0VuYWJsZWQpOgorICAgICAg
ICBVc2UgaXNIVE1MT3B0R3JvdXBFbGVtZW50KCkgaW5zdGVhZCBvZiBpc09wdGlvbkdyb3VwRWxl
bWVudCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc0xhYmVsKTog
ZGl0dG8uCisKIDIwMTEtMTAtMTcgIEFuZHJlaSBMYXZyZW5peXVrICA8YW5keS5sYXZyQGdtYWls
LmNvbT4KIAogICAgICAgICBGaXggY2xhbmcgV2ViS2l0R1RLKyBidWlsZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggODI5MjVlYTNjYTBiMjM5N2Y4YTFhMzAyODZlMDBmM2RlMGJmNTI2Ni4uODkw
NDc2OTcxYTZkMjgxNDBlNTdhYmJjYjlhMDlmZmI0MDg1YThkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTU2NSw3ICs1NjUsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGRvbS9Ob3RhdGlvbi5jcHAKICAgICBkb20vT3B0aW9u
RWxlbWVudC5jcHAKLSAgICBkb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcAogICAgIGRvbS9PdmVy
Zmxvd0V2ZW50LmNwcAogICAgIGRvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmNwcAogICAgIGRvbS9Q
ZW5kaW5nU2NyaXB0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzM1ZGQ2
ZjJkNWQyMjZjMjg1OTkxNDExOTdhNDMxNTMxZDQ0YzQ3MS4uZjEyYjZhOWE1MzFlMjU1NDUxN2Y3
NjkwZWRiZDdlMzhhZDg2MThjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
MjYwLDggKzEyNjAsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob3RhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2Rv
bS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uR3Jv
dXBFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjMjExODc4ODg0
MWM4ZWI3NDk2MWY1NGY5ODdhYjgxYmI2MGIwZTQ2Li44MzlhYTVkNmU2YmU1MjNmMzlmNjliOTZl
YmJhNmZlYTNkZDIxOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MjQ1LDggKzUyNDUsNiBAQAog
ICAgICAgICAgICAgJ2RvbS9Ob3RhdGlvbi5oJywKICAgICAgICAgICAgICdkb20vT3B0aW9uRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9PcHRpb25FbGVtZW50LmgnLAotICAgICAgICAg
ICAgJ2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vT3B0aW9u
R3JvdXBFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9PdmVyZmxvd0V2ZW50LmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL092ZXJmbG93RXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1BhZ2VU
cmFuc2l0aW9uRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYjBjNGJkODBhODU3NzU0MWU5
MGQ4NThjNzI5YWI0MjBhZmIxMjlkZi4uNzI5MmZmN2ZkNjFiNmFmOTg1MDkzNDQxNjllNWViODgx
ODhiNzY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUyOCw3ICs1MjgsNiBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vTm9kZUl0ZXJhdG9yLmNwcCBcCiAgICAgZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcCBcCiAgICAgZG9tL05vdGF0aW9uLmNwcCBcCi0gICAgZG9tL09wdGlvbkdyb3VwRWxlbWVu
dC5jcHAgXAogICAgIGRvbS9PcHRpb25FbGVtZW50LmNwcCBcCiAgICAgZG9tL1N0YXRpY0hhc2hT
ZXROb2RlTGlzdC5jcHAgXAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcCBcCkBAIC0xNTYyLDcg
KzE1NjEsNiBAQCBIRUFERVJTICs9IFwKICAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBc
CiAgICAgZG9tL05vdGF0aW9uLmggXAogICAgIGRvbS9PcHRpb25FbGVtZW50LmggXAotICAgIGRv
bS9PcHRpb25Hcm91cEVsZW1lbnQuaCBcCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5o
IFwKICAgICBkb20vT3ZlcmZsb3dFdmVudC5oIFwKICAgICBkb20vUGFnZVRyYW5zaXRpb25FdmVu
dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZjNjZDM3ZGVlNTczOWZmODM5NzdjNWNiYjI5NjY2YjlkZTMwMzczNi4uODRkYzg2ODkxZGEw
NTgzYWY2NjRlMzQyNTRhNTEwMDRkYzE2Y2UyYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ3ODkwLDYyICs0Nzg5MCw2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25Hcm91
cEVsZW1lbnQuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJ
CQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0J
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cT3B0aW9uR3JvdXBFbGVtZW50LmgiCi0JCQkJPgotCQkJPC9G
aWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPdmVyZmxvd0V2ZW50LmNw
cCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjc4MjE4MmQ4YTcyYTkwOGE0
MDQwNDkzZWVmMjFmNjY2OTAwMDQ0Mi4uODdjZjYwZGNjMWYyYjZkODM2MjBkZGVmNzYzZTg2MTIx
MjExN2Y5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTMxLDggKzEzMSw2IEBACiAJCTA4NkJCRDBGMTM2MDM5QzIwMDhCMTVE
OCAvKiBHbHlwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDg2QkJEMEUxMzYwMzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg3MjgxNTUwRjI2QjlCNjAwQUZDNTk2
IC8qIE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDg3MjgxNTEwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3Bw
ICovOyB9OwogCQkwODcyODE1NjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MjgxNTIwRjI2
QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCAqLzsgfTsKLQkJMDg3MjgxNTcwRjI2QjlC
NjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1MzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0
aW9uR3JvdXBFbGVtZW50LmNwcCAqLzsgfTsKLQkJMDg3MjgxNTgwRjI2QjlCNjAwQUZDNTk2IC8q
IE9wdGlvbkdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDg3MjgxNTQwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVu
dC5oICovOyB9OwogCQkwODczQjg2QjEzNjA2NEVBMDBBNTIyQzIgLyogR2x5cGhQYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODczQjg2QTEzNjA2
NEVBMDBBNTIyQzIgLyogR2x5cGhQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg3NTU4QzUxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJvZ2F0
ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwODc1NThDMzEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJMDg3NTU4QzYxM0I0QTU3RDAwRjQ5MzA3
IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3NTU4QzQxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03MTUyLDggKzcxNTAsNiBAQAogCQkwODZCQkQwRTEz
NjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR2x5cGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg3MjgxNTEwRjI2QjlC
NjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gT3B0aW9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA4NzI4MTUyMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDg3MjgxNTMwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPcHRpb25Hcm91
cEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwODcyODE1NDBGMjZC
OUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE9wdGlvbkdyb3VwRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODczQjg2QTEzNjA2NEVBMDBBNTIyQzIgLyogR2x5cGhQYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdseXBoUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwODc1NThDMzEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJl
VGV4dEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA4NzU1OEM0MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTE0
OCw4ICsyMTE0NCw2IEBACiAJCQkJOTNFRUMxRjQwOUMyODc3NzAwQzUxNUQxIC8qIE5vdGF0aW9u
LmlkbCAqLywKIAkJCQkwODcyODE1MTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5j
cHAgKi8sCiAJCQkJMDg3MjgxNTIwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCAq
LywKLQkJCQkwODcyODE1MzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNw
cCAqLywKLQkJCQkwODcyODE1NDBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50
LmggKi8sCiAJCQkJMUEwRDU3MzQwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuY3Bw
ICovLAogCQkJCTFBMEQ1NzM1MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmggKi8s
CiAJCQkJMUEwRDU3MzgwQTVDNzgxMjAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuaWRsICovLApA
QCAtMjM2NzcsNyArMjM2NzEsNiBAQAogCQkJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBP
cGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUyNDQ1RjcxMzk1ODkzQTAw
NEI2QzE5IC8qIE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDE0NjI4QjEwM0NEMURFMDAwQjIwREIgLyogT3JpZ2lu
QWNjZXNzRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTkyNjdEMEQ1M0YwNTcwMDYzRUND
MiAvKiBPcmlnaW5RdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTkyNjdGMEQ1
M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5Vc2FnZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjcyNiw3ICsyNjcxOSw2IEBACiAJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNEVBRjRBRTEw
Qzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDg3MjgxNTUwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMDg3MjgxNTcwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwMDE0NjI4QTEwM0NEMURFMDAwQjIwREIgLyogT3Jp
Z2luQWNjZXNzRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOTI2N0MwRDUzRjA1NzAw
NjNFQ0MyIC8qIE9yaWdpblF1b3RhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5
MjY3RTBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMmJkZGRhMWZlNzFmN2U5
ZmE5M2NhZThhNjQ3MmNlZmIzNWQ4MzE5OS4uMzMxZWEwZjg2YWIwNDhlZjVlZTU0OGJjNmVjYWE2
NzliY2IzMzBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcApAQCAtMjQsMTAg
KzI0LDEwIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiT3B0aW9uR3Jv
dXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBTdHJpbmcgT3B0aW9uRWxlbWVudDo6
bm9ybWFsaXplVGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3Jj
KQogU3RyaW5nIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGluZ0dyb3Vw
TGFiZWwoY29uc3QgT3B0aW9uRWxlbWVudERhdGEmIGRhdGEsIGNvbnN0IEVsZW1lbnQqIGVsZW1l
bnQpCiB7CiAgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQq
PihlbGVtZW50LT5wYXJlbnROb2RlKCkpOwotICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHRvT3B0
aW9uR3JvdXBFbGVtZW50KHBhcmVudEVsZW1lbnQpKQorICAgIGlmIChwYXJlbnRFbGVtZW50ICYm
IGlzSFRNTE9wdEdyb3VwRWxlbWVudChwYXJlbnRFbGVtZW50KSkKICAgICAgICAgcmV0dXJuICIg
ICAgIiArIGNvbGxlY3RPcHRpb25MYWJlbE9yVGV4dChkYXRhLCBlbGVtZW50KTsKIAogICAgIHJl
dHVybiBjb2xsZWN0T3B0aW9uTGFiZWxPclRleHQoZGF0YSwgZWxlbWVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NjM5ODlhNmI0MGZmNmExNTY2M2ZkYzJhODg0MjczZjIyMDNmYTUyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9P
cHRpb25Hcm91cEVsZW1lbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgotCi0jaW5jbHVkZSAiRWxlbWVudC5o
IgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQu
aCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LU9wdGlvbkdyb3VwRWxlbWVudCogdG9PcHRpb25Hcm91cEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKLXsKLSAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZykpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWJv
b2wgaXNPcHRpb25Hcm91cEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICByZXR1cm4g
ZWxlbWVudC0+aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6b3B0Z3JvdXBUYWcpOwotfQotCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI5OGEzZjI4YzdmZWFlZjY5MGRiNGJiOTQ0MDg4YTFkOWI5YmU0Y2IuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL09wdGlvbkdyb3VwRWxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBPcHRpb25H
cm91cEVsZW1lbnRfaAotI2RlZmluZSBPcHRpb25Hcm91cEVsZW1lbnRfaAotCi0jaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVtZW50Owot
Ci1jbGFzcyBPcHRpb25Hcm91cEVsZW1lbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfk9wdGlv
bkdyb3VwRWxlbWVudCgpIHsgfQotCi0gICAgdmlydHVhbCBTdHJpbmcgZ3JvdXBMYWJlbFRleHQo
KSBjb25zdCA9IDA7Ci19OwotCi1PcHRpb25Hcm91cEVsZW1lbnQqIHRvT3B0aW9uR3JvdXBFbGVt
ZW50KEVsZW1lbnQqKTsKLWJvb2wgaXNPcHRpb25Hcm91cEVsZW1lbnQoRWxlbWVudCopOwotCi19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAK
aW5kZXggYjFlNmFiMmIzYjlmNWVmMGQ2NTBlZTEyYjYwMDk4NmQxM2I0MzgxNC4uZGRiY2JmZTNk
NzRhMzZhNzQ2ZDNmNTkzYWQyNDRjYmUxOGIyNDc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC0xNDEsNSArMTQxLDEwIEBAIHZvaWQgSFRNTE9w
dEdyb3VwRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpCiAgICAgaWYgKHNlbGVjdCAmJiAh
c2VsZWN0LT5mb2N1c2VkKCkpCiAgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5QWN0aW9uKGZhbHNl
KTsKIH0KKworYm9vbCBpc0hUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sK
KyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgbm9kZS0+aGFzVGFn
TmFtZShvcHRncm91cFRhZyk7Cit9CiAgICAgCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCBiNzc3N2E2NTA3YzJjZjliOTI0YmQz
OTc3MWI2NjgwNjBhNjYzYTgyLi5mYTFiNzhmODYxMmZjODkwYjkyNjhiMjFhMTliNWI1MjE2ZjBl
OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtMjUs
MTkgKzI1LDE4IEBACiAjZGVmaW5lIEhUTUxPcHRHcm91cEVsZW1lbnRfaAogCiAjaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgotI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsK
IAotY2xhc3MgSFRNTE9wdEdyb3VwRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LCBwdWJsaWMgT3B0aW9uR3JvdXBFbGVtZW50IHsKK2NsYXNzIEhUTUxPcHRHcm91cEVsZW1l
bnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCiAgICAgSFRNTFNlbGVjdEVsZW1l
bnQqIG93bmVyU2VsZWN0RWxlbWVudCgpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgU3RyaW5n
IGdyb3VwTGFiZWxUZXh0KCkgY29uc3Q7CisgICAgU3RyaW5nIGdyb3VwTGFiZWxUZXh0KCkgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgSFRNTE9wdEdyb3VwRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKQEAgLTYyLDYgKzYxLDggQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CiB9OwogCitib29sIGlzSFRN
TE9wdEdyb3VwRWxlbWVudChjb25zdCBOb2RlKik7CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDNmMTcxZWIw
NWMxMmEwNzc4MmFmYzhkNmU5ZDM4N2VjZjkxYjk2MGYuLmNmNDE4NDcxODdiYWNkOTA2MzE3MjVh
YWEzZDdlNGE4YjU2ZjU1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwCkBAIC0zNywxMSArMzcsMTEgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCi0jaW5jbHVkZSAiT3B0aW9uR3JvdXBFbGVtZW50
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNs
dWRlICJSZW5kZXJNZW51TGlzdC5oIgpAQCAtNjc5LDcgKzY3OSw3IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OnJlY2FsY0xpc3RJdGVtcyhib29sIHVwZGF0ZVNlbGVjdGVkU3RhdGVzKSBjb25z
dAogICAgICAgICAvLyBvcHRncm91cCB0YWdzIG1heSBub3QgbmVzdC4gSG93ZXZlciwgYm90aCBG
aXJlRm94IGFuZCBJRSB3aWxsCiAgICAgICAgIC8vIGZsYXR0ZW4gdGhlIHRyZWUgYXV0b21hdGlj
YWxseSwgc28gd2UgZm9sbG93IHN1aXQuCiAgICAgICAgIC8vIChodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNDAxL2ludGVyYWN0L2Zvcm1zLmh0bWwjaC0xNy42KQotICAgICAgICBpZiAoaXNPcHRp
b25Hcm91cEVsZW1lbnQoY3VycmVudCkpIHsKKyAgICAgICAgaWYgKGlzSFRNTE9wdEdyb3VwRWxl
bWVudChjdXJyZW50KSkgewogICAgICAgICAgICAgbV9saXN0SXRlbXMuYXBwZW5kKGN1cnJlbnQp
OwogICAgICAgICAgICAgaWYgKGN1cnJlbnQtPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICAgICAg
ICAgIGN1cnJlbnROb2RlID0gY3VycmVudC0+Zmlyc3RDaGlsZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IGEwZGRjYjJhNzAwYmJhZjc2ZDQ5MzU5
NWY5Y2IyMDFkZjU3MjNiMjQuLjNhNmQ0MTMxODY4NjBlOThiZjJiZjAyYmFhYTViNGE4MzE4ZmE5
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTQz
LDEwICs0MywxMCBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhp
dFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJP
cHRpb25Hcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgpAQCAtMTE2LDggKzExNiw4IEBAIHZv
aWQgUmVuZGVyTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgRm9udCBp
dGVtRm9udCA9IHN0eWxlKCktPmZvbnQoKTsKICAgICAgICAgICAgIGlmIChPcHRpb25FbGVtZW50
KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGVsZW1lbnQpKQogICAgICAgICAgICAg
ICAgIHRleHQgPSBvcHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVs
KCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChPcHRpb25Hcm91cEVsZW1lbnQqIG9wdGlvbkdyb3Vw
RWxlbWVudCA9IHRvT3B0aW9uR3JvdXBFbGVtZW50KGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAg
ICAgdGV4dCA9IG9wdGlvbkdyb3VwRWxlbWVudC0+Z3JvdXBMYWJlbFRleHQoKTsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKGlzSFRNTE9wdEdyb3VwRWxlbWVudChlbGVtZW50KSkgeworICAgICAgICAg
ICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxl
bWVudCktPmdyb3VwTGFiZWxUZXh0KCk7CiAgICAgICAgICAgICAgICAgRm9udERlc2NyaXB0aW9u
IGQgPSBpdGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgICAgICBkLnNldFdl
aWdodChkLmJvbGRlcldlaWdodCgpKTsKICAgICAgICAgICAgICAgICBpdGVtRm9udCA9IEZvbnQo
ZCwgaXRlbUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53b3JkU3BhY2luZygpKTsKQEAg
LTM4NCw4ICszODQsOCBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JgogICAgIFN0cmluZyBpdGVt
VGV4dDsKICAgICBpZiAob3B0aW9uRWxlbWVudCkKICAgICAgICAgaXRlbVRleHQgPSBvcHRpb25F
bGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0gICAgZWxzZSBpZiAo
T3B0aW9uR3JvdXBFbGVtZW50KiBvcHRpb25Hcm91cEVsZW1lbnQgPSB0b09wdGlvbkdyb3VwRWxl
bWVudChlbGVtZW50KSkKLSAgICAgICAgaXRlbVRleHQgPSBvcHRpb25Hcm91cEVsZW1lbnQtPmdy
b3VwTGFiZWxUZXh0KCk7CisgICAgZWxzZSBpZiAoaXNIVE1MT3B0R3JvdXBFbGVtZW50KGVsZW1l
bnQpKQorICAgICAgICBpdGVtVGV4dCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxPcHRHcm91cEVs
ZW1lbnQqPihlbGVtZW50KS0+Z3JvdXBMYWJlbFRleHQoKTsKICAgICBhcHBseVRleHRUcmFuc2Zv
cm0oc3R5bGUoKSwgaXRlbVRleHQsICcgJyk7CiAKICAgICBDb2xvciB0ZXh0Q29sb3IgPSBlbGVt
ZW50LT5yZW5kZXJTdHlsZSgpID8gZWxlbWVudC0+cmVuZGVyU3R5bGUoKS0+dmlzaXRlZERlcGVu
ZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpIDogc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENv
bG9yKENTU1Byb3BlcnR5Q29sb3IpOwpAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgUmVuZGVyTGlz
dEJveDo6cGFpbnRJdGVtRm9yZWdyb3VuZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmCiAgICAgTGF5b3V0UmVjdCByID0gaXRlbUJvdW5kaW5nQm94UmVjdChwYWludE9m
ZnNldCwgbGlzdEluZGV4KTsKICAgICByLm1vdmUoaXRlbU9mZnNldEZvckFsaWdubWVudCh0ZXh0
UnVuLCBpdGVtU3R5bGUsIGl0ZW1Gb250LCByKSk7CiAKLSAgICBpZiAoaXNPcHRpb25Hcm91cEVs
ZW1lbnQoZWxlbWVudCkpIHsKKyAgICBpZiAoaXNIVE1MT3B0R3JvdXBFbGVtZW50KGVsZW1lbnQp
KSB7CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBkID0gaXRlbUZvbnQuZm9udERlc2NyaXB0aW9u
KCk7CiAgICAgICAgIGQuc2V0V2VpZ2h0KGQuYm9sZGVyV2VpZ2h0KCkpOwogICAgICAgICBpdGVt
Rm9udCA9IEZvbnQoZCwgaXRlbUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53b3JkU3Bh
Y2luZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmlu
ZGV4IDM2ODE5OWM1YThiYTkwNDgyZmM2YmFlZWU0OWE2YWFiMzk2NTc0NzQuLjE3YWRhZTYzOTBm
MTE2MmEwYzYzNTNiYjkwMTU5MjdlMDkzM2MyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzc1LDggKzM3NSw4IEBAIFN0cmluZyBSZW5kZXJN
ZW51TGlzdDo6aXRlbVRleHQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogCiAgICAgU3RyaW5n
IGl0ZW1TdHJpbmc7CiAgICAgRWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tsaXN0SW5kZXhd
OwotICAgIGlmIChPcHRpb25Hcm91cEVsZW1lbnQqIG9wdGlvbkdyb3VwRWxlbWVudCA9IHRvT3B0
aW9uR3JvdXBFbGVtZW50KGVsZW1lbnQpKQotICAgICAgICBpdGVtU3RyaW5nID0gb3B0aW9uR3Jv
dXBFbGVtZW50LT5ncm91cExhYmVsVGV4dCgpOworICAgIGlmIChpc0hUTUxPcHRHcm91cEVsZW1l
bnQoZWxlbWVudCkpCisgICAgICAgIGl0ZW1TdHJpbmcgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1M
T3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudCktPmdyb3VwTGFiZWxUZXh0KCk7CiAgICAgZWxzZSBp
ZiAoT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChlbGVtZW50
KSkKICAgICAgICAgaXRlbVN0cmluZyA9IG9wdGlvbkVsZW1lbnQtPnRleHRJbmRlbnRlZFRvUmVz
cGVjdEdyb3VwTGFiZWwoKTsKIApAQCAtNDIwLDcgKzQyMCw3IEBAIGJvb2wgUmVuZGVyTWVudUxp
c3Q6Oml0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogCiAgICAgYm9vbCBn
cm91cEVuYWJsZWQgPSB0cnVlOwogICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChpc09wdGlvbkdyb3VwRWxlbWVu
dChwYXJlbnRFbGVtZW50KSkKKyAgICAgICAgaWYgKGlzSFRNTE9wdEdyb3VwRWxlbWVudChwYXJl
bnRFbGVtZW50KSkKICAgICAgICAgICAgIGdyb3VwRW5hYmxlZCA9ICFzdGF0aWNfY2FzdDxIVE1M
T3B0R3JvdXBFbGVtZW50Kj4ocGFyZW50RWxlbWVudCktPmRpc2FibGVkKCk7CiAgICAgfQogICAg
IGlmICghZ3JvdXBFbmFibGVkKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJvb2wgUmVuZGVyTWVudUxp
c3Q6Oml0ZW1Jc1NlcGFyYXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiBib29sIFJlbmRl
ck1lbnVMaXN0OjppdGVtSXNMYWJlbCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiB7CiAgICAg
Y29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9IHRvSFRNTFNlbGVjdEVsZW1l
bnQobm9kZSgpKS0+bGlzdEl0ZW1zKCk7Ci0gICAgcmV0dXJuIGxpc3RJbmRleCA8IGxpc3RJdGVt
cy5zaXplKCkgJiYgaXNPcHRpb25Hcm91cEVsZW1lbnQobGlzdEl0ZW1zW2xpc3RJbmRleF0pOwor
ICAgIHJldHVybiBsaXN0SW5kZXggPCBsaXN0SXRlbXMuc2l6ZSgpICYmIGlzSFRNTE9wdEdyb3Vw
RWxlbWVudChsaXN0SXRlbXNbbGlzdEluZGV4XSk7CiB9CiAKIGJvb2wgUmVuZGVyTWVudUxpc3Q6
Oml0ZW1Jc1NlbGVjdGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111374</attachid>
            <date>2011-10-17 21:05:55 -0700</date>
            <delta_ts>2011-10-17 22:38:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70220-20111018130553.patch</filename>
            <type>text/plain</type>
            <size>23114</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3MDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NzZhZDVjZDgxNmU4Mzkw
YmMxNDA1NDQxN2ZhYmQyYjkwMWQzZTNkLi4yN2M0OTc5ODE0YmVhZTBiNDlmNTMyYjYxMmU3OGQ1
NWFjYzA5YTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTAtMTcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBPcHRpb25Hcm91
cEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDogUmVtb3ZlIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgYW5kL29yIE9wdGlvbkdyb3VwRWxlbWVu
dC5oLgorICAgICAgICAqIEdOVU1ha2VmaWxlLmFtLmxpc3Q6IGRpdHRvLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IGRpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBkaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIGRvbS9ET01B
bGxJbk9uZS5jcHA6IGRpdHRvLgorICAgICAgICAqIGRvbS9PcHRpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGlu
Z0dyb3VwTGFiZWwpOgorICAgICAgICBVc2UgaGFzVGFnTmFtZShvcHRncm91cFRhZykgYW5kIHN0
YXRpY19jYXN0PD4gaW5zdGVhZCBvZiB0b09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAgICAq
IGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9PcHRp
b25Hcm91cEVsZW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MT3B0R3JvdXBFbGVtZW50KTogQWRk
ZWQuCisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAgICAgICAtIERv
bid0IGluaGVyaXQgT3B0aW9uR3JvdXBFbGVtZW50LgorICAgICAgICAgLSBNYWtlIGdyb3VwTGFi
ZWxUZXh0KCkgbm9uLXZpcnR1YWwuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVjYWxjTGlzdEl0ZW1z
KToKKyAgICAgICAgVXNlIFVzZSBoYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSBpbnN0ZWFkIG9mIGlz
T3B0aW9uR3JvdXBFbGVtZW50KCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQp
OgorICAgICAgICBVc2UgaGFzVGFnTmFtZShvcHRncm91cFRhZykgYW5kIHN0YXRpY19jYXN0PD4g
aW5zdGVhZCBvZiB0b09wdGlvbkdyb3VwRWxlbWVudCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9yZWdyb3VuZCk6CisgICAgICAgIFVzZSBoYXNUYWdOYW1l
KG9wdGdyb3VwVGFnKSBpbnN0ZWFkIG9mIGlzT3B0aW9uR3JvdXBFbGVtZW50KCkuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1lbnVMaXN0OjppdGVtVGV4dCk6CisgICAgICAgIFVzZSBoYXNUYWdOYW1lKG9wdGdyb3VwVGFn
KSBhbmQgc3RhdGljX2Nhc3Q8PiBpbnN0ZWFkIG9mIHRvT3B0aW9uR3JvdXBFbGVtZW50KCkuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6aXRlbUlzRW5hYmxlZCk6CisgICAgICAg
IFVzZSBVc2UgaGFzVGFnTmFtZShvcHRncm91cFRhZykgaW5zdGVhZCBvZiBpc09wdGlvbkdyb3Vw
RWxlbWVudCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc0xhYmVs
KTogZGl0dG8uCisKIDIwMTEtMTAtMTcgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTc2NjIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDA0NDBhNDhkMTc4NzU0ODBjYTQwYWM3NzViYmEwOWFkNWU5ODYwNjguLjI0M2Vm
OTliNDQ3MmFhNDQ3ZjU0MWM4MDJlY2U2OTk0YzFhNjZhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC01NjYsNyArNTY2LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAKICAgICBkb20vTm90YXRpb24uY3BwCiAgICAgZG9tL09wdGlvbkVs
ZW1lbnQuY3BwCi0gICAgZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAKICAgICBkb20vT3ZlcmZs
b3dFdmVudC5jcHAKICAgICBkb20vUGFnZVRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vUGVu
ZGluZ1NjcmlwdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDU5NGU0MTE5
ZDEwZjVhZDU4ZmU5NjQ3ZTI3NjE5MzNhZmY5ODM1ZjQuLjUxNzIyNTYzYjQ1NGU1ZWZlYmFmNWEz
MWVmZWI4ZjBjYzMxZGU3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTI2
Miw4ICsxMjYyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
Tm90YXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20v
T3B0aW9uR3JvdXBFbGVtZW50LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkdyb3Vw
RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Q
YWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjE5NDNlNGE0NWVl
YTFjYmZhNmJmNWNhOGRmMGQ2NDFiNWMyMWYyMy4uN2Q2MGU5MTk3NThkNzU1MzA1NzdiNWZlYmMw
ZmE5MDYxYWQzOTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTI0OSw4ICs1MjQ5LDYgQEAKICAg
ICAgICAgICAgICdkb20vTm90YXRpb24uaCcsCiAgICAgICAgICAgICAnZG9tL09wdGlvbkVsZW1l
bnQuY3BwJywKICAgICAgICAgICAgICdkb20vT3B0aW9uRWxlbWVudC5oJywKLSAgICAgICAgICAg
ICdkb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcCcsCi0gICAgICAgICAgICAnZG9tL09wdGlvbkdy
b3VwRWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vT3ZlcmZsb3dFdmVudC5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9PdmVyZmxvd0V2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9QYWdlVHJh
bnNpdGlvbkV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGNmZTI0MzZjMWUwZGQ4ZTQxMzA3
MDM2OThiYjcwNDExMDAxY2U0NWUuLjBlNWQ4MDUxNGJlZmU3YzY0ZWIxMDBiMGJiZWU2Y2FjNWJh
ZDdkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC01MjksNyArNTI5LDYgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL05vZGVJdGVyYXRvci5jcHAgXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAgXAogICAgIGRvbS9Ob3RhdGlvbi5jcHAgXAotICAgIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQu
Y3BwIFwKICAgICBkb20vT3B0aW9uRWxlbWVudC5jcHAgXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKICAgICBkb20vT3ZlcmZsb3dFdmVudC5jcHAgXApAQCAtMTU2Niw3ICsx
NTY1LDYgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggXAog
ICAgIGRvbS9Ob3RhdGlvbi5oIFwKICAgICBkb20vT3B0aW9uRWxlbWVudC5oIFwKLSAgICBkb20v
T3B0aW9uR3JvdXBFbGVtZW50LmggXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCBc
CiAgICAgZG9tL092ZXJmbG93RXZlbnQuaCBcCiAgICAgZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGI3NGE4MDMwZjM0NTdlYTlkOWEyZDdiMTUzMDA5N2NhOGYyNTQ3M2MuLjY0ZGE2N2E5ZWZiNGUw
YjkzZTM1Y2RlZDk2YTM0MzQwZGZkMmY5ZWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00Nzg5Nyw2MiArNDc4OTcsNiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cT3B0aW9uR3JvdXBF
bGVtZW50LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXE9wdGlvbkdyb3VwRWxlbWVudC5oIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cT3ZlcmZsb3dFdmVudC5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYwNjQwMmRiNTNjOWM3MzlmOTBh
ZDJjZmUwYmQ4Y2FhMTRhNTQ4YjIuLmU4NWFmM2U5ZTAwNGViMTA1YzYwYjIzZjVmYWNiZjNmN2Vj
OTlhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEzMyw4ICsxMzMsNiBAQAogCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDgg
LyogR2x5cGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA4NkJCRDBFMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NzI4MTU1MEYyNkI5QjYwMEFGQzU5NiAv
KiBPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCAq
LzsgfTsKIAkJMDg3MjgxNTYwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzI4MTUyMEYyNkI5
QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi87IH07Ci0JCTA4NzI4MTU3MEYyNkI5QjYw
MEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MjgxNTMwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlv
bkdyb3VwRWxlbWVudC5jcHAgKi87IH07Ci0JCTA4NzI4MTU4MEYyNkI5QjYwMEFGQzU5NiAvKiBP
cHRpb25Hcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NzI4MTU0MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQu
aCAqLzsgfTsKIAkJMDg3M0I4NkIxMzYwNjRFQTAwQTUyMkMyIC8qIEdseXBoUGFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3M0I4NkExMzYwNjRF
QTAwQTUyMkMyIC8qIEdseXBoUGFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA4NzU1OEM1MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQ
YWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDg3NTU4QzMxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJvZ2F0ZVBhaXJB
d2FyZVRleHRJdGVyYXRvci5jcHAgKi87IH07CiAJCTA4NzU1OEM2MTNCNEE1N0QwMEY0OTMwNyAv
KiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzU1OEM0MTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJy
b2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzE1OCw4ICs3MTU2LDYgQEAKIAkJMDg2QkJEMEUxMzYw
MzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdseXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NzI4MTUxMEYyNkI5QjYw
MEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE9wdGlvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODcyODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTA4NzI4MTUzMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9uR3JvdXBF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDg3MjgxNTQwRjI2QjlC
NjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBPcHRpb25Hcm91cEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDg3M0I4NkExMzYwNjRFQTAwQTUyMkMyIC8qIEdseXBoUGFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg3NTU4QzMxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXJy
b2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODc1NThDNDEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1cnJvZ2F0ZVBhaXJB
d2FyZVRleHRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjExNjAs
OCArMjExNTYsNiBAQAogCQkJCTkzRUVDMUY0MDlDMjg3NzcwMEM1MTVEMSAvKiBOb3RhdGlvbi5p
ZGwgKi8sCiAJCQkJMDg3MjgxNTEwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3Bw
ICovLAogCQkJCTA4NzI4MTUyMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi8s
Ci0JCQkJMDg3MjgxNTMwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAg
Ki8sCi0JCQkJMDg3MjgxNTQwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5o
ICovLAogCQkJCTFBMEQ1NzM0MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmNwcCAq
LywKIAkJCQkxQTBENTczNTBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oICovLAog
CQkJCTFBMEQ1NzM4MEE1Qzc4MTIwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmlkbCAqLywKQEAg
LTIzNjg5LDcgKzIzNjgzLDYgQEAKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3Bl
blR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFMjQ0NUY3MTM5NTg5M0EwMDRC
NkMxOSAvKiBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODcyODE1NjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMDg3MjgxNTgwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDAxNDYyOEIxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFj
Y2Vzc0VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE5MjY3RDBENTNGMDU3MDA2M0VDQzIg
LyogT3JpZ2luUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE5MjY3RjBENTNG
MDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY3
NDAsNyArMjY3MzMsNiBAQAogCQkJCUZEQTNFOTVCMTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRFQUY0QUUxMEM3
NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA4NzI4MTU1MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTA4NzI4MTU3MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDAxNDYyOEExMDNDRDFERTAwMEIyMERCIC8qIE9yaWdp
bkFjY2Vzc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTkyNjdDMEQ1M0YwNTcwMDYz
RUNDMiAvKiBPcmlnaW5RdW90YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOTI2
N0UwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblVzYWdlUmVjb3JkLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYzJhYjljMDRjNjE5Nzg1NWY3NDNh
MTkxNTQ2ZjkyZDU4ODNjNTAwMC4uZjU5MGZkMTA3NzU4OWRmOTkzZjFjY2JhMjgxZjRhYjM2YzM0
OTU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC05OCw3ICs5OCw2IEBACiAj
aW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIgogI2luY2x1ZGUgIk5vdGF0aW9uLmNw
cCIKICNpbmNsdWRlICJPcHRpb25FbGVtZW50LmNwcCIKLSNpbmNsdWRlICJPcHRpb25Hcm91cEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuY3BwIgogI2luY2x1ZGUgIlBhZ2VU
cmFuc2l0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDJiZGRkYTFmZTcxZjdlOWZhOTNjYWU4YTY0
NzJjZWZiMzVkODMxOTkuLmUzMDU1OTQwYmRhZWQwOGFmODRmOGNhNmY0ZTgyYzM2Y2I4NWVjYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAKQEAgLTI0LDE1ICsyNCwxNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgotI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisK
IHZvaWQgT3B0aW9uRWxlbWVudDo6c2V0U2VsZWN0ZWRTdGF0ZShPcHRpb25FbGVtZW50RGF0YSYg
ZGF0YSwgRWxlbWVudCogZWxlbWVudCwgYm9vbCBzZWxlY3RlZCkKIHsKICAgICBpZiAoZGF0YS5z
ZWxlY3RlZCgpID09IHNlbGVjdGVkKQpAQCAtMTA5LDcgKzExMSw3IEBAIFN0cmluZyBPcHRpb25F
bGVtZW50Ojpub3JtYWxpemVUZXh0KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBzcmMpCiBTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblRleHRSZXNwZWN0
aW5nR3JvdXBMYWJlbChjb25zdCBPcHRpb25FbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWxlbWVu
dCogZWxlbWVudCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KGVsZW1lbnQtPnBhcmVudE5vZGUoKSk7Ci0gICAgaWYgKHBhcmVudEVsZW1lbnQg
JiYgdG9PcHRpb25Hcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkpCisgICAgaWYgKHBhcmVudEVs
ZW1lbnQgJiYgcGFyZW50RWxlbWVudC0+aGFzVGFnTmFtZShvcHRncm91cFRhZykpCiAgICAgICAg
IHJldHVybiAiICAgICIgKyBjb2xsZWN0T3B0aW9uTGFiZWxPclRleHQoZGF0YSwgZWxlbWVudCk7
CiAKICAgICByZXR1cm4gY29sbGVjdE9wdGlvbkxhYmVsT3JUZXh0KGRhdGEsIGVsZW1lbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzYzOTg5YTZiNDBmZjZhMTU2NjNmZGMyYTg4NDI3M2YyMjAzZmE1Mi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKLQotI2luY2x1ZGUg
IkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MT3B0R3Jv
dXBFbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1PcHRpb25Hcm91cEVsZW1lbnQqIHRvT3B0aW9uR3JvdXBFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQpCi17Ci0gICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0Z3JvdXBUYWcpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpOwotICAgIHJldHVybiAw
OwotfQotCi1ib29sIGlzT3B0aW9uR3JvdXBFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0g
ICAgcmV0dXJuIGVsZW1lbnQtPmhhc0xvY2FsTmFtZShIVE1MTmFtZXM6Om9wdGdyb3VwVGFnKTsK
LX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkdyb3VwRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkdyb3VwRWxlbWVudC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiOThhM2YyOGM3ZmVhZWY2OTBkYjRiYjk0NDA4OGExZDliOWJl
NGNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5k
ZWYgT3B0aW9uR3JvdXBFbGVtZW50X2gKLSNkZWZpbmUgT3B0aW9uR3JvdXBFbGVtZW50X2gKLQot
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
RWxlbWVudDsKLQotY2xhc3MgT3B0aW9uR3JvdXBFbGVtZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5PcHRpb25Hcm91cEVsZW1lbnQoKSB7IH0KLQotICAgIHZpcnR1YWwgU3RyaW5nIGdyb3Vw
TGFiZWxUZXh0KCkgY29uc3QgPSAwOwotfTsKLQotT3B0aW9uR3JvdXBFbGVtZW50KiB0b09wdGlv
bkdyb3VwRWxlbWVudChFbGVtZW50Kik7Ci1ib29sIGlzT3B0aW9uR3JvdXBFbGVtZW50KEVsZW1l
bnQqKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVs
ZW1lbnQuY3BwCmluZGV4IGIxZTZhYjJiM2I5ZjVlZjBkNjUwZWUxMmI2MDA5ODZkMTNiNDM4MTQu
LmRmYzZkOGQxOTRmNTI0NzQzZmE3ODdiYzE4YmVlZWM1MTBmZjgxODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtMTQxLDUgKzE0MSw1IEBAIHZv
aWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpCiAgICAgaWYgKHNl
bGVjdCAmJiAhc2VsZWN0LT5mb2N1c2VkKCkpCiAgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5QWN0
aW9uKGZhbHNlKTsKIH0KLSAgICAKKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggYjc3NzdhNjUwN2MyY2Y5YjkyNGJkMzk3NzFi
NjY4MDYwYTY2M2E4Mi4uYmUwMWM4YmY0NzQ1MzExODkxZDZiNDczYjNlM2YyZGY4NWRhYjFhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTI1LDE5ICsy
NSwxOCBAQAogI2RlZmluZSBIVE1MT3B0R3JvdXBFbGVtZW50X2gKIAogI2luY2x1ZGUgIkhUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaCIKLSNpbmNsdWRlICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAKLWNs
YXNzIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCwg
cHVibGljIE9wdGlvbkdyb3VwRWxlbWVudCB7CitjbGFzcyBIVE1MT3B0R3JvdXBFbGVtZW50IDog
cHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBv
d25lclNlbGVjdEVsZW1lbnQoKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyBncm91
cExhYmVsVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBncm91cExhYmVsVGV4dCgpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIEhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCmluZGV4IDNmMTcxZWIwNWMxMmEwNzc4MmFmYzhkNmU5ZDM4N2VjZjkx
Yjk2MGYuLjJhYzZiYWQzMTNmMTRkMDM5OGZlNjViNGFhMmE0NzY5OWMwZjg0MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zNywxMSArMzcsMTEgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlv
bi5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50Lmgi
Ci0jaW5jbHVkZSAiT3B0aW9uR3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgpAQCAt
Njc5LDcgKzY3OSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlY2FsY0xpc3RJdGVtcyhi
b29sIHVwZGF0ZVNlbGVjdGVkU3RhdGVzKSBjb25zdAogICAgICAgICAvLyBvcHRncm91cCB0YWdz
IG1heSBub3QgbmVzdC4gSG93ZXZlciwgYm90aCBGaXJlRm94IGFuZCBJRSB3aWxsCiAgICAgICAg
IC8vIGZsYXR0ZW4gdGhlIHRyZWUgYXV0b21hdGljYWxseSwgc28gd2UgZm9sbG93IHN1aXQuCiAg
ICAgICAgIC8vIChodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNDAxL2ludGVyYWN0L2Zvcm1zLmh0
bWwjaC0xNy42KQotICAgICAgICBpZiAoaXNPcHRpb25Hcm91cEVsZW1lbnQoY3VycmVudCkpIHsK
KyAgICAgICAgaWYgKGN1cnJlbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKSB7CiAgICAgICAg
ICAgICBtX2xpc3RJdGVtcy5hcHBlbmQoY3VycmVudCk7CiAgICAgICAgICAgICBpZiAoY3VycmVu
dC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50
LT5maXJzdENoaWxkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggYTBkZGNiMmE3MDBiYmFmNzZkNDkzNTk1ZjljYjIwMWRmNTcyM2IyNC4uNTY2MDNl
YjE2YzUyZDI2NDg1ZmQ5YmRkYzFiNzY4NGVlYWM1NWYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBACiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUg
Ik5vZGVSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFp
bnRJbmZvLmgiCkBAIC0xMTYsOCArMTE2LDggQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojp1cGRhdGVG
cm9tRWxlbWVudCgpCiAgICAgICAgICAgICBGb250IGl0ZW1Gb250ID0gc3R5bGUoKS0+Zm9udCgp
OwogICAgICAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlv
bkVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgICAgICAgICAgdGV4dCA9IG9wdGlvbkVsZW1lbnQt
PnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KE9wdGlvbkdyb3VwRWxlbWVudCogb3B0aW9uR3JvdXBFbGVtZW50ID0gdG9PcHRpb25Hcm91cEVs
ZW1lbnQoZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICB0ZXh0ID0gb3B0aW9uR3JvdXBFbGVt
ZW50LT5ncm91cExhYmVsVGV4dCgpOworICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC0+aGFz
VGFnTmFtZShvcHRncm91cFRhZykpIHsKKyAgICAgICAgICAgICAgICB0ZXh0ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgSFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpLT5ncm91cExhYmVsVGV4dCgp
OwogICAgICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBkID0gaXRlbUZvbnQuZm9udERlc2Ny
aXB0aW9uKCk7CiAgICAgICAgICAgICAgICAgZC5zZXRXZWlnaHQoZC5ib2xkZXJXZWlnaHQoKSk7
CiAgICAgICAgICAgICAgICAgaXRlbUZvbnQgPSBGb250KGQsIGl0ZW1Gb250LmxldHRlclNwYWNp
bmcoKSwgaXRlbUZvbnQud29yZFNwYWNpbmcoKSk7CkBAIC0zODQsOCArMzg0LDggQEAgdm9pZCBS
ZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYKICAgICBTdHJpbmcgaXRlbVRleHQ7CiAgICAgaWYgKG9wdGlvbkVs
ZW1lbnQpCiAgICAgICAgIGl0ZW1UZXh0ID0gb3B0aW9uRWxlbWVudC0+dGV4dEluZGVudGVkVG9S
ZXNwZWN0R3JvdXBMYWJlbCgpOwotICAgIGVsc2UgaWYgKE9wdGlvbkdyb3VwRWxlbWVudCogb3B0
aW9uR3JvdXBFbGVtZW50ID0gdG9PcHRpb25Hcm91cEVsZW1lbnQoZWxlbWVudCkpCi0gICAgICAg
IGl0ZW1UZXh0ID0gb3B0aW9uR3JvdXBFbGVtZW50LT5ncm91cExhYmVsVGV4dCgpOworICAgIGVs
c2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQorICAgICAgICBpdGVtVGV4
dCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50KS0+Z3Jv
dXBMYWJlbFRleHQoKTsKICAgICBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUoKSwgaXRlbVRleHQs
ICcgJyk7CiAKICAgICBDb2xvciB0ZXh0Q29sb3IgPSBlbGVtZW50LT5yZW5kZXJTdHlsZSgpID8g
ZWxlbWVudC0+cmVuZGVyU3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5
Q29sb3IpIDogc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3Ip
OwpAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9yZWdy
b3VuZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmCiAgICAgTGF5b3V0
UmVjdCByID0gaXRlbUJvdW5kaW5nQm94UmVjdChwYWludE9mZnNldCwgbGlzdEluZGV4KTsKICAg
ICByLm1vdmUoaXRlbU9mZnNldEZvckFsaWdubWVudCh0ZXh0UnVuLCBpdGVtU3R5bGUsIGl0ZW1G
b250LCByKSk7CiAKLSAgICBpZiAoaXNPcHRpb25Hcm91cEVsZW1lbnQoZWxlbWVudCkpIHsKKyAg
ICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRncm91cFRhZykpIHsKICAgICAgICAgRm9udERl
c2NyaXB0aW9uIGQgPSBpdGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgZC5zZXRX
ZWlnaHQoZC5ib2xkZXJXZWlnaHQoKSk7CiAgICAgICAgIGl0ZW1Gb250ID0gRm9udChkLCBpdGVt
Rm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250LndvcmRTcGFjaW5nKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMzY4MTk5YzVhOGJhOTA0
ODJmYzZiYWVlZTQ5YTZhYWIzOTY1NzQ3NC4uMWZhZTU3YmZjZTFkYjdiNDIyOTU5NzBhMzZhOWY3
MTMwZjI5N2NkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0zNzUsOCArMzc1LDggQEAgU3RyaW5nIFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCh1
bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAKICAgICBTdHJpbmcgaXRlbVN0cmluZzsKICAgICBF
bGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2xpc3RJbmRleF07Ci0gICAgaWYgKE9wdGlvbkdy
b3VwRWxlbWVudCogb3B0aW9uR3JvdXBFbGVtZW50ID0gdG9PcHRpb25Hcm91cEVsZW1lbnQoZWxl
bWVudCkpCi0gICAgICAgIGl0ZW1TdHJpbmcgPSBvcHRpb25Hcm91cEVsZW1lbnQtPmdyb3VwTGFi
ZWxUZXh0KCk7CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQorICAg
ICAgICBpdGVtU3RyaW5nID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTE9wdEdyb3VwRWxlbWVudCo+
KGVsZW1lbnQpLT5ncm91cExhYmVsVGV4dCgpOwogICAgIGVsc2UgaWYgKE9wdGlvbkVsZW1lbnQq
IG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIGl0ZW1T
dHJpbmcgPSBvcHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7
CiAKQEAgLTQyMCw3ICs0MjAsNyBAQCBib29sIFJlbmRlck1lbnVMaXN0OjppdGVtSXNFbmFibGVk
KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKIAogICAgIGJvb2wgZ3JvdXBFbmFibGVkID0gdHJ1
ZTsKICAgICBpZiAoRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1l
bnQoKSkgewotICAgICAgICBpZiAoaXNPcHRpb25Hcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkp
CisgICAgICAgIGlmIChwYXJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSkKICAg
ICAgICAgICAgIGdyb3VwRW5hYmxlZCA9ICFzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50
Kj4ocGFyZW50RWxlbWVudCktPmRpc2FibGVkKCk7CiAgICAgfQogICAgIGlmICghZ3JvdXBFbmFi
bGVkKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJvb2wgUmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc1NlcGFy
YXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiBib29sIFJlbmRlck1lbnVMaXN0OjppdGVt
SXNMYWJlbCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPEhU
TUxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9IHRvSFRNTFNlbGVjdEVsZW1lbnQobm9kZSgpKS0+bGlz
dEl0ZW1zKCk7Ci0gICAgcmV0dXJuIGxpc3RJbmRleCA8IGxpc3RJdGVtcy5zaXplKCkgJiYgaXNP
cHRpb25Hcm91cEVsZW1lbnQobGlzdEl0ZW1zW2xpc3RJbmRleF0pOworICAgIHJldHVybiBsaXN0
SW5kZXggPCBsaXN0SXRlbXMuc2l6ZSgpICYmIGxpc3RJdGVtc1tsaXN0SW5kZXhdLT5oYXNUYWdO
YW1lKG9wdGdyb3VwVGFnKTsKIH0KIAogYm9vbCBSZW5kZXJNZW51TGlzdDo6aXRlbUlzU2VsZWN0
ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>