<?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>193704</bug_id>
          
          <creation_ts>2019-01-22 19:43:40 -0800</creation_ts>
          <short_desc>Introduce CustomUndoStep.h and CustomUndoStep.cpp</short_desc>
          <delta_ts>2019-01-22 22:29:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497171</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 19:43:40 -0800</bug_when>
    <thetext>Work towards &lt;rdar://problem/44807048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497174</commentid>
    <comment_count>1</comment_count>
      <attachid>359840</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 19:46:11 -0800</bug_when>
    <thetext>Created attachment 359840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497176</commentid>
    <comment_count>2</comment_count>
      <attachid>359840</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-22 19:51:39 -0800</bug_when>
    <thetext>Comment on attachment 359840
Patch

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

&gt; Source/WebCore/editing/CompositeEditCommand.h:91
&gt; +    const String&amp; customUndoLabel() const final { return emptyString(); }

I think a better approach is have the conversion from EditAction to label here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497177</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-22 19:52:33 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #2)
&gt; Comment on attachment 359840 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359840&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:91
&gt; &gt; +    const String&amp; customUndoLabel() const final { return emptyString(); }
&gt; 
&gt; I think a better approach is have the conversion from EditAction to label
&gt; here.

Not saying that we should make such a change in this patch but I think having editAction() &amp; customUndoLabel() is rather confusing so we probably shouldn&apos;t add such a method. Also, this label is used for redo as well so saying it&apos;s undo label is quite misleading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497182</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 20:03:13 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; (In reply to Ryosuke Niwa from comment #2)
&gt; &gt; Comment on attachment 359840 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=359840&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:91
&gt; &gt; &gt; +    const String&amp; customUndoLabel() const final { return emptyString(); }
&gt; &gt; 
&gt; &gt; I think a better approach is have the conversion from EditAction to label
&gt; &gt; here.
&gt; 
&gt; Not saying that we should make such a change in this patch but I think
&gt; having editAction() &amp; customUndoLabel() is rather confusing so we probably
&gt; shouldn&apos;t add such a method. Also, this label is used for redo as well so
&gt; saying it&apos;s undo label is quite misleading.

That&apos;s a good point! This will take a bit of refactoring, but I think it&apos;s worth it (this should also allow us to remove some duplicate code between WebKitLegacy and WebKit). I&apos;ll land this patch (Part 2) without customUndoLabel() for now, and write up a patch to add an undoRedoLabel() method to UndoStep instead.

This refactoring patch will sit between this one (Part 2) and the Part 3 I had planned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497221</commentid>
    <comment_count>5</comment_count>
      <attachid>359848</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 21:30:22 -0800</bug_when>
    <thetext>Created attachment 359848
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497223</commentid>
    <comment_count>6</comment_count>
      <attachid>359849</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 21:32:31 -0800</bug_when>
    <thetext>Created attachment 359849
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497240</commentid>
    <comment_count>7</comment_count>
      <attachid>359849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-22 22:10:51 -0800</bug_when>
    <thetext>Comment on attachment 359849
Patch for landing

Clearing flags on attachment: 359849

Committed r240328: &lt;https://trac.webkit.org/changeset/240328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497244</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 22:29:29 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #4)
&gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; (In reply to Ryosuke Niwa from comment #2)
&gt; &gt; &gt; Comment on attachment 359840 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=359840&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:91
&gt; &gt; &gt; &gt; +    const String&amp; customUndoLabel() const final { return emptyString(); }
&gt; &gt; &gt; 
&gt; &gt; &gt; I think a better approach is have the conversion from EditAction to label
&gt; &gt; &gt; here.
&gt; &gt; 
&gt; &gt; Not saying that we should make such a change in this patch but I think
&gt; &gt; having editAction() &amp; customUndoLabel() is rather confusing so we probably
&gt; &gt; shouldn&apos;t add such a method. Also, this label is used for redo as well so
&gt; &gt; saying it&apos;s undo label is quite misleading.
&gt; 
&gt; That&apos;s a good point! This will take a bit of refactoring, but I think it&apos;s
&gt; worth it (this should also allow us to remove some duplicate code between
&gt; WebKitLegacy and WebKit). I&apos;ll land this patch (Part 2) without
&gt; customUndoLabel() for now, and write up a patch to add an undoRedoLabel()
&gt; method to UndoStep instead.
&gt; 
&gt; This refactoring patch will sit between this one (Part 2) and the Part 3 I
&gt; had planned.

I filed https://bugs.webkit.org/show_bug.cgi?id=193706 to track this refactoring.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359840</attachid>
            <date>2019-01-22 19:46:11 -0800</date>
            <delta_ts>2019-01-22 19:51:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193704-20190122194609.patch</filename>
            <type>text/plain</type>
            <size>13879</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFhYWJiMGIwNDY2M2I2
YmYwYWRmMjJlYmFiM2RmZWYzNmFhYWVjNi4uYjM2ODcyYjlmZjk1NGJlN2EyOTM3Zjc4ZDU3ODli
ZTNlMGI3ZTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBtb3JlIHdvcmsgaW4gcHJvZ3Jlc3MgdG93YXJkcyBzdXBw
b3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBpbnRyb2R1Y2UgYSBoZWxw
ZXIKKyAgICAgICAgY2xhc3MsIEN1c3RvbVVuZG9TdGVwLCB0aGF0IGhvbGRzIGEgd2VhayByZWZl
cmVuY2UgdG8gYSBzY3JpcHQtZGVmaW5lZCBVbmRvSXRlbS4gU2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKworICAgICAgICBTdWJjbGFzcyBVbmRvU3RlcC4KKwor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3NzaWJsZSwgaW52b2tl
IHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwgY29uc3QpOgorCisgICAgICAgIFRoZSB1bmRv
L3JlZG8gYWN0aW9uIGxhYmVsIHVzZWQgdG8gcmVwcmVzZW50IHRoaXMgaW4gcGxhdGZvcm0gVUku
CisKKyAgICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1h
bmQ6OmRvQXBwbHkpOgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAg
KiBlZGl0aW5nL1VuZG9TdGVwLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5oOgorCiAyMDE5
LTAxLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzb21lIGJpbmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5k
IFVuZG9JdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdjNDg0NDQ4ZjRkM2E2NTk2MGNjYTk0NmQ3NDY0
OTgwNWNmMDgwNDAuLmQyYWRiMGU1NDA5ZjE4OTk5YzQ4NzZjM2RkOTIwYmY5ZDM4MDVlNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC05NTIsNiArOTUyLDcgQEAgZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmNwcAogZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKK2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiBlZGl0aW5nL0RpY3Rh
dGlvbkFsdGVybmF0aXZlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxODUxZWJkZGYwZmJkODE1MTc3Y2U0ZGRmOTM3ZTRl
YmU0OTYyYzcuLmRhYjRkZjUwNGUyNjQzM2NkZTBkMWMxNDRkNDZiNTNjNWNhOWU5MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1MTMxLDYgKzE1MTMxLDggQEAKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUxOTY1QTIxRjIzOTUw
MDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVuZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21VbmRvU3RlcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4
RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRl
Q2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRB
MDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTEwNyw2ICsyMTEwOSw4IEBACiAJCQkJ
MkRENUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi8sCiAJ
CQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywK
IAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywK
KwkJCQlGNEUxOTY2MjIxRjI3RDNEMDAyODUwNzggLyogQ3VzdG9tVW5kb1N0ZXAuY3BwICovLAor
CQkJCUY0RTE5NjYxMjFGMjdEM0MwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5oICovLAogCQkJ
CTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAppbmRleCAyZGE1MjBmZGM0NjQ5MjkyZGM3YmZjYTIwYjdkMTFiMTE4YzVk
YTFjLi5iMmZhNWQwMTlhNDYzZmM2YjI1MGE0ODRhMmI0Mzk2N2ZlMmQ2MWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC04OCw2ICs4OCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVu
dCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCisgICAgY29uc3Qg
U3RyaW5nJiBjdXN0b21VbmRvTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CisKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX3N0YXJ0aW5nU2VsZWN0aW9uOwogICAgIFZpc2libGVTZWxlY3Rpb24gbV9lbmRp
bmdTZWxlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVu
ZG9TdGVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkOGUwMjhiN2NhNzkzZTU3YWJmOTU3ZTkzZjVjOWY2OWE1YjIyYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApA
QCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1c3RvbVVuZG9TdGVwLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlVuZG9JdGVtLmgiCisjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKKyNpbmNsdWRlICJWb2lkQ2Fs
bGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXN0b21VbmRvU3RlcDo6Q3VzdG9t
VW5kb1N0ZXAoVW5kb0l0ZW0mIGl0ZW0pCisgICAgOiBtX3VuZG9JdGVtKG1ha2VXZWFrUHRyKGl0
ZW0pKQoreworfQorCit2b2lkIEN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KCkKK3sKKyAgICBpZiAo
IWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEl0J3MgY3VycmVu
dGx5IHVuY2xlYXIgaG93IGlucHV0IGV2ZW50cyBzaG91bGQgYmUgZGlzcGF0Y2hlZCB3aGVuIHVu
YXBwbHlpbmcgb3IgcmVhcHBseWluZyBjdXN0b20KKyAgICAvLyBlZGl0IGNvbW1hbmRzLiBTaG91
bGQgdGhlIHBhZ2UgYmUgYWxsb3dlZCB0byBzcGVjaWZ5IGEgdGFyZ2V0IGluIHRoZSBET00gZm9y
IHVuZG8gYW5kIHJlZG8/CisgICAgUmVmPFVuZG9JdGVtPiBwcm90ZWN0ZWRVbmRvSXRlbSgqbV91
bmRvSXRlbSk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT51bmRv
SGFuZGxlcigpLmhhbmRsZUV2ZW50KCk7Cit9CisKK3ZvaWQgQ3VzdG9tVW5kb1N0ZXA6OnJlYXBw
bHkoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWY8
VW5kb0l0ZW0+IHByb3RlY3RlZFVuZG9JdGVtKCptX3VuZG9JdGVtKTsKKyAgICBwcm90ZWN0ZWRV
bmRvSXRlbS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPnJlZG9IYW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsK
K30KKworYm9vbCBDdXN0b21VbmRvU3RlcDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fdW5kb0l0ZW0gJiYgbV91bmRvSXRlbS0+aXNWYWxpZCgpOworfQorCitjb25zdCBTdHJpbmcm
IEN1c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwoKSBjb25zdAoreworICAgIGlmICghaXNW
YWxpZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdW5kb0l0ZW0tPmxhYmVsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5k
b1N0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjZkOTA2YjliOGY2M2FmOTEyNzJmMDRkZWNmNGIxOWQ5Nzdj
NDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRv
U3RlcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlVuZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBVbmRvSXRlbTsKKworY2xhc3MgQ3VzdG9tVW5kb1N0ZXAgZmluYWwgOiBwdWJsaWMgVW5kb1N0
ZXAgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3VzdG9tVW5kb1N0ZXA+IGNyZWF0ZShVbmRv
SXRlbSYgaXRlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbVVu
ZG9TdGVwKGl0ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tVW5kb1N0ZXAoVW5k
b0l0ZW0mKTsKKworICAgIHZvaWQgdW5hcHBseSgpIGZpbmFsOworICAgIHZvaWQgcmVhcHBseSgp
IGZpbmFsOworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CisgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisg
ICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRvSXRlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBiMzhjMTUw
OWVlOTc5YmU5ZTQwZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0YjQ4Yzc3NTFlYzk4
Y2NiMjYyYjhhOWEzMDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVU
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250
U2l6ZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApp
bmRleCA1NWQxMTg0Yzc4MDdjN2UwOWE0YzVmNjZlNTY3OTJlYzE4YTM2YTI2Li5kOWFmYTU2ZTZj
Y2NhZjA5MmJiM2RhNTIyODZmYWRlMTkyYjY5YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApAQCAtNDksMTAgKzQ5
LDEwIEBAIHZvaWQgSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2ltYWdlRWxlbWVudCA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbih4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1wdHlBdG9tKCkpOwot
ICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdp
ZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMzAwcHgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3R5bGVBdHRyLCBBdG9taWNTdHJpbmcoImRpc3BsYXk6
IGJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1h
Z2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
eF9hcHBsZV9lZGl0YWJsZV9pbWFnZUF0dHIsIGVtcHR5QXRvbSgpKTsKKyAgICBtX2ltYWdlRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRo
QXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIzMDBweCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRv
bWljU3RyaW5nKCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIGluc2VydE5vZGVBdCgqbV9pbWFnZUVsZW1lbnQsIGVuZGluZ1NlbGVj
dGlvbigpLnN0YXJ0KCkpOwogICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25B
ZnRlck5vZGUoKm1faW1hZ2VFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1VuZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5k
ZXggMDBjMTcwMDEwN2IyY2M3OWNjMTMyNjc5ZDg5OGQ3MDViYTc4N2U3OC4uMzQ5MGZmZjg5OGJh
NjM1OGJiMzdhNThhY2MyNmMzNDQ5N2I1MjQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9VbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAu
aApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHVuYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAg
ICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5k
b0l0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAppbmRleCAyOWMxMDJkOGVl
OGUyYWEyODY1ZjVhOGMyMzhiODQ3OTkwOTgxN2JkLi4zMjYyODRhNTljN2I1ZjIxZjBhMDgwNmVh
ZWEwMDAwMjYyZTc2YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5oCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgVW5kb01hbmFnZXI7
CiAKLWNsYXNzIFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+IHsKK2NsYXNz
IFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8VW5kb0l0ZW0+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFVuZG9JdGVtKTsK
IHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5pdCB7Cg==
</data>
<flag name="review"
          id="376580"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359848</attachid>
            <date>2019-01-22 21:30:22 -0800</date>
            <delta_ts>2019-01-22 21:30:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193704-20190122213021.patch</filename>
            <type>text/plain</type>
            <size>13650</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFhYWJiMGIwNDY2M2I2
YmYwYWRmMjJlYmFiM2RmZWYzNmFhYWVjNi4uNzJjMTM0M2I0MzQzMmQ0NDE3NTQxYzAzMGU2MjI4
OGE4OGExZjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaXMgbW9yZSB3b3JrIGluIHByb2dyZXNzIHRvd2FyZHMgc3VwcG9y
dGluZyBgVW5kb01hbmFnZXIuYWRkSXRlbSgpYC4gSGVyZSwgd2UgaW50cm9kdWNlIGEgaGVscGVy
CisgICAgICAgIGNsYXNzLCBDdXN0b21VbmRvU3RlcCwgdGhhdCBob2xkcyBhIHdlYWsgcmVmZXJl
bmNlIHRvIGEgc2NyaXB0LWRlZmluZWQgVW5kb0l0ZW0uIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpDdXN0b21VbmRvU3RlcCk6CisKKyAgICAgICAgU3ViY2xhc3MgVW5kb1N0
ZXAuCisKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3Nz
aWJsZSwgaW52b2tlIHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkp
OgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAgKiBwYWdlL1VuZG9J
dGVtLmg6CisKIDIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHNvbWUgYmluZGluZ3MtcmVsYXRlZCBib29ra2VlcGluZyB0byBV
bmRvTWFuYWdlciBhbmQgVW5kb0l0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTg1NjhmN2M4Y2UwODZkZTI2OTkz
ODc2ZDYzNDU3NGI3YTNlOTE4Ny4uNzU2MDk3ZmNmNWE5MjgxZWVjNzEzNzI0YmFjMzE4ZTQ2YmI1
NmFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTI1MSwxOSArMjUxLDYgQEAKICAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW46CiAKLTIwMTktMDEtMjIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgot
Ci0gICAgICAgIFttYWNPU10gQWRqdXN0IGxvZ2dpbmcgcG9saWN5IGluIFdlYktpdCdzIHNhbmRi
b3gKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ1
NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCi0KLSAgICAgICAgQWRkIGEg
cnVsZSB0byBpbml0aWFsbHkgZGVueSBhbGwgY2FsbHMsIHNpbmNlIHRoZSBkZWZhdWx0IGlzIHRv
IGFsbG93IGV2ZXJ5IGNhbGwuCi0gICAgICAgIExhdGVyIHJ1bGVzIGFsbG93IHN5c2NhbGxzIHRo
YXQgd2UgZGV0ZXJtaW5lZCBhcmUgbmVlZGVkIGZvciBwcm9wZXIgV2ViS2l0IGZ1bmN0aW9uLgot
ICAgICAgICBUaGlzIHJlZHVjZXMgdGhlIEFQSSBzdXJmYWNlIGF2YWlsYWJsZSB0byBhdHRhY2tl
cnMuCi0KLSAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgot
CiAyMDE5LTAxLTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBXZWJLaXQgc2hvdWxkIGhhbmRsZSBzaGlmdCBzdGF0ZSBjaGFuZ2VzIHdoZW4gdXNp
bmcgdGhlIHNvZnR3YXJlIGtleWJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdjNDg0NDQ4ZjRkM2E2
NTk2MGNjYTk0NmQ3NDY0OTgwNWNmMDgwNDAuLmQyYWRiMGU1NDA5ZjE4OTk5YzQ4NzZjM2RkOTIw
YmY5ZDM4MDVlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC05NTIsNiArOTUyLDcgQEAgZWRpdGluZy9C
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcAogZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQu
Y3BwCiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogZWRpdGluZy9DcmVhdGVMaW5r
Q29tbWFuZC5jcHAKK2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCiBlZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxODUxZWJkZGYwZmJkODE1
MTc3Y2U0ZGRmOTM3ZTRlYmU0OTYyYzcuLmRhYjRkZjUwNGUyNjQzM2NkZTBkMWMxNDRkNDZiNTNj
NWNhOWU5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE1MTMxLDYgKzE1MTMxLDggQEAKIAkJRjREOTgxN0UyMTk1RkJGNjAw
ODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
aGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEUxOTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9J
dGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9TdGVw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBD
dXN0b21VbmRvU3RlcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXN0b21VbmRvU3RlcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURB
MjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGb250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0Zv
bnRNYW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1h
bmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTEwNyw2ICsy
MTEwOSw4IEBACiAJCQkJMkRENUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5k
ZXJsaW5lLmggKi8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtD
b21tYW5kLmNwcCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlu
a0NvbW1hbmQuaCAqLywKKwkJCQlGNEUxOTY2MjIxRjI3RDNEMDAyODUwNzggLyogQ3VzdG9tVW5k
b1N0ZXAuY3BwICovLAorCQkJCUY0RTE5NjYxMjFGMjdEM0MwMDI4NTA3OCAvKiBDdXN0b21VbmRv
U3RlcC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXN0b21VbmRvU3RlcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE3ZjJhYWI3NWE2OGYxOWMyNGRkOGNj
NjI1YTY5ZWNmM2IzZmI2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3VzdG9tVW5kb1N0ZXAuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVW5kb0l0ZW0uaCIKKyNpbmNsdWRlICJVbmRvTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0N1c3RvbVVuZG9TdGVwOjpDdXN0b21VbmRvU3RlcChVbmRvSXRlbSYgaXRlbSkKKyAgICA6IG1f
dW5kb0l0ZW0obWFrZVdlYWtQdHIoaXRlbSkpCit7Cit9CisKK3ZvaWQgQ3VzdG9tVW5kb1N0ZXA6
OnVuYXBwbHkoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBGSVhNRTogSXQncyBjdXJyZW50bHkgdW5jbGVhciBob3cgaW5wdXQgZXZlbnRzIHNob3Vs
ZCBiZSBkaXNwYXRjaGVkIHdoZW4gdW5hcHBseWluZyBvciByZWFwcGx5aW5nIGN1c3RvbQorICAg
IC8vIGVkaXQgY29tbWFuZHMuIFNob3VsZCB0aGUgcGFnZSBiZSBhbGxvd2VkIHRvIHNwZWNpZnkg
YSB0YXJnZXQgaW4gdGhlIERPTSBmb3IgdW5kbyBhbmQgcmVkbz8KKyAgICBSZWY8VW5kb0l0ZW0+
IHByb3RlY3RlZFVuZG9JdGVtKCptX3VuZG9JdGVtKTsKKyAgICBwcm90ZWN0ZWRVbmRvSXRlbS0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
cHJvdGVjdGVkVW5kb0l0ZW0tPnVuZG9IYW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsKK30KKwordm9p
ZCBDdXN0b21VbmRvU3RlcDo6cmVhcHBseSgpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFJlZjxVbmRvSXRlbT4gcHJvdGVjdGVkVW5kb0l0ZW0oKm1fdW5k
b0l0ZW0pOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBwcm90ZWN0ZWRVbmRvSXRlbS0+cmVkb0hh
bmRsZXIoKS5oYW5kbGVFdmVudCgpOworfQorCitib29sIEN1c3RvbVVuZG9TdGVwOjppc1ZhbGlk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91bmRvSXRlbSAmJiBtX3VuZG9JdGVtLT5pc1ZhbGlk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3Vz
dG9tVW5kb1N0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmNlNDU0MzYyMzEyNWFjYzVmOGQ3OTY2MGM5ZWQ3
MWM2N2Y4Mjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0
b21VbmRvU3RlcC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlVuZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBVbmRvSXRlbTsKKworY2xhc3MgQ3VzdG9tVW5kb1N0ZXAgZmluYWwgOiBwdWJsaWMg
VW5kb1N0ZXAgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3VzdG9tVW5kb1N0ZXA+IGNyZWF0
ZShVbmRvSXRlbSYgaXRlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1
c3RvbVVuZG9TdGVwKGl0ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tVW5kb1N0
ZXAoVW5kb0l0ZW0mKTsKKworICAgIHZvaWQgdW5hcHBseSgpIGZpbmFsOworICAgIHZvaWQgcmVh
cHBseSgpIGZpbmFsOworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CisKKyAgICBib29sIGlzVmFsaWQo
KSBjb25zdDsKKworICAgIFdlYWtQdHI8VW5kb0l0ZW0+IG1fdW5kb0l0ZW07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAK
aW5kZXggYjM4YzE1MDllZTk3OWJlOWU0MGZlM2JhZDI5MGQ0NzQyNjYwMDA2Yy4uNmJiZjAxNDMw
NGI0OGM3NzUxZWM5OGNjYjI2MmI4YTlhMzA3MGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNp
bmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlN0eWxlRm9udFNpemVGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdl
Q29tbWFuZC5jcHAKaW5kZXggNTVkMTE4NGM3ODA3YzdlMDlhNGM1ZjY2ZTU2NzkyZWMxOGEzNmEy
Ni4uZDlhZmE1NmU2Y2NjYWYwOTJiYjNkYTUyMjg2ZmFkZTE5MmI2OWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAK
QEAgLTQ5LDEwICs0OSwxMCBAQCB2b2lkIEluc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pbWFnZUVsZW1lbnQgPSBIVE1MSW1hZ2VF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oeF9hcHBsZV9lZGl0YWJsZV9pbWFnZUF0dHIsIGVt
cHR5QXRvbSgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMTAwJSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9taWNTdHJpbmcoIjMwMHB4Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1faW1hZ2VFbGVtZW50
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHN0eWxlQXR0ciwgQXRvbWljU3Ry
aW5nKCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihIVE1MTmFtZXM6OnhfYXBwbGVfZWRpdGFibGVfaW1hZ2VBdHRyLCBlbXB0eUF0b20oKSk7Cisg
ICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRN
TE5hbWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMTAwJSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmhlaWdodEF0dHIsIEF0b21pY1N0cmluZygi
MzAwcHgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgbV9pbWFn
ZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpz
dHlsZUF0dHIsIEF0b21pY1N0cmluZygiZGlzcGxheTogYmxvY2siLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBpbnNlcnROb2RlQXQoKm1faW1hZ2VFbGVtZW50
LCBlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBzZXRFbmRpbmdTZWxlY3Rpb24odmlz
aWJsZVBvc2l0aW9uQWZ0ZXJOb2RlKCptX2ltYWdlRWxlbWVudCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRl
bS5oCmluZGV4IDI5YzEwMmQ4ZWU4ZTJhYTI4NjVmNWE4YzIzOGI4NDc5OTA5ODE3YmQuLjMyNjI4
NGE1OWM3YjVmMjFmMGEwODA2ZWFlYTAwMDAyNjJlNzZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVt
LmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBVbmRvTWFuYWdlcjsKIAotY2xhc3MgVW5kb0l0ZW0gOiBwdWJsaWMgUmVmQ291bnRl
ZDxVbmRvSXRlbT4geworY2xhc3MgVW5kb0l0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxVbmRvSXRl
bT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxVbmRvSXRlbT4gewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoVW5kb0l0ZW0pOwogcHVibGljOgogICAgIHN0cnVjdCBJbml0IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRl
eCBjZDllMjEzNmJlODIxZGQwN2RmYWFlMzIzY2VmMWM0ZGE3Y2UyYTVhLi5jYTc0YzcxY2ViZTk1
MmFmY2FjNDI1OThhMTY4MjdiMGIxN2ZiNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC04MjUsNyArODI1LDYgQEAK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICh3aGVuIChkZWZpbmVkPyAnc3lzY2FsbC11bml4
KQotICAgIChkZW55IHN5c2NhbGwtdW5peCAod2l0aCB0ZXJtaW5hdGlvbikpCiAgICAgKGFsbG93
IHN5c2NhbGwtdW5peAogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2V4aXQpCiAgICAgICAg
IChzeXNjYWxsLW51bWJlciBTWVNfcmVhZCkK
</data>
<flag name="commit-queue"
          id="376585"
          type_id="3"
          status="-"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359849</attachid>
            <date>2019-01-22 21:32:31 -0800</date>
            <delta_ts>2019-01-22 22:10:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193704-20190122213230.patch</filename>
            <type>text/plain</type>
            <size>12131</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFhYWJiMGIwNDY2M2I2
YmYwYWRmMjJlYmFiM2RmZWYzNmFhYWVjNi4uNzJjMTM0M2I0MzQzMmQ0NDE3NTQxYzAzMGU2MjI4
OGE4OGExZjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaXMgbW9yZSB3b3JrIGluIHByb2dyZXNzIHRvd2FyZHMgc3VwcG9y
dGluZyBgVW5kb01hbmFnZXIuYWRkSXRlbSgpYC4gSGVyZSwgd2UgaW50cm9kdWNlIGEgaGVscGVy
CisgICAgICAgIGNsYXNzLCBDdXN0b21VbmRvU3RlcCwgdGhhdCBob2xkcyBhIHdlYWsgcmVmZXJl
bmNlIHRvIGEgc2NyaXB0LWRlZmluZWQgVW5kb0l0ZW0uIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpDdXN0b21VbmRvU3RlcCk6CisKKyAgICAgICAgU3ViY2xhc3MgVW5kb1N0
ZXAuCisKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3Nz
aWJsZSwgaW52b2tlIHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkp
OgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAgKiBwYWdlL1VuZG9J
dGVtLmg6CisKIDIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHNvbWUgYmluZGluZ3MtcmVsYXRlZCBib29ra2VlcGluZyB0byBV
bmRvTWFuYWdlciBhbmQgVW5kb0l0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggN2M0ODQ0NDhmNGQzYTY1
OTYwY2NhOTQ2ZDc0NjQ5ODA1Y2YwODA0MC4uZDJhZGIwZTU0MDlmMTg5OTljNDg3NmMzZGQ5MjBi
ZjlkMzgwNWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTk1Miw2ICs5NTIsNyBAQCBlZGl0aW5nL0Jy
ZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5j
cHAKIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCiBlZGl0aW5nL0NyZWF0ZUxpbmtD
b21tYW5kLmNwcAorZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKIGVkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
IGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDE4NTFlYmRkZjBmYmQ4MTUx
NzdjZTRkZGY5MzdlNGViZTQ5NjJjNy4uZGFiNGRmNTA0ZTI2NDMzY2RlMGQxYzE0NGQ0NmI1M2M1
Y2E5ZTkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTUxMzEsNiArMTUxMzEsOCBAQAogCQlGNEQ5ODE3RTIxOTVGQkY2MDA4
MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENo
YW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVW5kb0l0ZW1DdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUxOTY1RjIxRjI2RTRFMDAyODUwNzggLyogVW5kb0l0
ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5kb0l0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNEUxOTY2MTIxRjI3RDNDMDAyODUwNzggLyogQ3VzdG9tVW5kb1N0ZXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tVW5kb1N0ZXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMTk2NjIyMUYyN0QzRDAwMjg1MDc4IC8qIEN1
c3RvbVVuZG9TdGVwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1
c3RvbVVuZG9TdGVwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREEy
MTNGM0Y1RjAwNEVBOThFIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RTU3RURGMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEU1N0VFMDIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9u
dE1hbmFnZXJFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNGb250TWFu
YWdlckV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTA3LDYgKzIx
MTA5LDggQEAKIAkJCQkyREQ1QTcyNjFFQkVFNDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRl
cmxpbmUuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0Nv
bW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5r
Q29tbWFuZC5oICovLAorCQkJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBDdXN0b21VbmRv
U3RlcC5jcHAgKi8sCisJCQkJRjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9T
dGVwLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgx
IC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1c3RvbVVuZG9TdGVwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTdmMmFhYjc1YTY4ZjE5YzI0ZGQ4Y2M2
MjVhNjllY2YzYjNmYjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXN0b21VbmRvU3RlcC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXN0b21VbmRvU3RlcC5oIgorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJVbmRvSXRlbS5oIgorI2luY2x1ZGUgIlVuZG9NYW5hZ2Vy
LmgiCisjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKFVuZG9JdGVtJiBpdGVtKQorICAgIDogbV91
bmRvSXRlbShtYWtlV2Vha1B0cihpdGVtKSkKK3sKK30KKwordm9pZCBDdXN0b21VbmRvU3RlcDo6
dW5hcHBseSgpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIEZJWE1FOiBJdCdzIGN1cnJlbnRseSB1bmNsZWFyIGhvdyBpbnB1dCBldmVudHMgc2hvdWxk
IGJlIGRpc3BhdGNoZWQgd2hlbiB1bmFwcGx5aW5nIG9yIHJlYXBwbHlpbmcgY3VzdG9tCisgICAg
Ly8gZWRpdCBjb21tYW5kcy4gU2hvdWxkIHRoZSBwYWdlIGJlIGFsbG93ZWQgdG8gc3BlY2lmeSBh
IHRhcmdldCBpbiB0aGUgRE9NIGZvciB1bmRvIGFuZCByZWRvPworICAgIFJlZjxVbmRvSXRlbT4g
cHJvdGVjdGVkVW5kb0l0ZW0oKm1fdW5kb0l0ZW0pOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT5k
b2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBw
cm90ZWN0ZWRVbmRvSXRlbS0+dW5kb0hhbmRsZXIoKS5oYW5kbGVFdmVudCgpOworfQorCit2b2lk
IEN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KCkKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmVmPFVuZG9JdGVtPiBwcm90ZWN0ZWRVbmRvSXRlbSgqbV91bmRv
SXRlbSk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT5yZWRvSGFu
ZGxlcigpLmhhbmRsZUV2ZW50KCk7Cit9CisKK2Jvb2wgQ3VzdG9tVW5kb1N0ZXA6OmlzVmFsaWQo
KSBjb25zdAoreworICAgIHJldHVybiBtX3VuZG9JdGVtICYmIG1fdW5kb0l0ZW0tPmlzVmFsaWQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0
b21VbmRvU3RlcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiY2U0NTQzNjIzMTI1YWNjNWY4ZDc5NjYwYzllZDcx
YzY3ZjgyOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3Rv
bVVuZG9TdGVwLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiVW5kb1N0ZXAuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFVuZG9JdGVtOworCitjbGFzcyBDdXN0b21VbmRvU3RlcCBmaW5hbCA6IHB1YmxpYyBV
bmRvU3RlcCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXN0b21VbmRvU3RlcD4gY3JlYXRl
KFVuZG9JdGVtJiBpdGVtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3Vz
dG9tVW5kb1N0ZXAoaXRlbSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXN0b21VbmRvU3Rl
cChVbmRvSXRlbSYpOworCisgICAgdm9pZCB1bmFwcGx5KCkgZmluYWw7CisgICAgdm9pZCByZWFw
cGx5KCkgZmluYWw7CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQ7IH0KKworICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0OworCisgICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRvSXRlbTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApp
bmRleCBiMzhjMTUwOWVlOTc5YmU5ZTQwZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0
YjQ4Yzc3NTFlYzk4Y2NiMjYyYjhhOWEzMDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2lu
Y2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VD
b21tYW5kLmNwcAppbmRleCA1NWQxMTg0Yzc4MDdjN2UwOWE0YzVmNjZlNTY3OTJlYzE4YTM2YTI2
Li5kOWFmYTU2ZTZjY2NhZjA5MmJiM2RhNTIyODZmYWRlMTkyYjY5YmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApA
QCAtNDksMTAgKzQ5LDEwIEBAIHZvaWQgSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2ltYWdlRWxlbWVudCA9IEhUTUxJbWFnZUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1w
dHlBdG9tKCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKHdpZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMzAwcHgiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3R5bGVBdHRyLCBBdG9taWNTdHJp
bmcoImRpc3BsYXk6IGJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KEhUTUxOYW1lczo6eF9hcHBsZV9lZGl0YWJsZV9pbWFnZUF0dHIsIGVtcHR5QXRvbSgpKTsKKyAg
ICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1M
TmFtZXM6OndpZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIz
MDBweCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdl
RWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnN0
eWxlQXR0ciwgQXRvbWljU3RyaW5nKCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGluc2VydE5vZGVBdCgqbV9pbWFnZUVsZW1lbnQs
IGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNp
YmxlUG9zaXRpb25BZnRlck5vZGUoKm1faW1hZ2VFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVt
LmgKaW5kZXggMjljMTAyZDhlZThlMmFhMjg2NWY1YThjMjM4Yjg0Nzk5MDk4MTdiZC4uMzI2Mjg0
YTU5YzdiNWYyMWYwYTA4MDZlYWVhMDAwMDI2MmU3NmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9VbmRvSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0u
aApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIFVuZG9NYW5hZ2VyOwogCi1jbGFzcyBVbmRvSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVk
PFVuZG9JdGVtPiB7CitjbGFzcyBVbmRvSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPFVuZG9JdGVt
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFVuZG9JdGVtPiB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChVbmRvSXRlbSk7CiBwdWJsaWM6CiAgICAgc3RydWN0IEluaXQgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>