<?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>133942</bug_id>
          
          <creation_ts>2014-06-16 08:39:38 -0700</creation_ts>
          <short_desc>[UI-side compositing] fix reflections on composited layers</short_desc>
          <delta_ts>2014-06-17 14:07:26 -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>New Bugs</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015865</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-16 08:39:38 -0700</bug_when>
    <thetext>[UI-side compositing] fix reflections on composited layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015866</commentid>
    <comment_count>1</comment_count>
      <attachid>233161</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-16 08:40:11 -0700</bug_when>
    <thetext>Created attachment 233161
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016066</commentid>
    <comment_count>2</comment_count>
      <attachid>233217</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-16 22:02:34 -0700</bug_when>
    <thetext>Created attachment 233217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016095</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-06-17 03:06:49 -0700</bug_when>
    <thetext>FYI, efl-wk2 ews is false alarm. I succeed to build WebKit EFL2 with this patch locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016130</commentid>
    <comment_count>4</comment_count>
      <attachid>233236</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-17 10:06:49 -0700</bug_when>
    <thetext>Created attachment 233236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016182</commentid>
    <comment_count>5</comment_count>
      <attachid>233236</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-17 11:47:55 -0700</bug_when>
    <thetext>Comment on attachment 233236
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        This layer may be told that its content need updating out of order during

contents

&gt; Source/WebCore/ChangeLog:16
&gt; +        In the UI process, a new step is added to emoteLayerTreeHost::updateLayerTree()

*Re*mote

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:330
&gt; +    CALayer* caLayer = layer-&gt;m_layer.get();

star on the wrong side. isn&apos;t there a platformLayer getter, too?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:201
&gt; +        m_context-&gt;layerPropertyChangedInTransactionBuilding(this);

WhileBuildingTransaction?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016245</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-17 14:07:26 -0700</bug_when>
    <thetext>https://trac.webkit.org/r170071</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233161</attachid>
            <date>2014-06-16 08:40:11 -0700</date>
            <delta_ts>2014-06-16 22:02:30 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-133942-20140616083947.patch</filename>
            <type>text/plain</type>
            <size>29069</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5OTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQzZWM0M2FhYzBhODk2
ZjVmMjMwYzc0NWZlMGM0ZmE4NGJiZjdiYy4uOTM1YzgxMTExMGRhMWU5ZjRhNzhkNjRmMDk4ZmQ2
ZmZlNjk3YzQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA2LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9zaXRlZCBsYXllcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzk0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5n
L3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9uLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyRGlkRGlzcGxheSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
Q2xpZW50OjpwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OmZpbmRPck1ha2VDbG9uZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQ6OnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNvcHlDb250ZW50c0Zyb21MYXllcik6CisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXJNYWM6OnN1cGVybGF5ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
TWFjOjpzZXRDb250ZW50c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHA6CisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6ZGlzcGxheUNhbGxiYWNrKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICgtW1dlYlNpbXBsZUxh
eWVyIGRpc3BsYXldKToKKwogMjAxNC0wNi0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXNrcyBkaXNhcHBlYXIgd2hlbiBsYXllcnMgYmVjb21l
IHRpbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDc1MzUyYjA4YTI4ZDY1NmVmMmIwNjcyMGIyMWI3MWVjMjYy
ZDQ0MC4uNTZjODM1MTdjMDFmNTI4MjdlNTM2MGUyZjZmZWUzNjRhMjAxMDVmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBmaXggcmVmbGVj
dGlvbnMgb24gY29tcG9zaXRlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpMYXll
clByb3BlcnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpkdW1wQ2hhbmdlZExheWVycyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVIb3N0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1
cGRhdGVMYXllclRyZWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVt
b3RlOjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVj
dXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6Y29weUNvbnRlbnRzRnJvbUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpzZXRDbG9uZWRMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0Q29udGVudHNDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnByb3BlcnRpZXMpOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNvbnRleHQpOgorCiAyMDE0LTA2LTE0ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1YWU5ODI3MWQxMDQ1ZjcyZjJlMzFlMDE0ZDgwNGQ3
YTIzZGY5NTc3Li44ZmIxOGE1OTU5ZDliZGUxMmZmZjVjOWUxYzExZjU3NjEyN2U1YTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTUwLDcgKzU1MCw3IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMTRzZXRBbmNob3JQb2ludEVSS05TXzEyRmxvYXRQb2ludDNERQogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0ExNHNldERlYnVnQm9yZGVyRVJLTlNfNUNvbG9yRWYKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTRzZXRQcmVzZXJ2ZXMzREViCiBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTE1YWRkQ2hpbGRBdEluZGV4RVBOU18xM0dyYXBoaWNzTGF5ZXJFaQot
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNWxheWVyRGlkRGlzcGxheUVQN0NBTGF5ZXIK
K19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVsYXllckRpZERpc3BsYXlFUE5TXzE1UGxh
dGZvcm1DQUxheWVyRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNXJlbW92ZUFuaW1h
dGlvbkVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVzZXRC
b3VuZHNPcmlnaW5FUktOU18xMEZsb2F0UG9pbnRFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE1c2V0Q29udGVudHNSZWN0RVJLTlNfOUZsb2F0UmVjdEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3ZjY5ODQxNWQwNDkw
ZTcxNjZhYjJjZGViZTAyMWZjNmQzN2E2NTMxLi44MzlhMDkxMTMwZDE0MzE2MjYyZjEyMzNjZjkx
YTY0YWExZDhiMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCkBAIC00MTksOCArNDE5LDYgQEAgcHVibGljOgogCiAgICAgLy8gQ2Fs
bGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGljcyBzeXN0ZW0gdG8gZHJhdyBsYXllciBj
b250ZW50cy4KICAgICB2b2lkIHBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCk7Ci0gICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUg
dW5kZXJseWluZyBncmFwaGljcyBzeXN0ZW0gd2hlbiB0aGUgbGF5ZXIgaGFzIGJlZW4gZGlzcGxh
eWVkCi0gICAgdmlydHVhbCB2b2lkIGxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVyKikgeyB9
CiAgICAgCiAgICAgLy8gRm9yIGhvc3RpbmcgdGhpcyBHcmFwaGljc0xheWVyIGluIGEgbmF0aXZl
IGxheWVyIGhpZXJhcmNoeS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCAyYzkxNzIyNjFk
YWQ3NzlmNzJhOTcyYTNkMGM4ODliNWU2OTc4Nzk5Li5kNTZmNTY3MDI5MDE0Mzg2Y2JkOTM4MjUy
NjgwNmRkNzE2YzZmMGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTE5Myw3ICsxOTMsNiBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckNvbnRlbnRzT3BhcXVl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxh
eWVyRHJhd3NDb250ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqKSB7IH0KICAg
ICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qg
eyByZXR1cm4gMTsgfQogCiAgICAgQVZGV3JhcHBlciogbV9wYXJlbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCBmMzY5NWNmZTI3MTkwYTgwNzk2MDY1YzljMDk0ODIzMmNhOGM3YjBmLi40MDFkZmM1ZGYz
YzRjODg0OGMxZWRmMGE1ZGUzNTg4YTM3NWE5NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTk0OSwx
OSArOTQ5LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvQ2FudmFzKFBs
YXRmb3JtTGF5ZXIqIGNhbnZhc0xheWVyKQogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChD
b250ZW50c0NhbnZhc0xheWVyQ2hhbmdlZCk7CiB9CiAgICAgCi12b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6bGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqIGxheWVyKQordm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewotICAgIFBs
YXRmb3JtQ0FMYXllciogY3VycmVudExheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNB
TGF5ZXIobGF5ZXIpOwotICAgIFBsYXRmb3JtQ0FMYXllciogc291cmNlTGF5ZXI7CiAgICAgTGF5
ZXJNYXAqIGxheWVyQ2xvbmVNYXA7CiAKLSAgICBpZiAoY3VycmVudExheWVyID09IG1fbGF5ZXIp
IHsKLSAgICAgICAgc291cmNlTGF5ZXIgPSBtX2xheWVyLmdldCgpOworICAgIGlmIChsYXllciA9
PSBtX2xheWVyKQogICAgICAgICBsYXllckNsb25lTWFwID0gbV9sYXllckNsb25lcy5nZXQoKTsK
LSAgICB9IGVsc2UgaWYgKGN1cnJlbnRMYXllciA9PSBtX2NvbnRlbnRzTGF5ZXIpIHsKLSAgICAg
ICAgc291cmNlTGF5ZXIgPSBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7CisgICAgZWxzZSBpZiAobGF5
ZXIgPT0gbV9jb250ZW50c0xheWVyKQogICAgICAgICBsYXllckNsb25lTWFwID0gbV9jb250ZW50
c0xheWVyQ2xvbmVzLmdldCgpOwotICAgIH0gZWxzZQorICAgIGVsc2UKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKGxheWVyQ2xvbmVNYXApIHsKQEAgLTk3MSwxMCArOTY3LDcgQEAgdm9pZCBH
cmFwaGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVyKiBsYXllcikKICAg
ICAgICAgICAgIGlmICghY3VyckNsb25lKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgICAgICBpZiAoY3VyckNsb25lLT5jb250ZW50cygpICE9IHNvdXJjZUxheWVyLT5jb250
ZW50cygpKQotICAgICAgICAgICAgICAgIGN1cnJDbG9uZS0+c2V0Q29udGVudHMoc291cmNlTGF5
ZXItPmNvbnRlbnRzKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGN1cnJD
bG9uZS0+c2V0Q29udGVudHNDaGFuZ2VkKCk7CisgICAgICAgICAgICBjdXJyQ2xvbmUtPmNvcHlD
b250ZW50c0Zyb21MYXllcihsYXllcik7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zMTA1LDcg
KzMwOTgsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpm
aW5kT3JNYWtlQ2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQbAogICAgIH0gZWxzZSB7CiAgICAgICAg
IHJlc3VsdExheWVyID0gY2xvbmVMYXllcihzb3VyY2VMYXllciwgY2xvbmVMZXZlbCk7CiAjaWZu
ZGVmIE5ERUJVRwotICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZShTdHJpbmc6OmZvcm1hdCgi
Q2xvbmUgJWQgb2YgbGF5ZXIgJXAiLCBjbG9uZUlEWzBVXSwgc291cmNlTGF5ZXItPnBsYXRmb3Jt
TGF5ZXIoKSkpOworICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZShTdHJpbmc6OmZvcm1hdCgi
Q2xvbmUgJWQgb2YgbGF5ZXIgJWxsdSIsIGNsb25lSURbMFVdLCBzb3VyY2VMYXllci0+bGF5ZXJJ
RCgpKSk7CiAjZW5kaWYKICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHJlc3Vs
dExheWVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggYWU0ZmQzOTUxOTA2MTY4OGQwNDU1MmQzODIx
NTVkOWFiMWFmNjUwYS4uMjRmZTViYmE0NDgxMDhlNTEzOWRjNzdlY2JjMjdhMmU4MTNkMWU2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKQEAgLTE0NCw4ICsxNDQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEN1c3RvbUFwcGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHNldEN1c3RvbUJlaGF2aW9yKEN1c3RvbUJlaGF2aW9yKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBsYXllckRpZERpc3BsYXkoUGxhdGZvcm1MYXllciopIG92ZXJyaWRl
OwotCiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92
ZXJyaWRlOwogCiAgICAgc3RydWN0IENvbW1pdFN0YXRlIHsKQEAgLTE4OCw3ICsxODYsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckNvbnRlbnRzT3BhcXVl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gY29udGVudHNPcGFxdWUoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBkcmF3c0NvbnRlbnQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJM
YXllckRpZERpc3BsYXkoUGxhdGZvcm1MYXllciogbGF5ZXIpIG92ZXJyaWRlIHsgcmV0dXJuIGxh
eWVyRGlkRGlzcGxheShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVy
TGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpIG92ZXJyaWRlIHsgcmV0dXJu
IGxheWVyRGlkRGlzcGxheShsYXllcik7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxh
eWVyU2V0TmVlZHNUb1JldmFsaWRhdGVUaWxlcygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxv
YXQgcGxhdGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9y
TmV3VGlsZXMoUGxhdGZvcm1DQUxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMDEsNiArMTk5
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXBhaW50T25TaXplQ2hh
bmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGxheWVyRGlkRGlzcGxheShQbGF0Zm9y
bUNBTGF5ZXIqKTsKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CiAgICAgCiAjaWYg
RU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCBlNjRiMDlmNzljYWQ3ZDg1MTU3NWFl
YWY3ZDlkYjU4Y2Q1OGQ2NTY4Li5kYThiYzIyNjE3ZjQ1MDA5MjEzYTM3ZDhlZjc2MzM0ZThmNmMz
MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSA9
IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDaGFuZ2VkKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgPSAwOwog
CiAgICAgTGF5ZXJUeXBlIGxheWVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJUeXBlOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKaW5kZXggY2ZjZGRmNDY1MDM0NWI3ZDNjNGExNWIzZGIy
ZmM3MDhlYTdmODYwMy4uNDZmZDE4MTNlYmY0ZWIyZjIzZDQyYWYzYzYzN2JhYmNjMTQ4YWQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIAog
ICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3Qg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkoUGxh
dGZvcm1MYXllciopICB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyTGF5ZXJE
aWREaXNwbGF5KFBsYXRmb3JtQ0FMYXllciopICB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRpbGVzKCkgeyB9CiAgICAgdmlydHVhbCBm
bG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCBlNGQ4YzdmNDcyNWY2MzY2Njg0ZmJkZjBlNmQ1MmE1NTVj
NjE2M2Q3Li44ZTU5YTRmMzE4MTA5ZThmMmZkNGIxNDBjMDlmNTE4OWZjYjljNWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxh
eWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FMYXllck1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NoYW5nZWQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXll
ciopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQbGF0Zm9ybUNBTGF5ZXIqIHN1cGVybGF5ZXIo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVN1cGVybGF5ZXIo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDRlNGIzZWFjZDcwYjMx
ZjJmNTQyZTI2NTYzNzQ2ZWFiMTI0ZWJlMzkuLjc0OTkzMWU4MjRjOWU3OWUyMDNiOWRmZTIxNjJh
YTQzZGM0MGM3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMzIzLDE3ICszMjMs
MjEgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9h
dFJlY3QqIGRpcnR5UmVjdCkKICAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5
XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9Ci0gICAgCi12b2lkIFBsYXRmb3Jt
Q0FMYXllck1hYzo6c2V0Q29udGVudHNDaGFuZ2VkKCkKKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldENvbnRl
bnRzQ2hhbmdlZF07CisgICAgQ0FMYXllciogY2FMYXllciA9IGxheWVyLT5tX2xheWVyLmdldCgp
OworICAgIGlmIChbbV9sYXllciBjb250ZW50c10gIT0gW2NhTGF5ZXIgY29udGVudHNdKQorICAg
ICAgICBbbV9sYXllciBzZXRDb250ZW50czpbY2FMYXllciBjb250ZW50c11dOworICAgIGVsc2UK
KyAgICAgICAgW21fbGF5ZXIgc2V0Q29udGVudHNDaGFuZ2VkXTsKICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiB9CiAKIFBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyTWFjOjpz
dXBlcmxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyKFttX2xheWVy
LmdldCgpIHN1cGVybGF5ZXJdKTsKKyAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyKFttX2xheWVy
IHN1cGVybGF5ZXJdKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnJlbW92ZUZyb21T
dXBlcmxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmlu
ZGV4IDM5ZjM5ZmE1NWIyZDNiZjU3MjMwMTk5YTEwZGZkMDk1YTUzZWNiNzAuLjY3Y2JhNTNmZDc5
Y2NhY2UzM2Q1MjI4ZmE1NzNhZGU0N2VhNzdlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbkludGVybmFsLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyV2luSW50ZXJuYWw6OmRpc3BsYXlDYWxsYmFjayhDQUNGTGF5ZXJSZWYgY2FMYXllciwgQ0dD
b250ZXh0CiAKICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwogCi0gICAgb3du
ZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGNhTGF5ZXIpOwor
ICAgIG93bmVyKCktPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShvd25l
cigpKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6aW50ZXJuYWxTZXRO
ZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KaW5kZXggODVkYjA3NWNjZWQw
ZWJjZGU0MDFkZGZhOTBjOGJlNzI1YmU3YWNiYS4uMGJmMzA4YWIyOWYyYmJhY2Q2MGEwOTFkODc5
YjVlMTVlMDY5YjU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYkxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJMYXllci5tbQpAQCAtMTEwLDcgKzExMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogICAgIFtzdXBlciBkaXNwbGF5XTsKICAgICBQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0g
UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoc2VsZik7CiAgICAgaWYgKGxheWVyICYm
IGxheWVyLT5vd25lcigpKQotICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
TGF5ZXJEaWREaXNwbGF5KHNlbGYpOworICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1D
QUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKIH0KIAogLSAodm9pZClkcmF3SW5Db250ZXh0
OihDR0NvbnRleHRSZWYpY29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggMjU0M2YxNTA5MzI3YjZmYjQ4Y2Fk
NWVlMWFiYmM5MTdjNjIwZDZjYy4uNTgyOTkwNWQzYzRlNzcyYTIwZDhmNzIxZWIwNzczYjM4YTQ0
NWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
QmFja2luZ1N0b3JlLm1tCkBAIC0yNDAsMTkgKzI0MCwyMCBAQCBib29sIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpkaXNwbGF5KCkKICAgICAgICAgZHJhd0luQ29udGV4dChjb250ZXh0LCBiYWNr
SW1hZ2UuZ2V0KCkpOwogCiAgICAgICAgIG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+cmVsZWFzZUdy
YXBoaWNzQ29udGV4dCgpOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICB9IGVs
c2UKICNlbmRpZgorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2FjY2VsZXJhdGVzRHJhd2luZyk7
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IGNvbnRleHQgPSBtX2Zy
b250QnVmZmVyLmJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CiAKLSAgICBBU1NFUlQo
IW1fYWNjZWxlcmF0ZXNEcmF3aW5nKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250
ZXh0PiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5iaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4
dCgpOwotCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGJhY2tJbWFnZTsKLSAgICBpZiAobV9i
YWNrQnVmZmVyLmJpdG1hcCAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQotICAgICAg
ICBiYWNrSW1hZ2UgPSBtX2JhY2tCdWZmZXIuYml0bWFwLT5tYWtlQ0dJbWFnZSgpOworICAgICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gYmFja0ltYWdlOworICAgICAgICBpZiAobV9iYWNrQnVm
ZmVyLmJpdG1hcCAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQorICAgICAgICAgICAg
YmFja0ltYWdlID0gbV9iYWNrQnVmZmVyLmJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKIAotICAgIGRy
YXdJbkNvbnRleHQoKmNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CisgICAgICAgIGRyYXdJbkNv
bnRleHQoKmNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CisgICAgfQorICAgIAorICAgIG1fbGF5
ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShtX2xheWVyKTsKICAg
ICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCBlZTBmY2E4N2ExZDlhOWFi
ZTRlZWM0ODkwMDA0ZTc5ODNjNmVhYTNkLi42ZTA0NDYyODQ1NzI4MTE4ODViZjJkMTZkNDYxZDEw
YWU0NWEzZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBAIC02OCwxOSArNjgsMjAgQEAgcHVibGljOgogICAg
ICAgICBNYXNrc1RvQm91bmRzQ2hhbmdlZCA9IDEgPDwgMTUsCiAgICAgICAgIE9wYXF1ZUNoYW5n
ZWQgPSAxIDw8IDE2LAogICAgICAgICBNYXNrTGF5ZXJDaGFuZ2VkID0gMSA8PCAxNywKLSAgICAg
ICAgQ29udGVudHNSZWN0Q2hhbmdlZCA9IDEgPDwgMTgsCi0gICAgICAgIENvbnRlbnRzU2NhbGVD
aGFuZ2VkID0gMSA8PCAxOSwKLSAgICAgICAgTWluaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCA9IDEg
PDwgMjAsCi0gICAgICAgIE1hZ25pZmljYXRpb25GaWx0ZXJDaGFuZ2VkID0gMSA8PCAyMSwKLSAg
ICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9IDEgPDwgMjIsCi0gICAgICAgIFNwZWVkQ2hhbmdlZCA9
IDEgPDwgMjMsCi0gICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkID0gMSA8PCAyNCwKLSAgICAgICAg
QmFja2luZ1N0b3JlQ2hhbmdlZCA9IDEgPDwgMjUsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0g
MSA8PCAyNiwKLSAgICAgICAgQW5pbWF0aW9uc0NoYW5nZWQgPSAxIDw8IDI3LAotICAgICAgICBF
ZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQgPSAxIDw8IDI4LAotICAgICAgICBDdXN0b21BcHBl
YXJhbmNlQ2hhbmdlZCA9IDEgPDwgMjksCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9
IDEgPDwgMzAKKyAgICAgICAgQ2xvbmVkQ29udGVudHNDaGFuZ2VkID0gMSA8PCAxOCwKKyAgICAg
ICAgQ29udGVudHNSZWN0Q2hhbmdlZCA9IDEgPDwgMTksCisgICAgICAgIENvbnRlbnRzU2NhbGVD
aGFuZ2VkID0gMSA8PCAyMCwKKyAgICAgICAgTWluaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCA9IDEg
PDwgMjEsCisgICAgICAgIE1hZ25pZmljYXRpb25GaWx0ZXJDaGFuZ2VkID0gMSA8PCAyMiwKKyAg
ICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9IDEgPDwgMjMsCisgICAgICAgIFNwZWVkQ2hhbmdlZCA9
IDEgPDwgMjQsCisgICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkID0gMSA8PCAyNSwKKyAgICAgICAg
QmFja2luZ1N0b3JlQ2hhbmdlZCA9IDEgPDwgMjYsCisgICAgICAgIEZpbHRlcnNDaGFuZ2VkID0g
MSA8PCAyNywKKyAgICAgICAgQW5pbWF0aW9uc0NoYW5nZWQgPSAxIDw8IDI4LAorICAgICAgICBF
ZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQgPSAxIDw8IDI5LAorICAgICAgICBDdXN0b21BcHBl
YXJhbmNlQ2hhbmdlZCA9IDEgPDwgMzAsCisgICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9
IDEgPDwgMzEKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJDaGFuZ2U7CiAKQEAg
LTEzMiw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVM
YXllckJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gZmlsdGVyczsKICAgICAgICAgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1hc2tMYXllcklEOworICAgICAgICBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgY2xvbmVkTGF5ZXJJRDsKICAgICAgICAg
ZG91YmxlIHRpbWVPZmZzZXQ7CiAgICAgICAgIGZsb2F0IHNwZWVkOwogICAgICAgICBmbG9hdCBj
b250ZW50c1NjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggOTVjNjhhZGQzY2VjNTVlMzcyMmMzNDE3
YTRjMzA2NDM4NjRlZTZiMi4uNzFmOTZiOWVkNmI2N2YwNGJiMTMzNmE1MzdjMjFkZTIzNWY4NTIw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLm1tCkBAIC04MSw2ICs4MSw3IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcygpCiAgICAgLCBhbmNob3JQ
b2ludCgwLjUsIDAuNSwgMCkKICAgICAsIGNvbnRlbnRzUmVjdChGbG9hdFBvaW50KCksIEZsb2F0
U2l6ZSgxLCAxKSkKICAgICAsIG1hc2tMYXllcklEKDApCisgICAgLCBjbG9uZWRMYXllcklEKDAp
CiAgICAgLCB0aW1lT2Zmc2V0KDApCiAgICAgLCBzcGVlZCgxKQogICAgICwgY29udGVudHNTY2Fs
ZSgxKQpAQCAtMTE0LDYgKzExNSw3IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
clByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyhjb25zdCBMYXllclByb3BlcnRpCiAgICAgLCBi
b3VuZHMob3RoZXIuYm91bmRzKQogICAgICwgY29udGVudHNSZWN0KG90aGVyLmNvbnRlbnRzUmVj
dCkKICAgICAsIG1hc2tMYXllcklEKG90aGVyLm1hc2tMYXllcklEKQorICAgICwgY2xvbmVkTGF5
ZXJJRChvdGhlci5jbG9uZWRMYXllcklEKQogICAgICwgdGltZU9mZnNldChvdGhlci50aW1lT2Zm
c2V0KQogICAgICwgc3BlZWQob3RoZXIuc3BlZWQpCiAgICAgLCBjb250ZW50c1NjYWxlKG90aGVy
LmNvbnRlbnRzU2NhbGUpCkBAIC0yMDYsNiArMjA4LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXIm
IGUKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBNYXNrTGF5ZXJDaGFuZ2VkKQogICAgICAg
ICBlbmNvZGVyIDw8IG1hc2tMYXllcklEOwogCisgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYg
Q2xvbmVkQ29udGVudHNDaGFuZ2VkKQorICAgICAgICBlbmNvZGVyIDw8IGNsb25lZExheWVySUQ7
CisKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDb250ZW50c1JlY3RDaGFuZ2VkKQogICAg
ICAgICBlbmNvZGVyIDw8IGNvbnRlbnRzUmVjdDsKIApAQCAtMzU2LDYgKzM2MSwxMSBAQCBib29s
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAor
ICAgIGlmIChyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBDbG9uZWRDb250ZW50c0NoYW5nZWQp
IHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY2xvbmVkTGF5ZXJJRCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKHJlc3VsdC5jaGFuZ2Vk
UHJvcGVydGllcyAmIENvbnRlbnRzUmVjdENoYW5nZWQpIHsKICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuY29udGVudHNSZWN0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTEwNTQsNiArMTA2NCw5IEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2VkTGF5ZXJzKFJlbW90
ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVMYXllclRyCiAgICAgICAgIGlm
IChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TWFza0xheWVyQ2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywg
Im1hc2tMYXllciIsIGxheWVyUHJvcGVydGllcy5tYXNrTGF5ZXJJRCk7CiAKKyAgICAgICAgaWYg
KGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpDbG9uZWRDb250ZW50c0NoYW5nZWQpCisgICAgICAgICAgICBkdW1wUHJvcGVydHko
dHMsICJjbG9uZWRMYXllciIsIGxheWVyUHJvcGVydGllcy5jbG9uZWRMYXllcklEKTsKKwogICAg
ICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkNvbnRlbnRzUmVjdENoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJv
cGVydHkodHMsICJjb250ZW50c1JlY3QiLCBsYXllclByb3BlcnRpZXMuY29udGVudHNSZWN0KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tCmluZGV4IDFjYmYzNTYxYTE3MTY2NDY1MTEwNzJjNGQyYTVmYjRhNmU5NDFlNzkuLjJj
MTVhOTMxZWNhZjZiOTA1M2JkYzBjNjM5MjBiNTViZDRhODRkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTcxLDYg
KzcxLDkgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIHRyYW4KICAgICAgICAgcm9vdExheWVyQ2hhbmdl
ZCA9IHRydWU7CiAgICAgfQogCisgICAgdHlwZWRlZiBzdGQ6OnBhaXI8R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklELCBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IExheWVySURQ
YWlyOworICAgIFZlY3RvcjxMYXllcklEUGFpcj4gY2xvbmVzVG9VcGRhdGU7CisgICAgCiAgICAg
Zm9yIChhdXRvJiBjaGFuZ2VkTGF5ZXIgOiB0cmFuc2FjdGlvbi5jaGFuZ2VkTGF5ZXJQcm9wZXJ0
aWVzKCkpIHsKICAgICAgICAgYXV0byBsYXllcklEID0gY2hhbmdlZExheWVyLmtleTsKICAgICAg
ICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJv
cGVydGllcyA9ICpjaGFuZ2VkTGF5ZXIudmFsdWU7CkBAIC04Nyw2ICs5MCw5IEBAIGJvb2wgUmVt
b3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJiB0cmFuCiAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVz
ICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok1hc2tMYXllckNoYW5nZWQgJiYgcHJvcGVy
dGllcy5tYXNrTGF5ZXJJRCkKICAgICAgICAgICAgIHJlbGF0ZWRMYXllcnMuc2V0KHByb3BlcnRp
ZXMubWFza0xheWVySUQsIGdldExheWVyKHByb3BlcnRpZXMubWFza0xheWVySUQpKTsKIAorICAg
ICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpDbG9uZWRDb250ZW50c0NoYW5nZWQgJiYgcHJvcGVydGllcy5jbG9uZWRMYXll
cklEKQorICAgICAgICAgICAgY2xvbmVzVG9VcGRhdGUuYXBwZW5kKExheWVySURQYWlyKGxheWVy
SUQsIHByb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCkpOworCiAgICAgICAgIGlmIChtX2lzRGVidWdM
YXllclRyZWVIb3N0KSB7CiAgICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgdGhpcywgcHJvcGVydGllcywgcmVsYXRlZExheWVy
cyk7CiAKQEAgLTk2LDYgKzEwMiwxMiBAQCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0
ZUxheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbgogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBw
bHlQcm9wZXJ0aWVzKGxheWVyLCB0aGlzLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsKICAg
ICB9CisgICAgCisgICAgZm9yIChjb25zdCBhdXRvJiBsYXllclBhaXIgOiBjbG9uZXNUb1VwZGF0
ZSkgeworICAgICAgICBMYXllck9yVmlldyAqbGF5ZXIgPSBnZXRMYXllcihsYXllclBhaXIuZmly
c3QpOworICAgICAgICBMYXllck9yVmlldyAqY2xvbmVkTGF5ZXIgPSBnZXRMYXllcihsYXllclBh
aXIuc2Vjb25kKTsKKyAgICAgICAgYXNMYXllcihsYXllcikuY29udGVudHMgPSBhc0xheWVyKGNs
b25lZExheWVyKS5jb250ZW50czsKKyAgICB9CiAKICAgICBmb3IgKGF1dG8mIGRlc3Ryb3llZExh
eWVyIDogdHJhbnNhY3Rpb24uZGVzdHJveWVkTGF5ZXJzKCkpCiAgICAgICAgIGxheWVyV2lsbEJl
UmVtb3ZlZChkZXN0cm95ZWRMYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5k
ZXggYjQyMWFjMmNmZmY0ZWVkNDk0YzA0M2ZjZDI1MmZmZGUwN2U2MDE1Yi4uZDgxN2Y3MTc0ZTY4
YjNhYzk0NTA2YmUzOTI4YzNhM2FlMTYzOTk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmNwcApAQCAtMTA0LDYgKzEwNCw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCoKIAogICAgIGNs
b25lLT5tX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKHN0YXRpY19jYXN0PFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5nZT4obV9wcm9wZXJ0aWVzLmV2ZXJDaGFu
Z2VkUHJvcGVydGllcyAmIH5SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QmFja2luZ1N0b3Jl
Q2hhbmdlZCkpOwogCisgICAgY2xvbmUtPnNldENsb25lZExheWVyKHRoaXMpOwogICAgIHJldHVy
biBjbG9uZS5yZWxlYXNlKCk7CiB9CiAKQEAgLTExOCw2ICsxMTksOCBAQCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiB7CisgICAgV1RGTG9nQWx3YXlzKCJQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUgJWxsdSByZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uXG4iLCBsYXllcklEKCkpOworCiAg
ICAgQVNTRVJUKCFtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlIHx8IG93bmVyKCkpOwogICAgIAog
ICAgIGlmIChtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlICYmICghb3duZXIoKSB8fCAhb3duZXIo
KS0+cGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkpKSB7CkBAIC0xOTIsOCArMTk1LDE1IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRS
ZWN0KiByZWN0KQogICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPnNldE5lZWRzRGlzcGxh
eShlbmNsb3NpbmdJbnRSZWN0KCpyZWN0KSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyUmVt
b3RlOjpzZXRDb250ZW50c0NoYW5nZWQoKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNv
cHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogeworICAgIFdURkxv
Z0Fsd2F5cygiUGxhdGZvcm1DQUxheWVyUmVtb3RlICVsbHUgY29weUNvbnRlbnRzRnJvbUxheWVy
ICVsbHVcbiIsIGxheWVySUQoKSwgbGF5ZXItPmxheWVySUQoKSk7CisKKyAgICBBU1NFUlQobV9w
cm9wZXJ0aWVzLmNsb25lZExheWVySUQgPT0gbGF5ZXItPmxheWVySUQoKSk7CisgICAgCisjd2Fy
bmluZworICAgIC8vIEZJWE1FOiB0aGlzIGlzIHRvdWNoaW5nIGFuIGVhcmxpZXIgc2libGluZyBp
biB0aGUgdHJlZSB0aGFuIHRoZSBsYXllciB3ZSdyZSBjb21taXR0aW5nLiBGaWd1cmUgb3V0IGhv
dyB0byBnZXQgaXQgY29tbWl0dGVkIQorICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0No
YW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNsb25lZENvbnRlbnRzQ2hhbmdlZCk7
CiB9CiAKIFBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzdXBlcmxheWVy
KCkgY29uc3QKQEAgLTMzNyw2ICszNDcsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OnNldE1hc2soUGxhdGZvcm1DQUxheWVyKiBsYXllcikKICAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpNYXNrTGF5ZXJDaGFu
Z2VkKTsKIH0KIAordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENsb25lZExheWVyKGNv
bnN0IFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCit7CisgICAgaWYgKGxheWVyKQorICAgICAgICBt
X3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9IGxheWVyLT5sYXllcklEKCk7CisgICAgZWxzZQor
ICAgICAgICBtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9IDA7CisKKyAgICBtX3Byb3BlcnRp
ZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDbG9u
ZWRDb250ZW50c0NoYW5nZWQpOworfQorCiBib29sIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aXNP
cGFxdWUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Byb3BlcnRpZXMub3BhcXVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgKaW5kZXggZjNkMTViNDFjZjk1MjljMGVhODFjYjY5NTlkZmFiNDgy
ZjdhOTMxMC4uZmIyY2Q0ZGEzOTA1NDk5YTVhY2U4Y2VhODlmNTFkODUwZTNhOTY2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0
eVJlY3QgPSAwKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBs
YXRmb3JtQ0FMYXllciogbGF5ZXIpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXIqIHN1cGVybGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRnJvbVN1cGVybGF5ZXIoKSBvdmVycmlkZTsKQEAgLTE1NSw3ICsxNTUsMTAg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB1aW50MzJfdCBob3N0aW5nQ29udGV4dElEKCk7CiAK
KyAgICB2b2lkIHNldENsb25lZExheWVyKGNvbnN0IFBsYXRmb3JtQ0FMYXllciopOworCiAgICAg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcygp
IHsgcmV0dXJuIG1fcHJvcGVydGllczsgfQorICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnRpZXM7IH0KIAogICAgIHZvaWQgZGlkQ29tbWl0KCk7CiAKQEAgLTE2NSw2ICsxNjgsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVy
LCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KTsKICAgICBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUoY29uc3QgUGxhdGZvcm1DQUxheWVyUmVtb3RlJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwogCisgICAgUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQorCiBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FMYXllclJlbW90ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGU5M2I5ODk2M2U5YjVjMzZiNmJkODA5OTcyNzVhM2QxMzE4ZmQ4ZmIuLmJiZmI4ZmU4
NjFmZGE5YzVmYWM3ODlkODFmMDI1MDU2ZTY2ZTY1YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNC0wNi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBbVUktc2lkZSBjb21wb3NpdGluZ10gZml4IHJlZmxlY3Rpb25zIG9uIGNvbXBvc2l0ZWQg
bGF5ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzM5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9uLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlcGFpbnQt
d2l0aC1yZWZsZWN0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA2LTE0ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1hc2tzIGRpc2FwcGVhciB3aGVu
IGxheWVycyBiZWNvbWUgdGlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVjdGlvbi1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNWE1NTdmZGI2YjhjNDU5MzQ3OWJkMTlhMzk0MmEy
ZGEzZmZmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWZs
ZWN0aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVjdGlvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAg
ICAgICAgLmJveCB7CisgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgIGJv
cmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAgICAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJl
bG93IDVweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJveC5jaGFuZ2VkIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGVaKDApOworICAgICAgICB9CisgICAgICAgIAorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKworICAgIDxkaXYgaWQ9ImJveCIgY2xhc3M9ImNvbXBvc2l0ZWQgY2hhbmdlZCBib3gi
PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRoLXJlZmxlY3Rpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWNjZjlmNzFjMzNlNWVkODliMmVjMzRkNTM0MmNiY2YyNDdlMDcy
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25z
L3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBF
IGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuYm94IHsKKyAg
ICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAgYm9yZGVyOiAycHggc29saWQg
YmxhY2s7CisgICAgICAgICAgLXdlYmtpdC1ib3gtcmVmbGVjdDogYmVsb3cgNXB4OworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAuYm94LmNoYW5nZWQgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogb3JhbmdlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuY29tcG9z
aXRlZCB7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOworICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9LCAzMDAwKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZh
bHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCisgICAgPGRpdiBpZD0iYm94
IiBjbGFzcz0iY29tcG9zaXRlZCBib3giPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233217</attachid>
            <date>2014-06-16 22:02:34 -0700</date>
            <delta_ts>2014-06-17 10:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133942-20140616220210.patch</filename>
            <type>text/plain</type>
            <size>34551</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5OTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQzZWM0M2FhYzBhODk2
ZjVmMjMwYzc0NWZlMGM0ZmE4NGJiZjdiYy4uOGFlMWJkN2M2ZGY3MjNmMDM2ZTVlMGNjMmMyMzVm
NGRkODZlY2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE0LTA2LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9zaXRlZCBsYXllcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzk0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCByZWZsZWN0aW9ucyBv
biBjb21wb3NpdGVkIGxheWVycy4gVGhlcmUgYXJlIHR3byBtYWluIHNldCBvZiBjaGFuZ2VzLgor
ICAgICAgICAKKyAgICAgICAgRmlyc3QsIGEgUGxhdGZvcm1DQUxheWVyUmVtb3RlIHdoaWNoIGlz
IGEgY2xvbmUgaGFzIHRvIHRyYWNrIHRoZSBsYXllcgorICAgICAgICBpdCBpcyBhIGNsb25lIG9m
LCBzbyBpdCBrbm93cyB3aGVyZSB0byBncmFiIHRoZSBjb250ZW50cyBmcm9tIGluIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICBUaGlzIGxheWVyIG1heSBiZSB0b2xkIHRoYXQgaXRzIGNvbnRlbnQg
bmVlZCB1cGRhdGluZyBvdXQgb2Ygb3JkZXIgZHVyaW5nCisgICAgICAgIHJlY3Vyc2l2ZUJ1aWxk
VHJhbnNhY3Rpb24oKSwgc28gd2UgbmVlZCBzb21lIHNtYWxsIGNoYW5nZXMgaW4gUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dAorICAgICAgICB0byBhbGxvdyBhIGxheWVyIHRvIGFkZCBpdHNlbGYgdG8g
dGhlIHNldCBvZiBsYXllcnMgcmVxdWlyaW5nIGNvbW1pdC4KKyAgICAgICAgCisgICAgICAgIElu
IHRoZSBVSSBwcm9jZXNzLCBhIG5ldyBzdGVwIGlzIGFkZGVkIHRvIGVtb3RlTGF5ZXJUcmVlSG9z
dDo6dXBkYXRlTGF5ZXJUcmVlKCkKKyAgICAgICAgdG8gZ28gdGhyb3VnaCBjbG9uZXMsIGFuZCBj
b3B5IHRoZWlyIGNvbnRlbnRzIGZyb20gdGhlIG9yaWdpbiBsYXllci4KKyAgICAgICAgCisgICAg
ICAgIFRoZSBzZWNvbmQgc2V0IG9mIGNoYW5nZXMgbWFrZXMgcGxhdGZvcm1DQUxheWVyTGF5ZXJE
aWREaXNwbGF5KCkgd29yayBmb3IKKyAgICAgICAgVUktc2lkZSBjb21wb3NpdGluZyBieSBub3Qg
dGFraW5nIGEgUGxhdGZvcm1MYXllciosIGJ1dCBpbnN0ZWFkIGEgUGxhdGZvcm1DQUxheWVyKi4K
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c0NoYW5nZWQoKSBjaGFuZ2VkIHRv
IGNvcHlDb250ZW50c0Zyb21MYXllcigpIHNvIHdlIGtub3cKKyAgICAgICAgd2hhdCB0aGUgb3Jp
Z2luIGxheWVyIGlzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3Jl
cGFpbnQtd2l0aC1yZWZsZWN0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyRGlkRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2xpZW50OjpwbGF0Zm9y
bUNBTGF5ZXJMYXllckRpZERpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmZpbmRPck1ha2VDbG9uZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxh
eWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ6OnBs
YXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5
ZXJNYWM6OmNvcHlDb250ZW50c0Zyb21MYXllcik6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OnN1cGVybGF5ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRDb250ZW50
c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJX
aW5JbnRlcm5hbDo6ZGlzcGxheUNhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRpc3BsYXldKToK
KwogMjAxNC0wNi0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYXNrcyBkaXNhcHBlYXIgd2hlbiBsYXllcnMgYmVjb21lIHRpbGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNDc1MzUyYjA4YTI4ZDY1NmVmMmIwNjcyMGIyMWI3MWVjMjYyZDQ0MC4uOWY1OGViYmE4
NTJjZDJjZjczOWVkZTBhNTZmYWU3MjZhYzk3NTgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDE0LTA2LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9z
aXRlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgRml4IHJlZmxlY3Rpb25zIG9uIGNvbXBvc2l0ZWQgbGF5ZXJzLiBUaGVyZSBh
cmUgdHdvIG1haW4gc2V0IG9mIGNoYW5nZXMuCisgICAgICAgIAorICAgICAgICBGaXJzdCwgYSBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUgd2hpY2ggaXMgYSBjbG9uZSBoYXMgdG8gdHJhY2sgdGhlIGxh
eWVyCisgICAgICAgIGl0IGlzIGEgY2xvbmUgb2YsIHNvIGl0IGtub3dzIHdoZXJlIHRvIGdyYWIg
dGhlIGNvbnRlbnRzIGZyb20gaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoaXMgbGF5ZXIg
bWF5IGJlIHRvbGQgdGhhdCBpdHMgY29udGVudCBuZWVkIHVwZGF0aW5nIG91dCBvZiBvcmRlciBk
dXJpbmcKKyAgICAgICAgcmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbigpLCBzbyB3ZSBuZWVkIHNv
bWUgc21hbGwgY2hhbmdlcyBpbiBSZW1vdGVMYXllclRyZWVDb250ZXh0CisgICAgICAgIHRvIGFs
bG93IGEgbGF5ZXIgdG8gYWRkIGl0c2VsZiB0byB0aGUgc2V0IG9mIGxheWVycyByZXF1aXJpbmcg
Y29tbWl0LgorICAgICAgICAKKyAgICAgICAgSW4gdGhlIFVJIHByb2Nlc3MsIGEgbmV3IHN0ZXAg
aXMgYWRkZWQgdG8gZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoKQorICAgICAg
ICB0byBnbyB0aHJvdWdoIGNsb25lcywgYW5kIGNvcHkgdGhlaXIgY29udGVudHMgZnJvbSB0aGUg
b3JpZ2luIGxheWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIHNlY29uZCBzZXQgb2YgY2hhbmdl
cyBtYWtlcyBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkoKSB3b3JrIGZvcgorICAgICAg
ICBVSS1zaWRlIGNvbXBvc2l0aW5nIGJ5IG5vdCB0YWtpbmcgYSBQbGF0Zm9ybUxheWVyKiwgYnV0
IGluc3RlYWQgYSBQbGF0Zm9ybUNBTGF5ZXIqLgorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXI6OnNl
dENvbnRlbnRzQ2hhbmdlZCgpIGNoYW5nZWQgdG8gY29weUNvbnRlbnRzRnJvbUxheWVyKCkgc28g
d2Uga25vdworICAgICAgICB3aGF0IHRoZSBvcmlnaW4gbGF5ZXIgaXMuCisKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSk6IFJlbW92ZSB0aGUgZWFybHkgcmV0dXJu
IHNvIHdlIGNhbiBhbHdheXMKKyAgICAgICAgY2FsbCBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERp
c3BsYXkoKS4KKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVy
dGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmNvcHlDb250ZW50c0Zyb21MYXllcik6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q2xvbmVkTGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENvbnRlbnRzQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpwcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjb250ZXh0KToKKwogMjAx
NC0wNi0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWFlOTgyNzFkMTA0NWY3MmYyZTMx
ZTAxNGQ4MDRkN2EyM2RmOTU3Ny4uOGZiMThhNTk1OWQ5YmRlMTJmZmY1YzllMWMxMWY1NzYxMjdl
NWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU1MCw3ICs1NTAsNyBAQCBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQTE0c2V0QW5jaG9yUG9pbnRFUktOU18xMkZsb2F0UG9pbnQzREUK
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTRzZXREZWJ1Z0JvcmRlckVSS05TXzVDb2xv
ckVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE0c2V0UHJlc2VydmVzM0RFYgogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNWFkZENoaWxkQXRJbmRleEVQTlNfMTNHcmFwaGlj
c0xheWVyRWkKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVsYXllckRpZERpc3BsYXlF
UDdDQUxheWVyCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE1bGF5ZXJEaWREaXNwbGF5
RVBOU18xNVBsYXRmb3JtQ0FMYXllckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVy
ZW1vdmVBbmltYXRpb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE1c2V0Qm91bmRzT3JpZ2luRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMTVH
cmFwaGljc0xheWVyQ0ExNXNldENvbnRlbnRzUmVjdEVSS05TXzlGbG9hdFJlY3RFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggN2Y2
OTg0MTVkMDQ5MGU3MTY2YWIyY2RlYmUwMjFmYzZkMzdhNjUzMS4uODM5YTA5MTEzMGQxNDMxNjI2
MmYxMjMzY2Y5MWE2NGFhMWQ4YjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDE5LDggKzQxOSw2IEBAIHB1YmxpYzoKIAog
ICAgIC8vIENhbGxiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHRvIGRy
YXcgbGF5ZXIgY29udGVudHMuCiAgICAgdm9pZCBwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApOwotICAgIC8vIENhbGxiYWNr
IGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHdoZW4gdGhlIGxheWVyIGhhcyBi
ZWVuIGRpc3BsYXllZAotICAgIHZpcnR1YWwgdm9pZCBsYXllckRpZERpc3BsYXkoUGxhdGZvcm1M
YXllciopIHsgfQogICAgIAogICAgIC8vIEZvciBob3N0aW5nIHRoaXMgR3JhcGhpY3NMYXllciBp
biBhIG5hdGl2ZSBsYXllciBoaWVyYXJjaHkuCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXgg
MmM5MTcyMjYxZGFkNzc5ZjcyYTk3MmEzZDBjODg5YjVlNjk3ODc5OS4uZDU2ZjU2NzAyOTAxNDM4
NmNiZDkzODI1MjY4MDZkZDcxNmM2ZjBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0xOTMsNyAr
MTkzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250
ZW50c09wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQ0FMYXllckRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVy
KikgeyB9CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAogICAgIEFWRldyYXBwZXIqIG1fcGFyZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKaW5kZXggZjM2OTVjZmUyNzE5MGE4MDc5NjA2NWM5YzA5NDgyMzJjYThjN2IwZi4u
NDAxZGZjNWRmM2M0Yzg4NDhjMWVkZjBhNWRlMzU4OGEzNzVhOTU0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CkBAIC05NDksMTkgKzk0OSwxNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNU
b0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBjYW52YXNMYXllcikKICAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQpOwogfQogICAgIAotdm9pZCBHcmFw
aGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVyKiBsYXllcikKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikK
IHsKLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIGN1cnJlbnRMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyKGxheWVyKTsKLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZUxheWVy
OwogICAgIExheWVyTWFwKiBsYXllckNsb25lTWFwOwogCi0gICAgaWYgKGN1cnJlbnRMYXllciA9
PSBtX2xheWVyKSB7Ci0gICAgICAgIHNvdXJjZUxheWVyID0gbV9sYXllci5nZXQoKTsKKyAgICBp
ZiAobGF5ZXIgPT0gbV9sYXllcikKICAgICAgICAgbGF5ZXJDbG9uZU1hcCA9IG1fbGF5ZXJDbG9u
ZXMuZ2V0KCk7Ci0gICAgfSBlbHNlIGlmIChjdXJyZW50TGF5ZXIgPT0gbV9jb250ZW50c0xheWVy
KSB7Ci0gICAgICAgIHNvdXJjZUxheWVyID0gbV9jb250ZW50c0xheWVyLmdldCgpOworICAgIGVs
c2UgaWYgKGxheWVyID09IG1fY29udGVudHNMYXllcikKICAgICAgICAgbGF5ZXJDbG9uZU1hcCA9
IG1fY29udGVudHNMYXllckNsb25lcy5nZXQoKTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChsYXllckNsb25lTWFwKSB7CkBAIC05NzEsMTAgKzk2Nyw3
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1MYXllciog
bGF5ZXIpCiAgICAgICAgICAgICBpZiAoIWN1cnJDbG9uZSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICAgICAgaWYgKGN1cnJDbG9uZS0+Y29udGVudHMoKSAhPSBzb3VyY2VM
YXllci0+Y29udGVudHMoKSkKLSAgICAgICAgICAgICAgICBjdXJyQ2xvbmUtPnNldENvbnRlbnRz
KHNvdXJjZUxheWVyLT5jb250ZW50cygpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjdXJyQ2xvbmUtPnNldENvbnRlbnRzQ2hhbmdlZCgpOworICAgICAgICAgICAgY3VyckNs
b25lLT5jb3B5Q29udGVudHNGcm9tTGF5ZXIobGF5ZXIpOwogICAgICAgICB9CiAgICAgfQogfQpA
QCAtMzEwNSw3ICszMDk4LDcgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNz
TGF5ZXJDQTo6ZmluZE9yTWFrZUNsb25lKENsb25lSUQgY2xvbmVJRCwgUGwKICAgICB9IGVsc2Ug
ewogICAgICAgICByZXN1bHRMYXllciA9IGNsb25lTGF5ZXIoc291cmNlTGF5ZXIsIGNsb25lTGV2
ZWwpOwogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5n
Ojpmb3JtYXQoIkNsb25lICVkIG9mIGxheWVyICVwIiwgY2xvbmVJRFswVV0sIHNvdXJjZUxheWVy
LT5wbGF0Zm9ybUxheWVyKCkpKTsKKyAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5n
Ojpmb3JtYXQoIkNsb25lICVkIG9mIGxheWVyICVsbHUiLCBjbG9uZUlEWzBVXSwgc291cmNlTGF5
ZXItPmxheWVySUQoKSkpOwogI2VuZGlmCiAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUgPSByZXN1bHRMYXllcjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGFlNGZkMzk1MTkwNjE2ODhk
MDQ1NTJkMzgyMTU1ZDlhYjFhZjY1MGEuLjI0ZmU1YmJhNDQ4MTA4ZTUxMzlkYzc3ZWNiYzI3YTJl
ODEzZDFlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xNDQsOCArMTQ0LDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDdXN0b21BcHBlYXJhbmNlKEN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXN0b21CZWhhdmlvcihDdXN0b21CZWhhdmlvcikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIq
KSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWQoKSBvdmVycmlkZTsKIAogICAgIHN0cnVjdCBDb21taXRTdGF0ZSB7CkBAIC0xODgsNyAr
MTg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250
ZW50c09wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGNvbnRlbnRzT3BhcXVlKCk7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZHJhd3NDb250ZW50KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqIGxheWVyKSBvdmVycmlkZSB7
IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRm
b3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKSBvdmVycmlk
ZSB7IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXMoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVs
dGlwbGllckZvck5ld1RpbGVzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0IG92ZXJyaWRlOwpAQCAt
MjAxLDYgKzE5OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVwYWlu
dE9uU2l6ZUNoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdm9pZCBsYXllckRpZERpc3Bs
YXkoUGxhdGZvcm1DQUxheWVyKik7CiAgICAgdm9pZCB1cGRhdGVPcGFjaXR5T25MYXllcigpOwog
ICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggZTY0YjA5Zjc5Y2Fk
N2Q4NTE1NzVhZWFmN2Q5ZGI1OGNkNThkNjU2OC4uZGE4YmMyMjYxN2Y0NTAwOTIxM2EzN2Q4ZWY3
NjMzNGU4ZjZjMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzQ2hhbmdlZCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXll
ciopID0gMDsKIAogICAgIExheWVyVHlwZSBsYXllclR5cGUoKSBjb25zdCB7IHJldHVybiBtX2xh
eWVyVHlwZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCmluZGV4IGNmY2RkZjQ2NTAzNDViN2Qz
YzRhMTViM2RiMmZjNzA4ZWE3Zjg2MDMuLjQ2ZmQxODEzZWJmNGViMmYyM2Q0MmFmM2M2MzdiYWJj
YzE0OGFkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVu
dCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaWRE
aXNwbGF5KFBsYXRmb3JtTGF5ZXIqKSAgeyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FM
YXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKSAgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGxhdGZvcm1DQUxheWVyU2V0TmVlZHNUb1JldmFsaWRhdGVUaWxlcygpIHsgfQogICAg
IHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKaW5kZXggZTRkOGM3ZjQ3MjVmNjM2NjY4NGZiZGYw
ZTZkNTJhNTU1YzYxNjNkNy4uOGU1OWE0ZjMxODEwOWU4ZjJmZDRiMTQwYzA5ZjUxODlmY2I5YzVm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDaGFuZ2Vk
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0
Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiBz
dXBlcmxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21T
dXBlcmxheWVyKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA0ZTRi
M2VhY2Q3MGIzMWYyZjU0MmUyNjU2Mzc0NmVhYjEyNGViZTM5Li43NDk5MzFlODI0YzllNzllMjAz
YjlkZmUyMTYyYWE0M2RjNDBjN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTMy
MywxNyArMzIzLDIxIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QpCiAgICAgICAgIFttX2xheWVyLmdldCgpIHNldE5l
ZWRzRGlzcGxheV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQotICAgIAotdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzQ2hhbmdlZCgpCisKK3ZvaWQgUGxhdGZv
cm1DQUxheWVyTWFjOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXll
cikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRDb250ZW50c0NoYW5nZWRdOworICAgIENBTGF5ZXIqIGNhTGF5ZXIgPSBsYXllci0+bV9s
YXllci5nZXQoKTsKKyAgICBpZiAoW21fbGF5ZXIgY29udGVudHNdICE9IFtjYUxheWVyIGNvbnRl
bnRzXSkKKyAgICAgICAgW21fbGF5ZXIgc2V0Q29udGVudHM6W2NhTGF5ZXIgY29udGVudHNdXTsK
KyAgICBlbHNlCisgICAgICAgIFttX2xheWVyIHNldENvbnRlbnRzQ2hhbmdlZF07CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FM
YXllck1hYzo6c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllci5nZXQoKSBzdXBlcmxheWVyXSk7CisgICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllciBzdXBlcmxheWVyXSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpy
ZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVy
bmFsLmNwcAppbmRleCAzOWYzOWZhNTViMmQzYmY1NzIzMDE5OWExMGRmZDA5NWE1M2VjYjcwLi42
N2NiYTUzZmQ3OWNjYWNlMzNkNTIyOGZhNTczYWRlNDdlYTc3ZTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50
ZXJuYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFBs
YXRmb3JtQ0FMYXllcldpbkludGVybmFsOjpkaXNwbGF5Q2FsbGJhY2soQ0FDRkxheWVyUmVmIGNh
TGF5ZXIsIENHQ29udGV4dAogCiAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsK
IAotICAgIG93bmVyKCktPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShj
YUxheWVyKTsKKyAgICBvd25lcigpLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERp
c3BsYXkob3duZXIoKSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6Omlu
dGVybmFsU2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCmluZGV4IDg1
ZGIwNzVjY2VkMGViY2RlNDAxZGRmYTkwYzhiZTcyNWJlN2FjYmEuLjBiZjMwOGFiMjlmMmJiYWNk
NjBhMDkxZDg3OWI1ZTE1ZTA2OWI1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KQEAgLTExMCw3ICsxMTAsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKICAgICBbc3VwZXIgZGlzcGxheV07CiAgICAgUGxhdGZvcm1DQUxheWVy
KiBsYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHNlbGYpOwogICAgIGlm
IChsYXllciAmJiBsYXllci0+b3duZXIoKSkKLSAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRm
b3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShzZWxmKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCkt
PnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CiB9CiAKIC0gKHZvaWQpZHJh
d0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDI1NDNmMTUwOTMy
N2I2ZmI0OGNhZDVlZTFhYmJjOTE3YzYyMGQ2Y2MuLjU4Mjk5MDVkM2M0ZTc3MmEyMGQ4ZjcyMWVi
MDc3M2IzOGE0NDVmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMjQwLDE5ICsyNDAsMjAgQEAgYm9vbCBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSgpCiAgICAgICAgIGRyYXdJbkNvbnRleHQoY29u
dGV4dCwgYmFja0ltYWdlLmdldCgpKTsKIAogICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2Ut
PnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
CisgICAgfSBlbHNlCiAjZW5kaWYKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9hY2NlbGVyYXRl
c0RyYXdpbmcpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBjb250
ZXh0ID0gbV9mcm9udEJ1ZmZlci5iaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwogCi0g
ICAgQVNTRVJUKCFtX2FjY2VsZXJhdGVzRHJhd2luZyk7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzQ29udGV4dD4gY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuYml0bWFwLT5jcmVhdGVHcmFw
aGljc0NvbnRleHQoKTsKLQotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBiYWNrSW1hZ2U7Ci0g
ICAgaWYgKG1fYmFja0J1ZmZlci5iaXRtYXAgJiYgIXdpbGxQYWludEVudGlyZUJhY2tpbmdTdG9y
ZSkKLSAgICAgICAgYmFja0ltYWdlID0gbV9iYWNrQnVmZmVyLmJpdG1hcC0+bWFrZUNHSW1hZ2Uo
KTsKKyAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGJhY2tJbWFnZTsKKyAgICAgICAgaWYg
KG1fYmFja0J1ZmZlci5iaXRtYXAgJiYgIXdpbGxQYWludEVudGlyZUJhY2tpbmdTdG9yZSkKKyAg
ICAgICAgICAgIGJhY2tJbWFnZSA9IG1fYmFja0J1ZmZlci5iaXRtYXAtPm1ha2VDR0ltYWdlKCk7
CiAKLSAgICBkcmF3SW5Db250ZXh0KCpjb250ZXh0LCBiYWNrSW1hZ2UuZ2V0KCkpOworICAgICAg
ICBkcmF3SW5Db250ZXh0KCpjb250ZXh0LCBiYWNrSW1hZ2UuZ2V0KCkpOworICAgIH0KKyAgICAK
KyAgICBtX2xheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobV9s
YXllcik7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggZWUwZmNh
ODdhMWQ5YTlhYmU0ZWVjNDg5MDAwNGU3OTgzYzZlYWEzZC4uMTg5MGIwOTIzZDRjMDI4MTRhMWNj
NWRmNTBmMzU4YjMxZGNjZDlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtNjgsMTkgKzY4LDIwIEBAIHB1
YmxpYzoKICAgICAgICAgTWFza3NUb0JvdW5kc0NoYW5nZWQgPSAxIDw8IDE1LAogICAgICAgICBP
cGFxdWVDaGFuZ2VkID0gMSA8PCAxNiwKICAgICAgICAgTWFza0xheWVyQ2hhbmdlZCA9IDEgPDwg
MTcsCi0gICAgICAgIENvbnRlbnRzUmVjdENoYW5nZWQgPSAxIDw8IDE4LAotICAgICAgICBDb250
ZW50c1NjYWxlQ2hhbmdlZCA9IDEgPDwgMTksCi0gICAgICAgIE1pbmlmaWNhdGlvbkZpbHRlckNo
YW5nZWQgPSAxIDw8IDIwLAotICAgICAgICBNYWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCA9IDEg
PDwgMjEsCi0gICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgPSAxIDw8IDIyLAotICAgICAgICBTcGVl
ZENoYW5nZWQgPSAxIDw8IDIzLAotICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdlZCA9IDEgPDwgMjQs
Ci0gICAgICAgIEJhY2tpbmdTdG9yZUNoYW5nZWQgPSAxIDw8IDI1LAotICAgICAgICBGaWx0ZXJz
Q2hhbmdlZCA9IDEgPDwgMjYsCi0gICAgICAgIEFuaW1hdGlvbnNDaGFuZ2VkID0gMSA8PCAyNywK
LSAgICAgICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkID0gMSA8PCAyOCwKLSAgICAgICAg
Q3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxIDw8IDI5LAotICAgICAgICBDdXN0b21CZWhhdmlv
ckNoYW5nZWQgPSAxIDw8IDMwCisgICAgICAgIENsb25lZENvbnRlbnRzQ2hhbmdlZCA9IDEgPDwg
MTgsCisgICAgICAgIENvbnRlbnRzUmVjdENoYW5nZWQgPSAxIDw8IDE5LAorICAgICAgICBDb250
ZW50c1NjYWxlQ2hhbmdlZCA9IDEgPDwgMjAsCisgICAgICAgIE1pbmlmaWNhdGlvbkZpbHRlckNo
YW5nZWQgPSAxIDw8IDIxLAorICAgICAgICBNYWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCA9IDEg
PDwgMjIsCisgICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgPSAxIDw8IDIzLAorICAgICAgICBTcGVl
ZENoYW5nZWQgPSAxIDw8IDI0LAorICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdlZCA9IDEgPDwgMjUs
CisgICAgICAgIEJhY2tpbmdTdG9yZUNoYW5nZWQgPSAxIDw8IDI2LAorICAgICAgICBGaWx0ZXJz
Q2hhbmdlZCA9IDEgPDwgMjcsCisgICAgICAgIEFuaW1hdGlvbnNDaGFuZ2VkID0gMSA8PCAyOCwK
KyAgICAgICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkID0gMSA8PCAyOSwKKyAgICAgICAg
Q3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxIDw8IDMwLAorICAgICAgICBDdXN0b21CZWhhdmlv
ckNoYW5nZWQgPSAxIDw8IDMxCiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIExheWVyQ2hh
bmdlOwogCkBAIC0xMzIsNiArMTMzLDcgQEAgcHVibGljOgogICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZTsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+IGZpbHRlcnM7CiAgICAgICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBtYXNrTGF5ZXJJRDsKKyAgICAg
ICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGNsb25lZExheWVySUQ7
CiAgICAgICAgIGRvdWJsZSB0aW1lT2Zmc2V0OwogICAgICAgICBmbG9hdCBzcGVlZDsKICAgICAg
ICAgZmxvYXQgY29udGVudHNTY2FsZTsKQEAgLTE2MCw3ICsxNjIsNyBAQCBwdWJsaWM6CiAKICAg
ICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgcm9vdExheWVySUQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RMYXllcklEOyB9CiAgICAgdm9pZCBzZXRSb290TGF5ZXJJRChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpOwotICAgIHZvaWQgbGF5ZXJQ
cm9wZXJ0aWVzQ2hhbmdlZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqLCBMYXllclByb3BlcnRpZXMm
KTsKKyAgICB2b2lkIGxheWVyUHJvcGVydGllc0NoYW5nZWQoUGxhdGZvcm1DQUxheWVyUmVtb3Rl
Kik7CiAgICAgdm9pZCBzZXRDcmVhdGVkTGF5ZXJzKFZlY3RvcjxMYXllckNyZWF0aW9uUHJvcGVy
dGllcz4pOwogICAgIHZvaWQgc2V0RGVzdHJveWVkTGF5ZXJJRHMoVmVjdG9yPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4pOwogICAgIHZvaWQgc2V0TGF5ZXJJRHNXaXRo
TmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdTdG9yZShWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCA5NWM2OGFkZDNjZWM1NWUz
NzIyYzM0MTdhNGMzMDY0Mzg2NGVlNmIyLi5iMjM1ZDU1NzlhNzFjNDcxYjI2NGNkNGRhNzcxYjBh
MzU5NGY0ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTgxLDYgKzgxLDcgQEAgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKCkKICAgICAs
IGFuY2hvclBvaW50KDAuNSwgMC41LCAwKQogICAgICwgY29udGVudHNSZWN0KEZsb2F0UG9pbnQo
KSwgRmxvYXRTaXplKDEsIDEpKQogICAgICwgbWFza0xheWVySUQoMCkKKyAgICAsIGNsb25lZExh
eWVySUQoMCkKICAgICAsIHRpbWVPZmZzZXQoMCkKICAgICAsIHNwZWVkKDEpCiAgICAgLCBjb250
ZW50c1NjYWxlKDEpCkBAIC0xMTQsNiArMTE1LDcgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKGNvbnN0IExheWVyUHJvcGVydGkK
ICAgICAsIGJvdW5kcyhvdGhlci5ib3VuZHMpCiAgICAgLCBjb250ZW50c1JlY3Qob3RoZXIuY29u
dGVudHNSZWN0KQogICAgICwgbWFza0xheWVySUQob3RoZXIubWFza0xheWVySUQpCisgICAgLCBj
bG9uZWRMYXllcklEKG90aGVyLmNsb25lZExheWVySUQpCiAgICAgLCB0aW1lT2Zmc2V0KG90aGVy
LnRpbWVPZmZzZXQpCiAgICAgLCBzcGVlZChvdGhlci5zcGVlZCkKICAgICAsIGNvbnRlbnRzU2Nh
bGUob3RoZXIuY29udGVudHNTY2FsZSkKQEAgLTIwNiw2ICsyMDgsOSBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZQogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIE1hc2tMYXllckNoYW5nZWQp
CiAgICAgICAgIGVuY29kZXIgPDwgbWFza0xheWVySUQ7CiAKKyAgICBpZiAoY2hhbmdlZFByb3Bl
cnRpZXMgJiBDbG9uZWRDb250ZW50c0NoYW5nZWQpCisgICAgICAgIGVuY29kZXIgPDwgY2xvbmVk
TGF5ZXJJRDsKKwogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIENvbnRlbnRzUmVjdENoYW5n
ZWQpCiAgICAgICAgIGVuY29kZXIgPDwgY29udGVudHNSZWN0OwogCkBAIC0zNTYsNiArMzYxLDEx
IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCisgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIENsb25lZENvbnRlbnRz
Q2hhbmdlZCkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jbG9uZWRMYXll
cklEKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAocmVzdWx0
LmNoYW5nZWRQcm9wZXJ0aWVzICYgQ29udGVudHNSZWN0Q2hhbmdlZCkgewogICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb250ZW50c1JlY3QpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNTQ1LDcgKzU1NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OnNldFJvb3RMYXllcklEKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCByCiAgICAg
bV9yb290TGF5ZXJJRCA9IHJvb3RMYXllcklEOwogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpsYXllclByb3BlcnRpZXNDaGFuZ2VkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSog
cmVtb3RlTGF5ZXIsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMm
IHByb3BlcnRpZXMpCit2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpsYXllclByb3Bl
cnRpZXNDaGFuZ2VkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogcmVtb3RlTGF5ZXIpCiB7CiAgICAg
bV9jaGFuZ2VkTGF5ZXJzLmFwcGVuZChyZW1vdGVMYXllcik7CiB9CkBAIC0xMDU0LDYgKzEwNjQs
OSBAQCBzdGF0aWMgdm9pZCBkdW1wQ2hhbmdlZExheWVycyhSZW1vdGVMYXllclRyZWVUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUmVtb3RlTGF5ZXJUcgogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok1hc2tMYXll
ckNoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVydHkodHMsICJtYXNrTGF5ZXIiLCBsYXll
clByb3BlcnRpZXMubWFza0xheWVySUQpOwogCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMu
Y2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2xvbmVkQ29u
dGVudHNDaGFuZ2VkKQorICAgICAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAiY2xvbmVkTGF5ZXIi
LCBsYXllclByb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCk7CisKICAgICAgICAgaWYgKGxheWVyUHJv
cGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpD
b250ZW50c1JlY3RDaGFuZ2VkKQogICAgICAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAiY29udGVu
dHNSZWN0IiwgbGF5ZXJQcm9wZXJ0aWVzLmNvbnRlbnRzUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCAxY2Jm
MzU2MWExNzE2NjQ2NTExMDcyYzRkMmE1ZmI0YTZlOTQxZTc5Li4yYzE1YTkzMWVjYWY2YjkwNTNi
ZGMwYzYzOTIwYjU1YmQ0YTg0ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCkBAIC03MSw2ICs3MSw5IEBAIGJvb2wgUmVt
b3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJiB0cmFuCiAgICAgICAgIHJvb3RMYXllckNoYW5nZWQgPSB0cnVlOwogICAgIH0K
IAorICAgIHR5cGVkZWYgc3RkOjpwYWlyPEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwg
R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBMYXllcklEUGFpcjsKKyAgICBWZWN0b3I8
TGF5ZXJJRFBhaXI+IGNsb25lc1RvVXBkYXRlOworICAgIAogICAgIGZvciAoYXV0byYgY2hhbmdl
ZExheWVyIDogdHJhbnNhY3Rpb24uY2hhbmdlZExheWVyUHJvcGVydGllcygpKSB7CiAgICAgICAg
IGF1dG8gbGF5ZXJJRCA9IGNoYW5nZWRMYXllci5rZXk7CiAgICAgICAgIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMgPSAqY2hhbmdl
ZExheWVyLnZhbHVlOwpAQCAtODcsNiArOTAsOSBAQCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6
OnVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbgog
ICAgICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpNYXNrTGF5ZXJDaGFuZ2VkICYmIHByb3BlcnRpZXMubWFza0xheWVySUQp
CiAgICAgICAgICAgICByZWxhdGVkTGF5ZXJzLnNldChwcm9wZXJ0aWVzLm1hc2tMYXllcklELCBn
ZXRMYXllcihwcm9wZXJ0aWVzLm1hc2tMYXllcklEKSk7CiAKKyAgICAgICAgaWYgKHByb3BlcnRp
ZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2xvbmVk
Q29udGVudHNDaGFuZ2VkICYmIHByb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCkKKyAgICAgICAgICAg
IGNsb25lc1RvVXBkYXRlLmFwcGVuZChMYXllcklEUGFpcihsYXllcklELCBwcm9wZXJ0aWVzLmNs
b25lZExheWVySUQpKTsKKwogICAgICAgICBpZiAobV9pc0RlYnVnTGF5ZXJUcmVlSG9zdCkgewog
ICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRp
ZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOwogCkBAIC05Niw2ICsx
MDIsMTIgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIHRyYW4KICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXll
ciwgdGhpcywgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7CiAgICAgfQorICAgIAorICAgIGZv
ciAoY29uc3QgYXV0byYgbGF5ZXJQYWlyIDogY2xvbmVzVG9VcGRhdGUpIHsKKyAgICAgICAgTGF5
ZXJPclZpZXcgKmxheWVyID0gZ2V0TGF5ZXIobGF5ZXJQYWlyLmZpcnN0KTsKKyAgICAgICAgTGF5
ZXJPclZpZXcgKmNsb25lZExheWVyID0gZ2V0TGF5ZXIobGF5ZXJQYWlyLnNlY29uZCk7CisgICAg
ICAgIGFzTGF5ZXIobGF5ZXIpLmNvbnRlbnRzID0gYXNMYXllcihjbG9uZWRMYXllcikuY29udGVu
dHM7CisgICAgfQogCiAgICAgZm9yIChhdXRvJiBkZXN0cm95ZWRMYXllciA6IHRyYW5zYWN0aW9u
LmRlc3Ryb3llZExheWVycygpKQogICAgICAgICBsYXllcldpbGxCZVJlbW92ZWQoZGVzdHJveWVk
TGF5ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IGI0MjFhYzJjZmZmNGVl
ZDQ5NGMwNDNmY2QyNTJmZmRlMDdlNjAxNWIuLjgwZDAyYjVjNGZlZGRlZDFmMTJkMWYyZTMzODRm
MDE1ODNlZDExOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTEwNCw2ICsx
MDQsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqCiAKICAgICBjbG9uZS0+bV9wcm9wZXJ0aWVz
Lm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChzdGF0aWNfY2FzdDxSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJDaGFuZ2U+KG1fcHJvcGVydGllcy5ldmVyQ2hhbmdlZFByb3BlcnRpZXMgJiB+
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tpbmdTdG9yZUNoYW5nZWQpKTsKIAorICAg
IGNsb25lLT5zZXRDbG9uZWRMYXllcih0aGlzKTsKICAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgp
OwogfQogCkBAIC0xNDEsNyArMTQyLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJl
Y3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24KICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRyYW5zYWN0aW9uLmxheWVyUHJv
cGVydGllc0NoYW5nZWQodGhpcywgbV9wcm9wZXJ0aWVzKTsKKyAgICAgICAgdHJhbnNhY3Rpb24u
bGF5ZXJQcm9wZXJ0aWVzQ2hhbmdlZCh0aGlzKTsKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsKQEAgLTE5Miw4ICsxOTMsMTQgQEAg
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJl
Y3QqIHJlY3QpCiAgICAgbV9wcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS0+c2V0TmVlZHNEaXNwbGF5
KGVuY2xvc2luZ0ludFJlY3QoKnJlY3QpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldENvbnRlbnRzQ2hhbmdlZCgpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29w
eUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7CisgICAgQVNTRVJU
KG1fcHJvcGVydGllcy5jbG9uZWRMYXllcklEID09IGxheWVyLT5sYXllcklEKCkpOworICAgIAor
ICAgIGlmICghbV9wcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzKQorICAgICAgICBtX2NvbnRl
eHQtPmxheWVyUHJvcGVydHlDaGFuZ2VkSW5UcmFuc2FjdGlvbkJ1aWxkaW5nKHRoaXMpOworCisg
ICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6Q2xvbmVkQ29udGVudHNDaGFuZ2VkKTsKIH0KIAogUGxhdGZvcm1DQUxheWVyKiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnN1cGVybGF5ZXIoKSBjb25zdApAQCAtMzM3LDYgKzM0NCwx
NiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
IGxheWVyKQogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246Ok1hc2tMYXllckNoYW5nZWQpOwogfQogCit2b2lkIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6c2V0Q2xvbmVkTGF5ZXIoY29uc3QgUGxhdGZvcm1DQUxheWVyKiBsYXll
cikKK3sKKyAgICBpZiAobGF5ZXIpCisgICAgICAgIG1fcHJvcGVydGllcy5jbG9uZWRMYXllcklE
ID0gbGF5ZXItPmxheWVySUQoKTsKKyAgICBlbHNlCisgICAgICAgIG1fcHJvcGVydGllcy5jbG9u
ZWRMYXllcklEID0gMDsKKworICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQo
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNsb25lZENvbnRlbnRzQ2hhbmdlZCk7Cit9CisK
IGJvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjppc09wYXF1ZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fcHJvcGVydGllcy5vcGFxdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCBm
M2QxNWI0MWNmOTUyOWMwZWE4MWNiNjk1OWRmYWI0ODJmN2E5MzEwLi5kMzRmNDg5MWNiMzA1MTg5
NzE5OWJkZWFiMjFkZjVkMGRlNGMxZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKQEAg
LTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciogc3VwZXJsYXllcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVGcm9tU3VwZXJsYXllcigpIG92
ZXJyaWRlOwpAQCAtMTU1LDcgKzE1NSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHVpbnQz
Ml90IGhvc3RpbmdDb250ZXh0SUQoKTsKIAorICAgIHZvaWQgc2V0Q2xvbmVkTGF5ZXIoY29uc3Qg
UGxhdGZvcm1DQUxheWVyKik7CisKICAgICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKCkgeyByZXR1cm4gbV9wcm9wZXJ0aWVzOyB9CisgICAg
Y29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVy
dGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllczsgfQogCiAgICAgdm9pZCBkaWRDb21t
aXQoKTsKIApAQCAtMTY1LDYgKzE2OCw4IEBAIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRl
eHQpOwogICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZShjb25zdCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUmLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBSZW1vdGVMYXllclRyZWVDb250
ZXh0Kik7CiAKKyAgICBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0OyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUGxhdGZv
cm1DQUxheWVyUmVtb3RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZv
aWQgZW5zdXJlQmFja2luZ1N0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4
IGVhOWY0MDRmZGY5MzQ1N2Q2MTdkMzVhYjdiYWUxYTk0MjZkYmVhZDIuLjdlZGE0OTQ1Mjk2YTk3
YjhhODNiNjY3ZWYxOGJlNjZhOTliMDE3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5o
CkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYnVpbGRUcmFuc2FjdGlvbihS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciYgcm9v
dExheWVyKTsKIAorICAgIHZvaWQgbGF5ZXJQcm9wZXJ0eUNoYW5nZWRJblRyYW5zYWN0aW9uQnVp
bGRpbmcoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CisKICAgICAvLyBGcm9tIHRoZSBVSSBwcm9j
ZXNzCiAgICAgdm9pZCBhbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgc3RhcnRUaW1lKTsKIApA
QCAtNzYsNiArNzgsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklELCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPiBtX2xheWVyc0F3
YWl0aW5nQW5pbWF0aW9uU3RhcnQ7CiAKICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxl
Y3Rpb24gbV9iYWNraW5nU3RvcmVDb2xsZWN0aW9uOworICAgIAorICAgIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uKiBtX2N1cnJlbnRUcmFuc2FjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IGNmMjllYjkwYzMzNjYw
NTk3ZjIyZTllZWVjNTRmY2NlYTYyNDljOGYuLjFiYTJhMWRmMThkYzc2MjMxYzQxMWZhMmY3NmZl
OTkxNjM0Zjg2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAgLTQ0LDYgKzQ0
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpSZW1vdGVM
YXllclRyZWVDb250ZXh0KFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgOiBtX3dlYlBhZ2Uod2ViUGFn
ZSkKICAgICAsIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbih0aGlzKQorICAgICwgbV9jdXJyZW50
VHJhbnNhY3Rpb24obnVsbHB0cikKIHsKIH0KIApAQCAtMTAxLDEyICsxMDIsMjAgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVDb250ZXh0OjpidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJiB0cmFuc2EKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIHJvb3RMYXllclJl
bW90ZSA9IHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKHJvb3RMYXllcik7CiAgICAgdHJhbnNhY3Rp
b24uc2V0Um9vdExheWVySUQocm9vdExheWVyUmVtb3RlLmxheWVySUQoKSk7CiAKKyAgICBtX2N1
cnJlbnRUcmFuc2FjdGlvbiA9ICZ0cmFuc2FjdGlvbjsKICAgICByb290TGF5ZXJSZW1vdGUucmVj
dXJzaXZlQnVpbGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7CisgICAgbV9jdXJyZW50VHJhbnNh
Y3Rpb24gPSBudWxscHRyOwogCiAgICAgdHJhbnNhY3Rpb24uc2V0Q3JlYXRlZExheWVycyhzdGQ6
Om1vdmUobV9jcmVhdGVkTGF5ZXJzKSk7CiAgICAgdHJhbnNhY3Rpb24uc2V0RGVzdHJveWVkTGF5
ZXJJRHMoc3RkOjptb3ZlKG1fZGVzdHJveWVkTGF5ZXJzKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dDo6bGF5ZXJQcm9wZXJ0eUNoYW5nZWRJblRyYW5zYWN0aW9uQnVpbGRpbmco
UGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKK3sKKyAgICBpZiAobV9jdXJyZW50VHJhbnNh
Y3Rpb24pCisgICAgICAgIG1fY3VycmVudFRyYW5zYWN0aW9uLT5sYXllclByb3BlcnRpZXNDaGFu
Z2VkKGxheWVyKTsKK30KKwogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRB
bmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIpCiB7CiAgICAgbV9s
YXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmFkZChsYXllci0+bGF5ZXJJRCgpLCBsYXllcik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZTkzYjk4OTYzZTliNWMzNmI2YmQ4MDk5NzI3NWEzZDEzMThmZDhmYi4uNmMwYmI0
NzY4MTc5ZWQ4OWRlNjRlZGNhODBkOWJlZTVmNWQ2ZDM1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE0LTA2LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9zaXRl
ZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgVGVzdCB3aXRoIGEgcmVmbGVjdGVkIGRpdiwgdGhhdCByZXBhaW50cyBvbiBhIHRp
bWVyIHRvIHRlc3QgYmFja2luZworICAgICAgICBzdG9yZSB1cGRhdGluZyBvbiB0aGUgY2xvbmUu
CisKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVj
dGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9yZWZsZWN0
aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVjdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxNC0wNi0xNCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXNrcyBk
aXNhcHBlYXIgd2hlbiBsYXllcnMgYmVjb21lIHRpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVjdGlvbi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRo
LXJlZmxlY3Rpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTVhNTU3ZmRiNmI4YzQ1OTM0
NzliZDE5YTM5NDJhMmRhM2ZmZmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRoLXJlZmxlY3Rpb24tZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c3R5bGU+CisgICAgICAgIC5ib3ggeworICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsK
KyAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAtd2Via2l0LWJv
eC1yZWZsZWN0OiBiZWxvdyA1cHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3gu
Y2hhbmdlZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIC5jb21wb3NpdGVkIHsKKyAgICAgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisKKyAgICA8ZGl2IGlkPSJib3giIGNsYXNzPSJjb21wb3NpdGVk
IGNoYW5nZWQgYm94Ij4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZXBhaW50LXdp
dGgtcmVmbGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ZmE1MjcyNWUxNTE4N2U1NzAzZjg4ODI2
YTg3YWQ1YTAyZDJkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZWZsZWN0aW9ucy9yZXBhaW50LXdpdGgtcmVmbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDQg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAg
ICAgLmJveCB7CisgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOworICAgICAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJlbG93
IDVweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJveC5jaGFuZ2VkIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGVaKDApOworICAgICAgICB9CisgICAgICAgIAorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgewor
ICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmNsYXNzTGlzdC5hZGQoJ2NoYW5nZWQn
KTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfSwgMCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
ZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDxk
aXYgaWQ9ImJveCIgY2xhc3M9ImNvbXBvc2l0ZWQgYm94Ij4KKyAgICA8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233236</attachid>
            <date>2014-06-17 10:06:49 -0700</date>
            <delta_ts>2014-06-17 11:47:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133942-20140617100626.patch</filename>
            <type>text/plain</type>
            <size>36502</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5OTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQzZWM0M2FhYzBhODk2
ZjVmMjMwYzc0NWZlMGM0ZmE4NGJiZjdiYy4uOGFlMWJkN2M2ZGY3MjNmMDM2ZTVlMGNjMmMyMzVm
NGRkODZlY2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE0LTA2LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9zaXRlZCBsYXllcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzk0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCByZWZsZWN0aW9ucyBv
biBjb21wb3NpdGVkIGxheWVycy4gVGhlcmUgYXJlIHR3byBtYWluIHNldCBvZiBjaGFuZ2VzLgor
ICAgICAgICAKKyAgICAgICAgRmlyc3QsIGEgUGxhdGZvcm1DQUxheWVyUmVtb3RlIHdoaWNoIGlz
IGEgY2xvbmUgaGFzIHRvIHRyYWNrIHRoZSBsYXllcgorICAgICAgICBpdCBpcyBhIGNsb25lIG9m
LCBzbyBpdCBrbm93cyB3aGVyZSB0byBncmFiIHRoZSBjb250ZW50cyBmcm9tIGluIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICBUaGlzIGxheWVyIG1heSBiZSB0b2xkIHRoYXQgaXRzIGNvbnRlbnQg
bmVlZCB1cGRhdGluZyBvdXQgb2Ygb3JkZXIgZHVyaW5nCisgICAgICAgIHJlY3Vyc2l2ZUJ1aWxk
VHJhbnNhY3Rpb24oKSwgc28gd2UgbmVlZCBzb21lIHNtYWxsIGNoYW5nZXMgaW4gUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dAorICAgICAgICB0byBhbGxvdyBhIGxheWVyIHRvIGFkZCBpdHNlbGYgdG8g
dGhlIHNldCBvZiBsYXllcnMgcmVxdWlyaW5nIGNvbW1pdC4KKyAgICAgICAgCisgICAgICAgIElu
IHRoZSBVSSBwcm9jZXNzLCBhIG5ldyBzdGVwIGlzIGFkZGVkIHRvIGVtb3RlTGF5ZXJUcmVlSG9z
dDo6dXBkYXRlTGF5ZXJUcmVlKCkKKyAgICAgICAgdG8gZ28gdGhyb3VnaCBjbG9uZXMsIGFuZCBj
b3B5IHRoZWlyIGNvbnRlbnRzIGZyb20gdGhlIG9yaWdpbiBsYXllci4KKyAgICAgICAgCisgICAg
ICAgIFRoZSBzZWNvbmQgc2V0IG9mIGNoYW5nZXMgbWFrZXMgcGxhdGZvcm1DQUxheWVyTGF5ZXJE
aWREaXNwbGF5KCkgd29yayBmb3IKKyAgICAgICAgVUktc2lkZSBjb21wb3NpdGluZyBieSBub3Qg
dGFraW5nIGEgUGxhdGZvcm1MYXllciosIGJ1dCBpbnN0ZWFkIGEgUGxhdGZvcm1DQUxheWVyKi4K
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c0NoYW5nZWQoKSBjaGFuZ2VkIHRv
IGNvcHlDb250ZW50c0Zyb21MYXllcigpIHNvIHdlIGtub3cKKyAgICAgICAgd2hhdCB0aGUgb3Jp
Z2luIGxheWVyIGlzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3Jl
cGFpbnQtd2l0aC1yZWZsZWN0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyRGlkRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2xpZW50OjpwbGF0Zm9y
bUNBTGF5ZXJMYXllckRpZERpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmZpbmRPck1ha2VDbG9uZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxh
eWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ6OnBs
YXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5
ZXJNYWM6OmNvcHlDb250ZW50c0Zyb21MYXllcik6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OnN1cGVybGF5ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRDb250ZW50
c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJX
aW5JbnRlcm5hbDo6ZGlzcGxheUNhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRpc3BsYXldKToK
KwogMjAxNC0wNi0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYXNrcyBkaXNhcHBlYXIgd2hlbiBsYXllcnMgYmVjb21lIHRpbGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNDc1MzUyYjA4YTI4ZDY1NmVmMmIwNjcyMGIyMWI3MWVjMjYyZDQ0MC4uOWY1OGViYmE4
NTJjZDJjZjczOWVkZTBhNTZmYWU3MjZhYzk3NTgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDE0LTA2LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9z
aXRlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgRml4IHJlZmxlY3Rpb25zIG9uIGNvbXBvc2l0ZWQgbGF5ZXJzLiBUaGVyZSBh
cmUgdHdvIG1haW4gc2V0IG9mIGNoYW5nZXMuCisgICAgICAgIAorICAgICAgICBGaXJzdCwgYSBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUgd2hpY2ggaXMgYSBjbG9uZSBoYXMgdG8gdHJhY2sgdGhlIGxh
eWVyCisgICAgICAgIGl0IGlzIGEgY2xvbmUgb2YsIHNvIGl0IGtub3dzIHdoZXJlIHRvIGdyYWIg
dGhlIGNvbnRlbnRzIGZyb20gaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoaXMgbGF5ZXIg
bWF5IGJlIHRvbGQgdGhhdCBpdHMgY29udGVudCBuZWVkIHVwZGF0aW5nIG91dCBvZiBvcmRlciBk
dXJpbmcKKyAgICAgICAgcmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbigpLCBzbyB3ZSBuZWVkIHNv
bWUgc21hbGwgY2hhbmdlcyBpbiBSZW1vdGVMYXllclRyZWVDb250ZXh0CisgICAgICAgIHRvIGFs
bG93IGEgbGF5ZXIgdG8gYWRkIGl0c2VsZiB0byB0aGUgc2V0IG9mIGxheWVycyByZXF1aXJpbmcg
Y29tbWl0LgorICAgICAgICAKKyAgICAgICAgSW4gdGhlIFVJIHByb2Nlc3MsIGEgbmV3IHN0ZXAg
aXMgYWRkZWQgdG8gZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoKQorICAgICAg
ICB0byBnbyB0aHJvdWdoIGNsb25lcywgYW5kIGNvcHkgdGhlaXIgY29udGVudHMgZnJvbSB0aGUg
b3JpZ2luIGxheWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIHNlY29uZCBzZXQgb2YgY2hhbmdl
cyBtYWtlcyBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkoKSB3b3JrIGZvcgorICAgICAg
ICBVSS1zaWRlIGNvbXBvc2l0aW5nIGJ5IG5vdCB0YWtpbmcgYSBQbGF0Zm9ybUxheWVyKiwgYnV0
IGluc3RlYWQgYSBQbGF0Zm9ybUNBTGF5ZXIqLgorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXI6OnNl
dENvbnRlbnRzQ2hhbmdlZCgpIGNoYW5nZWQgdG8gY29weUNvbnRlbnRzRnJvbUxheWVyKCkgc28g
d2Uga25vdworICAgICAgICB3aGF0IHRoZSBvcmlnaW4gbGF5ZXIgaXMuCisKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSk6IFJlbW92ZSB0aGUgZWFybHkgcmV0dXJu
IHNvIHdlIGNhbiBhbHdheXMKKyAgICAgICAgY2FsbCBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERp
c3BsYXkoKS4KKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVy
dGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmNvcHlDb250ZW50c0Zyb21MYXllcik6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q2xvbmVkTGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENvbnRlbnRzQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpwcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjb250ZXh0KToKKwogMjAx
NC0wNi0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWFlOTgyNzFkMTA0NWY3MmYyZTMx
ZTAxNGQ4MDRkN2EyM2RmOTU3Ny4uOGZiMThhNTk1OWQ5YmRlMTJmZmY1YzllMWMxMWY1NzYxMjdl
NWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU1MCw3ICs1NTAsNyBAQCBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQTE0c2V0QW5jaG9yUG9pbnRFUktOU18xMkZsb2F0UG9pbnQzREUK
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTRzZXREZWJ1Z0JvcmRlckVSS05TXzVDb2xv
ckVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE0c2V0UHJlc2VydmVzM0RFYgogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNWFkZENoaWxkQXRJbmRleEVQTlNfMTNHcmFwaGlj
c0xheWVyRWkKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVsYXllckRpZERpc3BsYXlF
UDdDQUxheWVyCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE1bGF5ZXJEaWREaXNwbGF5
RVBOU18xNVBsYXRmb3JtQ0FMYXllckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTVy
ZW1vdmVBbmltYXRpb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE1c2V0Qm91bmRzT3JpZ2luRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMTVH
cmFwaGljc0xheWVyQ0ExNXNldENvbnRlbnRzUmVjdEVSS05TXzlGbG9hdFJlY3RFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggN2Y2
OTg0MTVkMDQ5MGU3MTY2YWIyY2RlYmUwMjFmYzZkMzdhNjUzMS4uODM5YTA5MTEzMGQxNDMxNjI2
MmYxMjMzY2Y5MWE2NGFhMWQ4YjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNDE5LDggKzQxOSw2IEBAIHB1YmxpYzoKIAog
ICAgIC8vIENhbGxiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHRvIGRy
YXcgbGF5ZXIgY29udGVudHMuCiAgICAgdm9pZCBwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApOwotICAgIC8vIENhbGxiYWNr
IGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHdoZW4gdGhlIGxheWVyIGhhcyBi
ZWVuIGRpc3BsYXllZAotICAgIHZpcnR1YWwgdm9pZCBsYXllckRpZERpc3BsYXkoUGxhdGZvcm1M
YXllciopIHsgfQogICAgIAogICAgIC8vIEZvciBob3N0aW5nIHRoaXMgR3JhcGhpY3NMYXllciBp
biBhIG5hdGl2ZSBsYXllciBoaWVyYXJjaHkuCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXgg
MmM5MTcyMjYxZGFkNzc5ZjcyYTk3MmEzZDBjODg5YjVlNjk3ODc5OS4uZDU2ZjU2NzAyOTAxNDM4
NmNiZDkzODI1MjY4MDZkZDcxNmM2ZjBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0xOTMsNyAr
MTkzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250
ZW50c09wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQ0FMYXllckRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVy
KikgeyB9CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAogICAgIEFWRldyYXBwZXIqIG1fcGFyZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKaW5kZXggZjM2OTVjZmUyNzE5MGE4MDc5NjA2NWM5YzA5NDgyMzJjYThjN2IwZi4u
NDAxZGZjNWRmM2M0Yzg4NDhjMWVkZjBhNWRlMzU4OGEzNzVhOTU0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CkBAIC05NDksMTkgKzk0OSwxNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNU
b0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBjYW52YXNMYXllcikKICAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQpOwogfQogICAgIAotdm9pZCBHcmFw
aGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVyKiBsYXllcikKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikK
IHsKLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIGN1cnJlbnRMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyKGxheWVyKTsKLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZUxheWVy
OwogICAgIExheWVyTWFwKiBsYXllckNsb25lTWFwOwogCi0gICAgaWYgKGN1cnJlbnRMYXllciA9
PSBtX2xheWVyKSB7Ci0gICAgICAgIHNvdXJjZUxheWVyID0gbV9sYXllci5nZXQoKTsKKyAgICBp
ZiAobGF5ZXIgPT0gbV9sYXllcikKICAgICAgICAgbGF5ZXJDbG9uZU1hcCA9IG1fbGF5ZXJDbG9u
ZXMuZ2V0KCk7Ci0gICAgfSBlbHNlIGlmIChjdXJyZW50TGF5ZXIgPT0gbV9jb250ZW50c0xheWVy
KSB7Ci0gICAgICAgIHNvdXJjZUxheWVyID0gbV9jb250ZW50c0xheWVyLmdldCgpOworICAgIGVs
c2UgaWYgKGxheWVyID09IG1fY29udGVudHNMYXllcikKICAgICAgICAgbGF5ZXJDbG9uZU1hcCA9
IG1fY29udGVudHNMYXllckNsb25lcy5nZXQoKTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChsYXllckNsb25lTWFwKSB7CkBAIC05NzEsMTAgKzk2Nyw3
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1MYXllciog
bGF5ZXIpCiAgICAgICAgICAgICBpZiAoIWN1cnJDbG9uZSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICAgICAgaWYgKGN1cnJDbG9uZS0+Y29udGVudHMoKSAhPSBzb3VyY2VM
YXllci0+Y29udGVudHMoKSkKLSAgICAgICAgICAgICAgICBjdXJyQ2xvbmUtPnNldENvbnRlbnRz
KHNvdXJjZUxheWVyLT5jb250ZW50cygpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjdXJyQ2xvbmUtPnNldENvbnRlbnRzQ2hhbmdlZCgpOworICAgICAgICAgICAgY3VyckNs
b25lLT5jb3B5Q29udGVudHNGcm9tTGF5ZXIobGF5ZXIpOwogICAgICAgICB9CiAgICAgfQogfQpA
QCAtMzEwNSw3ICszMDk4LDcgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNz
TGF5ZXJDQTo6ZmluZE9yTWFrZUNsb25lKENsb25lSUQgY2xvbmVJRCwgUGwKICAgICB9IGVsc2Ug
ewogICAgICAgICByZXN1bHRMYXllciA9IGNsb25lTGF5ZXIoc291cmNlTGF5ZXIsIGNsb25lTGV2
ZWwpOwogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5n
Ojpmb3JtYXQoIkNsb25lICVkIG9mIGxheWVyICVwIiwgY2xvbmVJRFswVV0sIHNvdXJjZUxheWVy
LT5wbGF0Zm9ybUxheWVyKCkpKTsKKyAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5n
Ojpmb3JtYXQoIkNsb25lICVkIG9mIGxheWVyICVsbHUiLCBjbG9uZUlEWzBVXSwgc291cmNlTGF5
ZXItPmxheWVySUQoKSkpOwogI2VuZGlmCiAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUgPSByZXN1bHRMYXllcjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGFlNGZkMzk1MTkwNjE2ODhk
MDQ1NTJkMzgyMTU1ZDlhYjFhZjY1MGEuLjI0ZmU1YmJhNDQ4MTA4ZTUxMzlkYzc3ZWNiYzI3YTJl
ODEzZDFlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xNDQsOCArMTQ0LDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDdXN0b21BcHBlYXJhbmNlKEN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXN0b21CZWhhdmlvcihDdXN0b21CZWhhdmlvcikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIq
KSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWQoKSBvdmVycmlkZTsKIAogICAgIHN0cnVjdCBDb21taXRTdGF0ZSB7CkBAIC0xODgsNyAr
MTg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250
ZW50c09wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGNvbnRlbnRzT3BhcXVlKCk7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZHJhd3NDb250ZW50KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqIGxheWVyKSBvdmVycmlkZSB7
IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRm
b3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKSBvdmVycmlk
ZSB7IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXMoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVs
dGlwbGllckZvck5ld1RpbGVzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0IG92ZXJyaWRlOwpAQCAt
MjAxLDYgKzE5OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVwYWlu
dE9uU2l6ZUNoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdm9pZCBsYXllckRpZERpc3Bs
YXkoUGxhdGZvcm1DQUxheWVyKik7CiAgICAgdm9pZCB1cGRhdGVPcGFjaXR5T25MYXllcigpOwog
ICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggZTY0YjA5Zjc5Y2Fk
N2Q4NTE1NzVhZWFmN2Q5ZGI1OGNkNThkNjU2OC4uZGE4YmMyMjYxN2Y0NTAwOTIxM2EzN2Q4ZWY3
NjMzNGU4ZjZjMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzQ2hhbmdlZCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXll
ciopID0gMDsKIAogICAgIExheWVyVHlwZSBsYXllclR5cGUoKSBjb25zdCB7IHJldHVybiBtX2xh
eWVyVHlwZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCmluZGV4IGNmY2RkZjQ2NTAzNDViN2Qz
YzRhMTViM2RiMmZjNzA4ZWE3Zjg2MDMuLjQ2ZmQxODEzZWJmNGViMmYyM2Q0MmFmM2M2MzdiYWJj
YzE0OGFkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVu
dCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaWRE
aXNwbGF5KFBsYXRmb3JtTGF5ZXIqKSAgeyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FM
YXllckxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqKSAgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGxhdGZvcm1DQUxheWVyU2V0TmVlZHNUb1JldmFsaWRhdGVUaWxlcygpIHsgfQogICAg
IHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKaW5kZXggZTRkOGM3ZjQ3MjVmNjM2NjY4NGZiZGYw
ZTZkNTJhNTU1YzYxNjNkNy4uOGU1OWE0ZjMxODEwOWU4ZjJmZDRiMTQwYzA5ZjUxODlmY2I5YzVm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDaGFuZ2Vk
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0
Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiBz
dXBlcmxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21T
dXBlcmxheWVyKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA0ZTRi
M2VhY2Q3MGIzMWYyZjU0MmUyNjU2Mzc0NmVhYjEyNGViZTM5Li43NDk5MzFlODI0YzllNzllMjAz
YjlkZmUyMTYyYWE0M2RjNDBjN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTMy
MywxNyArMzIzLDIxIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QpCiAgICAgICAgIFttX2xheWVyLmdldCgpIHNldE5l
ZWRzRGlzcGxheV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQotICAgIAotdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldENvbnRlbnRzQ2hhbmdlZCgpCisKK3ZvaWQgUGxhdGZv
cm1DQUxheWVyTWFjOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXll
cikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRDb250ZW50c0NoYW5nZWRdOworICAgIENBTGF5ZXIqIGNhTGF5ZXIgPSBsYXllci0+bV9s
YXllci5nZXQoKTsKKyAgICBpZiAoW21fbGF5ZXIgY29udGVudHNdICE9IFtjYUxheWVyIGNvbnRl
bnRzXSkKKyAgICAgICAgW21fbGF5ZXIgc2V0Q29udGVudHM6W2NhTGF5ZXIgY29udGVudHNdXTsK
KyAgICBlbHNlCisgICAgICAgIFttX2xheWVyIHNldENvbnRlbnRzQ2hhbmdlZF07CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FM
YXllck1hYzo6c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllci5nZXQoKSBzdXBlcmxheWVyXSk7CisgICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
cihbbV9sYXllciBzdXBlcmxheWVyXSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpy
ZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IDRk
OTc5ZmQxYjU4MDkxZWJlYzBlOWE4OGM3MDA0NjQwZTNmYjQ1OTQuLjZmY2M1ZmY1NzczYzI0ZjI2
ZjlkMDIxYTMxZDZlOTlhYWYwYTg1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBA
IC0xOTcsMTQgKzE5NywxNCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TmVlZHNDb21t
aXQoKQogICAgICAgICBob3N0LT5sYXllclRyZWVEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBQbGF0
Zm9ybUNBTGF5ZXJXaW46OnNldENvbnRlbnRzQ2hhbmdlZCgpCi17Ci0gICAgLy8gRklYTUU6IFRo
ZXJlIGlzIG5vIGVxdWl2YWxlbnQgb2Ygc2V0Q29udGVudHNDaGFuZ2VkIGluIENBQ0YuIEZvciBu
b3cgSSB3aWxsCi0gICAgLy8gc2V0IGNvbnRlbnRzIHRvIDAgYW5kIHRoZW4gYmFjayB0byBpdHMg
b3JpZ2luYWwgdmFsdWUgdG8gc2VlIGlmIHRoYXQKLSAgICAvLyBraWNrcyBDQUNGIGludG8gcmVk
aXNwbGF5aW5nLgotICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IGNvbnRlbnRzID0gQ0FDRkxheWVy
R2V0Q29udGVudHMobV9sYXllci5nZXQoKSk7Ci0gICAgQ0FDRkxheWVyU2V0Q29udGVudHMobV9s
YXllci5nZXQoKSwgMCk7Ci0gICAgQ0FDRkxheWVyU2V0Q29udGVudHMobV9sYXllci5nZXQoKSwg
Y29udGVudHMuZ2V0KCkpOwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OmNvcHlDb250ZW50c0Zy
b21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkKK3sKKyAgICBpZiAoc291cmNlKSB7Cisg
ICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IGNvbnRlbnRzID0gQ0FDRkxheWVyR2V0Q29udGVu
dHMoc291cmNlLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBDQUNGTGF5ZXJTZXRDb250ZW50
cyhtX2xheWVyLmdldCgpLCBjb250ZW50cy5nZXQoKSk7CisgICAgfSBlbHNlCisgICAgICAgIENB
Q0ZMYXllclNldENvbnRlbnRzKG1fbGF5ZXIuZ2V0KCksIG51bGxwdHIpOworCiAgICAgc2V0TmVl
ZHNDb21taXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCmluZGV4IDIwMDg1MzIxYzU1
NmEyYjgwZTdjODQ5Mzg0OGIzNTI3Njg3ZThkYzEuLjY2NTRkNTk3MWJkMzg2OGJjMDk5MDAyOGZm
MDcwNDg5NDNlZDhkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKQEAgLTQxLDcgKzQxLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBGbG9h
dFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb3B5Q29udGVudHNG
cm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBsYXRm
b3JtQ0FMYXllciogc3VwZXJsYXllcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVGcm9tU3VwZXJsYXllcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNB
TGF5ZXJXaW5JbnRlcm5hbC5jcHAKaW5kZXggMzlmMzlmYTU1YjJkM2JmNTcyMzAxOTlhMTBkZmQw
OTVhNTNlY2I3MC4uNjdjYmE1M2ZkNzljY2FjZTMzZDUyMjhmYTU3M2FkZTQ3ZWE3N2U0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbkludGVybmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCkBAIC0xMzksNyArMTM5
LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6ZGlzcGxheUNhbGxiYWNrKENB
Q0ZMYXllclJlZiBjYUxheWVyLCBDR0NvbnRleHQKIAogICAgIENHQ29udGV4dFJlc3RvcmVHU3Rh
dGUoY29udGV4dCk7CiAKLSAgICBvd25lcigpLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXll
ckRpZERpc3BsYXkoY2FMYXllcik7CisgICAgb3duZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxh
eWVyTGF5ZXJEaWREaXNwbGF5KG93bmVyKCkpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldp
bkludGVybmFsOjppbnRlcm5hbFNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5
UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9X
ZWJMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXll
ci5tbQppbmRleCA4NWRiMDc1Y2NlZDBlYmNkZTQwMWRkZmE5MGM4YmU3MjViZTdhY2JhLi4wYmYz
MDhhYjI5ZjJiYmFjZDYwYTA5MWQ4NzliNWUxNWUwNjliNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC0xMTAsNyArMTEwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgW3N1cGVyIGRpc3BsYXldOwogICAgIFBs
YXRmb3JtQ0FMYXllciogbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihz
ZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpCi0gICAgICAgIGxheWVyLT5v
d25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkoc2VsZik7CisgICAgICAgIGxh
eWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIpOwogfQog
CiAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRl
eCAyNTQzZjE1MDkzMjdiNmZiNDhjYWQ1ZWUxYWJiYzkxN2M2MjBkNmNjLi41ODI5OTA1ZDNjNGU3
NzJhMjBkOGY3MjFlYjA3NzNiMzhhNDQ1ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTI0MCwxOSArMjQwLDIw
IEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkoKQogICAgICAgICBkcmF3
SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CiAKICAgICAgICAgbV9mcm9udEJ1
ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7Ci0KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQorICAgIH0gZWxzZQogI2VuZGlmCisgICAgeworICAgICAgICBBU1NFUlQo
IW1fYWNjZWxlcmF0ZXNEcmF3aW5nKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
Q29udGV4dD4gY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuYml0bWFwLT5jcmVhdGVHcmFwaGljc0Nv
bnRleHQoKTsKIAotICAgIEFTU0VSVCghbV9hY2NlbGVyYXRlc0RyYXdpbmcpOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLmJpdG1h
cC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7Ci0KLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
YmFja0ltYWdlOwotICAgIGlmIChtX2JhY2tCdWZmZXIuYml0bWFwICYmICF3aWxsUGFpbnRFbnRp
cmVCYWNraW5nU3RvcmUpCi0gICAgICAgIGJhY2tJbWFnZSA9IG1fYmFja0J1ZmZlci5iaXRtYXAt
Pm1ha2VDR0ltYWdlKCk7CisgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBiYWNrSW1hZ2U7
CisgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuYml0bWFwICYmICF3aWxsUGFpbnRFbnRpcmVCYWNr
aW5nU3RvcmUpCisgICAgICAgICAgICBiYWNrSW1hZ2UgPSBtX2JhY2tCdWZmZXIuYml0bWFwLT5t
YWtlQ0dJbWFnZSgpOwogCi0gICAgZHJhd0luQ29udGV4dCgqY29udGV4dCwgYmFja0ltYWdlLmdl
dCgpKTsKKyAgICAgICAgZHJhd0luQ29udGV4dCgqY29udGV4dCwgYmFja0ltYWdlLmdldCgpKTsK
KyAgICB9CisgICAgCisgICAgbV9sYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJE
aWREaXNwbGF5KG1fbGF5ZXIpOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
CmluZGV4IGVlMGZjYTg3YTFkOWE5YWJlNGVlYzQ4OTAwMDRlNzk4M2M2ZWFhM2QuLjE4OTBiMDky
M2Q0YzAyODE0YTFjYzVkZjUwZjM1OGIzMWRjY2Q5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTY4LDE5
ICs2OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIE1hc2tzVG9Cb3VuZHNDaGFuZ2VkID0gMSA8PCAx
NSwKICAgICAgICAgT3BhcXVlQ2hhbmdlZCA9IDEgPDwgMTYsCiAgICAgICAgIE1hc2tMYXllckNo
YW5nZWQgPSAxIDw8IDE3LAotICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkID0gMSA8PCAxOCwK
LSAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxIDw8IDE5LAotICAgICAgICBNaW5pZmlj
YXRpb25GaWx0ZXJDaGFuZ2VkID0gMSA8PCAyMCwKLSAgICAgICAgTWFnbmlmaWNhdGlvbkZpbHRl
ckNoYW5nZWQgPSAxIDw8IDIxLAotICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gMSA8PCAyMiwK
LSAgICAgICAgU3BlZWRDaGFuZ2VkID0gMSA8PCAyMywKLSAgICAgICAgVGltZU9mZnNldENoYW5n
ZWQgPSAxIDw8IDI0LAotICAgICAgICBCYWNraW5nU3RvcmVDaGFuZ2VkID0gMSA8PCAyNSwKLSAg
ICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI2LAotICAgICAgICBBbmltYXRpb25zQ2hhbmdl
ZCA9IDEgPDwgMjcsCi0gICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwg
MjgsCi0gICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAyOSwKLSAgICAgICAg
Q3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMSA8PCAzMAorICAgICAgICBDbG9uZWRDb250ZW50c0No
YW5nZWQgPSAxIDw8IDE4LAorICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkID0gMSA8PCAxOSwK
KyAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxIDw8IDIwLAorICAgICAgICBNaW5pZmlj
YXRpb25GaWx0ZXJDaGFuZ2VkID0gMSA8PCAyMSwKKyAgICAgICAgTWFnbmlmaWNhdGlvbkZpbHRl
ckNoYW5nZWQgPSAxIDw8IDIyLAorICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gMSA8PCAyMywK
KyAgICAgICAgU3BlZWRDaGFuZ2VkID0gMSA8PCAyNCwKKyAgICAgICAgVGltZU9mZnNldENoYW5n
ZWQgPSAxIDw8IDI1LAorICAgICAgICBCYWNraW5nU3RvcmVDaGFuZ2VkID0gMSA8PCAyNiwKKyAg
ICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI3LAorICAgICAgICBBbmltYXRpb25zQ2hhbmdl
ZCA9IDEgPDwgMjgsCisgICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwg
MjksCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAzMCwKKyAgICAgICAg
Q3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMSA8PCAzMQogICAgIH07CiAgICAgdHlwZWRlZiB1bnNp
Z25lZCBMYXllckNoYW5nZTsKIApAQCAtMTMyLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmU7CiAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPiBmaWx0ZXJz
OwogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbWFza0xh
eWVySUQ7CisgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBj
bG9uZWRMYXllcklEOwogICAgICAgICBkb3VibGUgdGltZU9mZnNldDsKICAgICAgICAgZmxvYXQg
c3BlZWQ7CiAgICAgICAgIGZsb2F0IGNvbnRlbnRzU2NhbGU7CkBAIC0xNjAsNyArMTYyLDcgQEAg
cHVibGljOgogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHJv
b3RMYXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXJJRDsgfQogICAgIHZvaWQgc2V0
Um9vdExheWVySUQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKTsKLSAg
ICB2b2lkIGxheWVyUHJvcGVydGllc0NoYW5nZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiwgTGF5
ZXJQcm9wZXJ0aWVzJik7CisgICAgdm9pZCBsYXllclByb3BlcnRpZXNDaGFuZ2VkKFBsYXRmb3Jt
Q0FMYXllclJlbW90ZSopOwogICAgIHZvaWQgc2V0Q3JlYXRlZExheWVycyhWZWN0b3I8TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXM+KTsKICAgICB2b2lkIHNldERlc3Ryb3llZExheWVySURzKFZlY3Rv
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KTsKICAgICB2b2lkIHNl
dExheWVySURzV2l0aE5ld2x5VW5yZWFjaGFibGVCYWNraW5nU3RvcmUoVmVjdG9yPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggOTVj
NjhhZGQzY2VjNTVlMzcyMmMzNDE3YTRjMzA2NDM4NjRlZTZiMi4uYjIzNWQ1NTc5YTcxYzQ3MWIy
NjRjZDRkYTc3MWIwYTM1OTRmNGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC04MSw2ICs4MSw3IEBA
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVy
dGllcygpCiAgICAgLCBhbmNob3JQb2ludCgwLjUsIDAuNSwgMCkKICAgICAsIGNvbnRlbnRzUmVj
dChGbG9hdFBvaW50KCksIEZsb2F0U2l6ZSgxLCAxKSkKICAgICAsIG1hc2tMYXllcklEKDApCisg
ICAgLCBjbG9uZWRMYXllcklEKDApCiAgICAgLCB0aW1lT2Zmc2V0KDApCiAgICAgLCBzcGVlZCgx
KQogICAgICwgY29udGVudHNTY2FsZSgxKQpAQCAtMTE0LDYgKzExNSw3IEBAIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyhjb25zdCBM
YXllclByb3BlcnRpCiAgICAgLCBib3VuZHMob3RoZXIuYm91bmRzKQogICAgICwgY29udGVudHNS
ZWN0KG90aGVyLmNvbnRlbnRzUmVjdCkKICAgICAsIG1hc2tMYXllcklEKG90aGVyLm1hc2tMYXll
cklEKQorICAgICwgY2xvbmVkTGF5ZXJJRChvdGhlci5jbG9uZWRMYXllcklEKQogICAgICwgdGlt
ZU9mZnNldChvdGhlci50aW1lT2Zmc2V0KQogICAgICwgc3BlZWQob3RoZXIuc3BlZWQpCiAgICAg
LCBjb250ZW50c1NjYWxlKG90aGVyLmNvbnRlbnRzU2NhbGUpCkBAIC0yMDYsNiArMjA4LDkgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGUKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBNYXNr
TGF5ZXJDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IG1hc2tMYXllcklEOwogCisgICAgaWYg
KGNoYW5nZWRQcm9wZXJ0aWVzICYgQ2xvbmVkQ29udGVudHNDaGFuZ2VkKQorICAgICAgICBlbmNv
ZGVyIDw8IGNsb25lZExheWVySUQ7CisKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDb250
ZW50c1JlY3RDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IGNvbnRlbnRzUmVjdDsKIApAQCAt
MzU2LDYgKzM2MSwxMSBAQCBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclBy
b3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZAogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBD
bG9uZWRDb250ZW50c0NoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuY2xvbmVkTGF5ZXJJRCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAg
ICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIENvbnRlbnRzUmVjdENoYW5nZWQpIHsK
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGVudHNSZWN0KSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU0NSw3ICs1NTUsNyBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpzZXRSb290TGF5ZXJJRChHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQgcgogICAgIG1fcm9vdExheWVySUQgPSByb290TGF5ZXJJRDsKIH0KIAotdm9pZCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6bGF5ZXJQcm9wZXJ0aWVzQ2hhbmdlZChQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUqIHJlbW90ZUxheWVyLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQordm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6bGF5ZXJQcm9wZXJ0aWVzQ2hhbmdlZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIHJlbW90ZUxh
eWVyKQogewogICAgIG1fY2hhbmdlZExheWVycy5hcHBlbmQocmVtb3RlTGF5ZXIpOwogfQpAQCAt
MTA1NCw2ICsxMDY0LDkgQEAgc3RhdGljIHZvaWQgZHVtcENoYW5nZWRMYXllcnMoUmVtb3RlTGF5
ZXJUcmVlVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbW90ZUxheWVyVHIKICAgICAgICAgaWYgKGxh
eWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpNYXNrTGF5ZXJDaGFuZ2VkKQogICAgICAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAibWFz
a0xheWVyIiwgbGF5ZXJQcm9wZXJ0aWVzLm1hc2tMYXllcklEKTsKIAorICAgICAgICBpZiAobGF5
ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkNsb25lZENvbnRlbnRzQ2hhbmdlZCkKKyAgICAgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywg
ImNsb25lZExheWVyIiwgbGF5ZXJQcm9wZXJ0aWVzLmNsb25lZExheWVySUQpOworCiAgICAgICAg
IGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6Q29udGVudHNSZWN0Q2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0
eSh0cywgImNvbnRlbnRzUmVjdCIsIGxheWVyUHJvcGVydGllcy5jb250ZW50c1JlY3QpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhv
c3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3Qu
bW0KaW5kZXggMWNiZjM1NjFhMTcxNjY0NjUxMTA3MmM0ZDJhNWZiNGE2ZTk0MWU3OS4uMmMxNWE5
MzFlY2FmNmI5MDUzYmRjMGM2MzkyMGI1NWJkNGE4NGQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtNzEsNiArNzEs
OSBAQCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbgogICAgICAgICByb290TGF5ZXJDaGFuZ2VkID0g
dHJ1ZTsKICAgICB9CiAKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjxHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQsIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gTGF5ZXJJRFBhaXI7
CisgICAgVmVjdG9yPExheWVySURQYWlyPiBjbG9uZXNUb1VwZGF0ZTsKKyAgICAKICAgICBmb3Ig
KGF1dG8mIGNoYW5nZWRMYXllciA6IHRyYW5zYWN0aW9uLmNoYW5nZWRMYXllclByb3BlcnRpZXMo
KSkgewogICAgICAgICBhdXRvIGxheWVySUQgPSBjaGFuZ2VkTGF5ZXIua2V5OwogICAgICAgICBj
b25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0
aWVzID0gKmNoYW5nZWRMYXllci52YWx1ZTsKQEAgLTg3LDYgKzkwLDkgQEAgYm9vbCBSZW1vdGVM
YXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mIHRyYW4KICAgICAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TWFza0xheWVyQ2hhbmdlZCAmJiBwcm9wZXJ0aWVz
Lm1hc2tMYXllcklEKQogICAgICAgICAgICAgcmVsYXRlZExheWVycy5zZXQocHJvcGVydGllcy5t
YXNrTGF5ZXJJRCwgZ2V0TGF5ZXIocHJvcGVydGllcy5tYXNrTGF5ZXJJRCkpOwogCisgICAgICAg
IGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkNsb25lZENvbnRlbnRzQ2hhbmdlZCAmJiBwcm9wZXJ0aWVzLmNsb25lZExheWVySUQp
CisgICAgICAgICAgICBjbG9uZXNUb1VwZGF0ZS5hcHBlbmQoTGF5ZXJJRFBhaXIobGF5ZXJJRCwg
cHJvcGVydGllcy5jbG9uZWRMYXllcklEKSk7CisKICAgICAgICAgaWYgKG1faXNEZWJ1Z0xheWVy
VHJlZUhvc3QpIHsKICAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6
YXBwbHlQcm9wZXJ0aWVzKGxheWVyLCB0aGlzLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsK
IApAQCAtOTYsNiArMTAyLDEyIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5
ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuCiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVBy
b3BlcnRpZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOwogICAgIH0K
KyAgICAKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVyUGFpciA6IGNsb25lc1RvVXBkYXRlKSB7
CisgICAgICAgIExheWVyT3JWaWV3ICpsYXllciA9IGdldExheWVyKGxheWVyUGFpci5maXJzdCk7
CisgICAgICAgIExheWVyT3JWaWV3ICpjbG9uZWRMYXllciA9IGdldExheWVyKGxheWVyUGFpci5z
ZWNvbmQpOworICAgICAgICBhc0xheWVyKGxheWVyKS5jb250ZW50cyA9IGFzTGF5ZXIoY2xvbmVk
TGF5ZXIpLmNvbnRlbnRzOworICAgIH0KIAogICAgIGZvciAoYXV0byYgZGVzdHJveWVkTGF5ZXIg
OiB0cmFuc2FjdGlvbi5kZXN0cm95ZWRMYXllcnMoKSkKICAgICAgICAgbGF5ZXJXaWxsQmVSZW1v
dmVkKGRlc3Ryb3llZExheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCBi
NDIxYWMyY2ZmZjRlZWQ0OTRjMDQzZmNkMjUyZmZkZTA3ZTYwMTViLi44MGQwMmI1YzRmZWRkZWQx
ZjEyZDFmMmUzMzg0ZjAxNTgzZWQxMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3Bw
CkBAIC0xMDQsNiArMTA0LDcgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KgogCiAgICAgY2xvbmUt
Pm1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoc3RhdGljX2Nhc3Q8UmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ2hhbmdlPihtX3Byb3BlcnRpZXMuZXZlckNoYW5nZWRQ
cm9wZXJ0aWVzICYgflJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNraW5nU3RvcmVDaGFu
Z2VkKSk7CiAKKyAgICBjbG9uZS0+c2V0Q2xvbmVkTGF5ZXIodGhpcyk7CiAgICAgcmV0dXJuIGNs
b25lLnJlbGVhc2UoKTsKIH0KIApAQCAtMTQxLDcgKzE0Miw3IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB0cmFuc2Fj
dGlvbi5sYXllclByb3BlcnRpZXNDaGFuZ2VkKHRoaXMsIG1fcHJvcGVydGllcyk7CisgICAgICAg
IHRyYW5zYWN0aW9uLmxheWVyUHJvcGVydGllc0NoYW5nZWQodGhpcyk7CiAgICAgfQogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgKytpKSB7CkBAIC0xOTIs
OCArMTkzLDE0IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiByZWN0KQogICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPnNl
dE5lZWRzRGlzcGxheShlbmNsb3NpbmdJbnRSZWN0KCpyZWN0KSk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpzZXRDb250ZW50c0NoYW5nZWQoKQordm9pZCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQog
eworICAgIEFTU0VSVChtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9PSBsYXllci0+bGF5ZXJJ
RCgpKTsKKyAgICAKKyAgICBpZiAoIW1fcHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcykKKyAg
ICAgICAgbV9jb250ZXh0LT5sYXllclByb3BlcnR5Q2hhbmdlZEluVHJhbnNhY3Rpb25CdWlsZGlu
Zyh0aGlzKTsKKworICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNsb25lZENvbnRlbnRzQ2hhbmdlZCk7CiB9CiAKIFBsYXRm
b3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzdXBlcmxheWVyKCkgY29uc3QKQEAg
LTMzNyw2ICszNDQsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE1hc2soUGxh
dGZvcm1DQUxheWVyKiBsYXllcikKICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFu
Z2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpNYXNrTGF5ZXJDaGFuZ2VkKTsKIH0KIAor
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENsb25lZExheWVyKGNvbnN0IFBsYXRmb3Jt
Q0FMYXllciogbGF5ZXIpCit7CisgICAgaWYgKGxheWVyKQorICAgICAgICBtX3Byb3BlcnRpZXMu
Y2xvbmVkTGF5ZXJJRCA9IGxheWVyLT5sYXllcklEKCk7CisgICAgZWxzZQorICAgICAgICBtX3By
b3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9IDA7CisKKyAgICBtX3Byb3BlcnRpZXMubm90ZVByb3Bl
cnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDbG9uZWRDb250ZW50c0No
YW5nZWQpOworfQorCiBib29sIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aXNPcGFxdWUoKSBjb25z
dAogewogICAgIHJldHVybiBtX3Byb3BlcnRpZXMub3BhcXVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmgKaW5kZXggZjNkMTViNDFjZjk1MjljMGVhODFjYjY5NTlkZmFiNDgyZjdhOTMxMC4uZDM0
ZjQ4OTFjYjMwNTE4OTcxOTliZGVhYjIxZGY1ZDBkZTRjMWQ1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NoYW5nZWQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXll
ciopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHN1
cGVybGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVN1
cGVybGF5ZXIoKSBvdmVycmlkZTsKQEAgLTE1NSw3ICsxNTUsMTAgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB1aW50MzJfdCBob3N0aW5nQ29udGV4dElEKCk7CiAKKyAgICB2b2lkIHNldENsb25l
ZExheWVyKGNvbnN0IFBsYXRmb3JtQ0FMYXllciopOworCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcygpIHsgcmV0dXJuIG1fcHJvcGVy
dGllczsgfQorICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3Bl
cnRpZXMmIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXM7IH0KIAogICAg
IHZvaWQgZGlkQ29tbWl0KCk7CiAKQEAgLTE2NSw2ICsxNjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
UGxhdGZvcm1DQUxheWVyUmVtb3RlKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
LCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVD
b250ZXh0KiBjb250ZXh0KTsKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoY29uc3QgUGxhdGZv
cm1DQUxheWVyUmVtb3RlJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiwgUmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dCopOwogCisgICAgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1BsYXRmb3JtQ0FMYXllclJlbW90ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQuaAppbmRleCBlYTlmNDA0ZmRmOTM0NTdkNjE3ZDM1YWI3YmFlMWE5NDI2ZGJlYWQyLi43
ZWRhNDk0NTI5NmE5N2I4YTgzYjY2N2VmMThiZTY2YTk5YjAxNzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJ1aWxk
VHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mLCBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXImIHJvb3RMYXllcik7CiAKKyAgICB2b2lkIGxheWVyUHJvcGVydHlDaGFuZ2VkSW5U
cmFuc2FjdGlvbkJ1aWxkaW5nKFBsYXRmb3JtQ0FMYXllclJlbW90ZSopOworCiAgICAgLy8gRnJv
bSB0aGUgVUkgcHJvY2VzcwogICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHN0
YXJ0VGltZSk7CiAKQEAgLTc2LDYgKzc4LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
Kj4gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0OwogCiAgICAgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbjsKKyAgICAKKyAgICBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiogbV9jdXJyZW50VHJhbnNhY3Rpb247CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCBj
ZjI5ZWI5MGMzMzY2MDU5N2YyMmU5ZWVlYzU0ZmNjZWE2MjQ5YzhmLi4xYmEyYTFkZjE4ZGM3NjIz
MWM0MTFmYTJmNzZmZTk5MTYzNGY4Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
CkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dChXZWJQYWdlKiB3ZWJQYWdlKQogICAgIDogbV93
ZWJQYWdlKHdlYlBhZ2UpCiAgICAgLCBtX2JhY2tpbmdTdG9yZUNvbGxlY3Rpb24odGhpcykKKyAg
ICAsIG1fY3VycmVudFRyYW5zYWN0aW9uKG51bGxwdHIpCiB7CiB9CiAKQEAgLTEwMSwxMiArMTAy
LDIwIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRUcmFuc2FjdGlvbihSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhCiAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
JiByb290TGF5ZXJSZW1vdGUgPSB0b1BsYXRmb3JtQ0FMYXllclJlbW90ZShyb290TGF5ZXIpOwog
ICAgIHRyYW5zYWN0aW9uLnNldFJvb3RMYXllcklEKHJvb3RMYXllclJlbW90ZS5sYXllcklEKCkp
OwogCisgICAgbV9jdXJyZW50VHJhbnNhY3Rpb24gPSAmdHJhbnNhY3Rpb247CiAgICAgcm9vdExh
eWVyUmVtb3RlLnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOworICAgIG1f
Y3VycmVudFRyYW5zYWN0aW9uID0gbnVsbHB0cjsKIAogICAgIHRyYW5zYWN0aW9uLnNldENyZWF0
ZWRMYXllcnMoc3RkOjptb3ZlKG1fY3JlYXRlZExheWVycykpOwogICAgIHRyYW5zYWN0aW9uLnNl
dERlc3Ryb3llZExheWVySURzKHN0ZDo6bW92ZShtX2Rlc3Ryb3llZExheWVycykpOwogfQogCit2
b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyUHJvcGVydHlDaGFuZ2VkSW5UcmFuc2Fj
dGlvbkJ1aWxkaW5nKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIpCit7CisgICAgaWYgKG1f
Y3VycmVudFRyYW5zYWN0aW9uKQorICAgICAgICBtX2N1cnJlbnRUcmFuc2FjdGlvbi0+bGF5ZXJQ
cm9wZXJ0aWVzQ2hhbmdlZChsYXllcik7Cit9CisKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6d2lsbFN0YXJ0QW5pbWF0aW9uT25MYXllcihQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGxheWVy
KQogewogICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5hZGQobGF5ZXItPmxheWVy
SUQoKSwgbGF5ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU5M2I5ODk2M2U5YjVjMzZiNmJkODA5OTcyNzVhM2QxMzE4
ZmQ4ZmIuLjZjMGJiNDc2ODE3OWVkODlkZTY0ZWRjYTgwZDliZWU1ZjVkNmQzNWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxNC0wNi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBbVUktc2lkZSBjb21wb3NpdGluZ10gZml4IHJlZmxlY3Rpb25z
IG9uIGNvbXBvc2l0ZWQgbGF5ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzM5NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIFRlc3Qgd2l0aCBhIHJlZmxlY3RlZCBkaXYsIHRoYXQgcmVw
YWludHMgb24gYSB0aW1lciB0byB0ZXN0IGJhY2tpbmcKKyAgICAgICAgc3RvcmUgdXBkYXRpbmcg
b24gdGhlIGNsb25lLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWlu
dC13aXRoLXJlZmxlY3Rpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRoLXJlZmxlY3Rpb24uaHRtbDogQWRkZWQuCisK
IDIwMTQtMDYtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFza3MgZGlzYXBwZWFyIHdoZW4gbGF5ZXJzIGJlY29tZSB0aWxlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRoLXJlZmxl
Y3Rpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25z
L3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU1YTU1
N2ZkYjZiOGM0NTkzNDc5YmQxOWEzOTQyYTJkYTNmZmZhZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlcGFpbnQtd2l0aC1yZWZsZWN0aW9u
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1s
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuYm94IHsKKyAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBzaWx2ZXI7CisgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAg
ICAgLXdlYmtpdC1ib3gtcmVmbGVjdDogYmVsb3cgNXB4OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAuYm94LmNoYW5nZWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3Jh
bmdlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuY29tcG9zaXRlZCB7CisgICAgICAg
ICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCisgICAgPGRpdiBpZD0iYm94IiBjbGFz
cz0iY29tcG9zaXRlZCBjaGFuZ2VkIGJveCI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZXBhaW50
LXdpdGgtcmVmbGVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlv
bnMvcmVwYWludC13aXRoLXJlZmxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGZhNTI3MjVlMTUx
ODdlNTcwM2Y4ODgyNmE4N2FkNWEwMmQyZDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVwYWludC13aXRoLXJlZmxlY3Rpb24uaHRtbApA
QCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8
c3R5bGU+CisgICAgICAgIC5ib3ggeworICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAg
ICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAtd2Via2l0LWJveC1y
ZWZsZWN0OiBiZWxvdyA1cHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3guY2hh
bmdlZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIC5jb21wb3NpdGVkIHsKKyAgICAgICAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICA8L3N0eWxlPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc0xpc3Qu
YWRkKCdjaGFuZ2VkJyk7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0sIDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisKKyAgICA8ZGl2IGlkPSJib3giIGNsYXNzPSJjb21wb3NpdGVkIGJveCI+CisgICAgPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="257728"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>