<?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>198764</bug_id>
          
          <creation_ts>2019-06-11 13:07:02 -0700</creation_ts>
          <short_desc>LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing</short_desc>
          <delta_ts>2019-06-12 06:30:47 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543807</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-11 13:07:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/51035459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543812</commentid>
    <comment_count>1</comment_count>
      <attachid>371871</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-06-11 13:16:32 -0700</bug_when>
    <thetext>Created attachment 371871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543815</commentid>
    <comment_count>2</comment_count>
      <attachid>371871</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-11 13:28:45 -0700</bug_when>
    <thetext>Comment on attachment 371871
Patch

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

r=mews

&gt; Source/WebKit/Shared/WebPageCreationParameters.cpp:295
&gt; +    if (!decoder.decode(parameters.doubleClickForDoubleTapDelay))

Nit - doubleTapForDoubleClick* sounds a bit more appropriate.

&gt; Source/WebKit/Shared/WebPageCreationParameters.h:161
&gt; +    double doubleClickForDoubleTapDelay { 350 };

Nit - Seconds

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:809
&gt; +    auto distanceBetweenTaps = sqrtf(pow(m_potentialTapLocation.x() - m_lastCommittedTapLocation.x(), 2) + pow(m_potentialTapLocation.y() - m_lastCommittedTapLocation.y(), 2));

Nit - you could probably just subtract the points and use diagonalLengthSquared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543843</commentid>
    <comment_count>3</comment_count>
      <attachid>371881</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-06-11 14:53:15 -0700</bug_when>
    <thetext>Created attachment 371881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543953</commentid>
    <comment_count>4</comment_count>
      <attachid>371881</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-11 21:13:42 -0700</bug_when>
    <thetext>Comment on attachment 371881
Patch

Clearing flags on attachment: 371881

Committed r246347: &lt;https://trac.webkit.org/changeset/246347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543954</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-11 21:13:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543955</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-11 21:14:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/51654009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544004</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-06-12 02:17:49 -0700</bug_when>
    <thetext>Impressive!

Do any TestExpectations files need to be updated? Can’t check them now myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544054</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-12 06:30:47 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #7)
&gt; Impressive!
&gt; 
&gt; Do any TestExpectations files need to be updated? Can’t check them now
&gt; myself.
Oh, right! I&apos;ll take a look and will update them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371871</attachid>
            <date>2019-06-11 13:16:32 -0700</date>
            <delta_ts>2019-06-11 14:53:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198764-20190611131631.patch</filename>
            <type>text/plain</type>
            <size>32104</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyODQ4ZWU0ZDZkMTdkMmM0
YTBmMTE3ZWY2MWU1ZDk5MTcyOTEwNTIuLmE5NDg1OGQ0OTlmMzJlZWEzZTc4Y2VlYmRiNjc5YzAz
ZDZhNGM1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDYtMTEgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrKiB0ZXN0IGNhc2VzIGFyZSBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg3NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMDM1NDU5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhl
IGV4aXN0aW5nLCBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljayBiYXNl
ZCBkb3VibGUgY2xpY2sgaGFuZGxpbmcgd2l0aCBhIFdlYlByb2Nlc3MgYmFzZWQgaW1wbGVtZW50
YXRpb24gdXNpbmcKKyAgICAgICAgdGhlIHBvdGVudGlhbFRhcEF0UG9zaXRpb24vY29tbWl0UG90
ZW50aWFsVGFwIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXkpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29n
bml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXR1cEludGVyYWN0aW9uXSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnNdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNp
bXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyU2hvdWxkQmVnaW46XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXldKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXNdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJsZUNsaWNr
Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZURvdWJsZVRhcEZvckRvdWJs
ZUNsaWNrQXRQb2ludCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpoYW5kbGVQb3RlbnRpYWxEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXApOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQpOiBE
ZWxldGVkLgorCiAyMDE5LTA2LTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMjQ1MDA2KTogU2V0dGluZyBzY3JvbGx2aWV3LnNjcm9s
bEVuYWJsZWQgY2xvYmJlcnMgYW55IHNjcm9sbEVuYWJsZWQgc2V0IGJ5IGEgY2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDU3YTVlMTA2MzA3ODgwOTQ5YjU0ZGNiYzY4NjMxZjAxNWQ5ZmFhYjYuLmQxNGJjMzNiODE2
YjkxODc3NTBmYTdkZmRlNTA2ZjVlNTk3NDc3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05OCw2ICs5OCw4IEBAIHZv
aWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IGRldmljZU9yaWVudGF0aW9uOwogICAgIGVuY29kZXIg
PDwga2V5Ym9hcmRJc0F0dGFjaGVkOwogICAgIGVuY29kZXIgPDwgY2FuU2hvd1doaWxlTG9ja2Vk
OworICAgIGVuY29kZXIgPDwgZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBEZWxheTsKKyAgICBlbmNv
ZGVyIDw8IGRvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzOwogICAgIGVuY29kZXIgPDwgb3Zl
cnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAt
MjkwLDYgKzI5MiwxMCBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5TaG93
V2hpbGVMb2NrZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5kb3VibGVDbGlja0ZvckRvdWJsZVRhcERlbGF5KSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1
bWVudHM+PiBvdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOwogICAgIGRlY29kZXIgPj4gb3ZlcnJp
ZGVWaWV3cG9ydEFyZ3VtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxYzBjMTc3MjM1NmI5Y2IwZjcwMzY2OGQyYmRlYzA5
NTI3YjE0NWJkLi40MGQ3Y2NjN2RhNTQ2MWQ0MzgwMGM2NDVlODY5ODFlZDk1NzgwYzNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0xNTgsNiArMTU4LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24geyAwIH07CiAgICAgYm9vbCBrZXlib2FyZElzQXR0
YWNoZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgY2FuU2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsK
KyAgICBkb3VibGUgZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBEZWxheSB7IDM1MCB9OworICAgIGZs
b2F0IGRvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzIHsgMTAgfTsKICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CmluZGV4IDRkMWE4ZTQwNmJjMDdkYjA5OGYyYTgzNWEyYmEzY2JhZDZhYmZlM2QuLjA1NDdiNTky
NjlhMTU2NTFkMjMxNjE5MjNiNGE4ODE4MWRmMThmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKQEAgLTQxMyw2ICs0MTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChjb25zdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQm
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGRvdWJsZSBkb3VibGVDbGlja0ZvckRvdWJsZVRhcERlbGF5
KCkgPSAwOworICAgIHZpcnR1YWwgZmxvYXQgZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXMo
KSA9IDA7CiAjZW5kaWYKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGYxNWQwZmQwY2M3YmRmYTZh
NzQxYTgxNDA5OGM3NGM2MmY4MTc2N2EuLjAwNGE1MWY4ZGIyMTU1ZDg2YmE1MDk5MzUxMTI3NGQx
Mjg4NjQxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NzE3Myw2ICs3MTczLDggQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6
OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJz
LmtleWJvYXJkSXNBdHRhY2hlZCA9IGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogICAgIHBh
cmFtZXRlcnMub3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyA9IG1fb3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50czsKICAgICBwYXJhbWV0ZXJzLmNhblNob3dXaGlsZUxvY2tlZCA9IG1fY29uZmlndXJh
dGlvbi0+Y2FuU2hvd1doaWxlTG9ja2VkKCk7CisgICAgcGFyYW1ldGVycy5kb3VibGVDbGlja0Zv
ckRvdWJsZVRhcERlbGF5ID0gcGFnZUNsaWVudCgpLmRvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVs
YXkoKTsKKyAgICBwYXJhbWV0ZXJzLmRvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzID0gcGFn
ZUNsaWVudCgpLmRvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzKCk7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
OTg2OWIwMTNmYzYzYjY4NTRhYWFmYjMzNzI4Y2MzNDQ1MzEyYzBhYS4uOGNhOTJkZTc3YzVhYzJk
MjNlMTdjMjUwNzAzMDhhNDk5ODIwMjk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTEyMjUsNyArMTIyNSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHRhcEhpZ2hs
aWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90JiByZXF1
ZXN0SUQpOwogICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXllclRyZWVU
cmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CiAgICAgdm9pZCBkaWRSZWNvZ25pemVMb25n
UHJlc3MoKTsKLSAgICB2b2lkIGhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCB1
aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CiAKICAgICB2
b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJjaEVuZGVkQXRQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDQxM2M5M2IzYWMwNWU2YzVmNjUzN2Q0OWY1
MTI4MjM1ZWY1YzRhMGYuLmIzOGM0YmMzMGE1Mzc4ZDQ3YzMxNmMzZjE4OTIzNzg0YmNmODk5NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CkBAIC0yNDQsNiArMjQ0LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaGFuZGxlQXV0b2NvcnJl
Y3Rpb25Db250ZXh0KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpIGZpbmFsOwogCisg
ICAgZG91YmxlIGRvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXkoKSBmaW5hbDsKKyAgICBmbG9h
dCBkb3VibGVDbGlja0ZvckRvdWJsZVRhcFJhZGl1cygpIGZpbmFsOworCiAgICAgdm9pZCBkaWRG
aW5pc2hQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCkgZmluYWwgeyB9CiAKICNpZiBI
QVZFKFBFTkNJTEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQppbmRleCAyNjdiZDQzYmRkMTAxY2RhOTQ2Zjg0ODhhMTc1MzMzMzQ2Y2Rk
MTEwLi5kZjFmYmFlMDNhYTg5ZTU5MWQyYjMwY2ZjYzM0N2YwZjk4YTQwNGEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC04MzYs
NiArODM2LDE2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZURyYWdDYXJldFJlY3Qo
Y29uc3QgSW50UmVjdCYgcHJldmlvdXNDYXJldFJlY3QsIGNvCiB9CiAjZW5kaWYKIAorZG91Ymxl
IFBhZ2VDbGllbnRJbXBsOjpkb3VibGVDbGlja0ZvckRvdWJsZVRhcERlbGF5KCkKK3sKKyAgICBy
ZXR1cm4gW21fY29udGVudFZpZXcgX2RvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXldOworfQor
CitmbG9hdCBQYWdlQ2xpZW50SW1wbDo6ZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXMoKQor
eworICAgIHJldHVybiBbbV9jb250ZW50VmlldyBfZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRp
dXNdOworfQorCiAjaWYgVVNFKFFVSUNLX0xPT0spCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKaW5kZXggNjY5MGNkMTk4YmRhZjQ1ODI3MWQ0YWJiOThkYTY1NGExODBmMDUw
ZC4uZTFjMGEwZWIyNzI0NTI3MTcyNTJjY2QwNDQ4OTVkZTgwOWViZWFkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aApAQCAtMjEzLDcgKzIxMyw2IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAg
UmV0YWluUHRyPFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9sb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8V0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXpl
cj4gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxVSVRhcEdlc3R1
cmVSZWNvZ25pemVyPiBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcjsKLSAg
ICBSZXRhaW5QdHI8VUlUYXBHZXN0dXJlUmVjb2duaXplcj4gX2RvdWJsZVRhcEdlc3R1cmVSZWNv
Z25pemVyRm9yRG91YmxlQ2xpY2s7CiAgICAgUmV0YWluUHRyPFVJVGFwR2VzdHVyZVJlY29nbml6
ZXI+IF90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8
VUlUYXBHZXN0dXJlUmVjb2duaXplcj4gX3R3b0ZpbmdlclNpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyOwogICAgIFJldGFpblB0cjxVSVRhcEdlc3R1cmVSZWNvZ25pemVyPiBfc3R5bHVzU2luZ2xl
VGFwR2VzdHVyZVJlY29nbml6ZXI7CkBAIC00NTcsNiArNDU2LDggQEAgRk9SX0VBQ0hfUFJJVkFU
RV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9X
RUJfVklFVykKIC0gKHZvaWQpX2Rpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoOwogLSAodm9pZClf
YmVjb21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxl
Y3RpbmdGb3J3YXJkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGRpZEJlY29tZUZp
cnN0UmVzcG9uZGVyKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX3NldERvdWJsZVRhcEdl
c3R1cmVzRW5hYmxlZDooQk9PTCllbmFibGVkOworLSAoZG91YmxlKV9kb3VibGVDbGlja0ZvckRv
dWJsZVRhcERlbGF5OworLSAoZmxvYXQpX2RvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzOwog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIC0gKE5TQXJyYXkgKilfZGF0YURldGVjdGlvblJl
c3VsdHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGIzYTQ5ZWVhYzdmOWYzZGMxMjA4ZWZi
M2QwMWY3OTRlODlkMTQxYzguLmFiMDgwNTU4OWRkMzA3OTViOWIyNmNmNzk4NWVlNmEzNDVkZDMw
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNjkzLDYgKzY5MywxNiBAQCAtICh2b2lkKV9jcmVhdGVB
bmRDb25maWd1cmVMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcgogICAgIFtzZWxmIGFkZEdlc3R1
cmVSZWNvZ25pemVyOl9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiB9CiAKKy0g
KHZvaWQpX2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAg
ICBpZiAoX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0
TlMoW1tVSVRhcEdlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFj
dGlvbjpAc2VsZWN0b3IoX25vbkJsb2NraW5nRG91YmxlVGFwUmVjb2duaXplZDopXSk7CisgICAg
W19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldE51bWJlck9mVGFwc1Jl
cXVpcmVkOjJdOworICAgIFtfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29n
bml6ZXIgc2V0RW5hYmxlZDpOT107Cit9CisKIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogewog
ICAgIC8vIElmIHRoZSBwYWdlIGlzIG5vdCB2YWxpZCB5ZXQgdGhlbiBkZWxheSBpbnRlcmFjdGlv
biBzZXR1cCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBsYXVuY2hlZC9yZWxhdW5jaGVkLgpAQCAtNzM5
LDE3ICs3NDksOSBAQCAtICh2b2lkKXNldHVwSW50ZXJhY3Rpb24KICNlbmRpZgogICAgIFtzZWxm
IGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CiAKLSAgICBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMo
W1tVSVRhcEdlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlv
bjpAc2VsZWN0b3IoX25vbkJsb2NraW5nRG91YmxlVGFwUmVjb2duaXplZDopXSk7Ci0gICAgW19u
b25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldE51bWJlck9mVGFwc1JlcXVp
cmVkOjJdOwotICAgIFtfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6
ZXIgc2V0RW5hYmxlZDpOT107CisgICAgW3NlbGYgX2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXJdOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9ub25C
bG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAotICAgIF9kb3VibGVU
YXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrID0gYWRvcHROUyhbW1VJVGFwR2VzdHVy
ZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihf
ZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJsZUNsaWNrOildKTsKLSAgICBbX2RvdWJsZVRhcEdl
c3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sgc2V0TnVtYmVyT2ZUYXBzUmVxdWlyZWQ6Ml07
Ci0gICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrIHNldERlbGVn
YXRlOnNlbGZdOwotICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0
dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrLmdldCgpXTsKLQogICAgIFtzZWxmIF9jcmVhdGVB
bmRDb25maWd1cmVEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcl07CiAKICAgICBfdHdvRmluZ2Vy
RG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2du
aXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF90d29GaW5n
ZXJEb3VibGVUYXBSZWNvZ25pemVkOildKTsKQEAgLTg5Miw5ICs4OTQsNiBAQCAtICh2b2lkKWNs
ZWFudXBJbnRlcmFjdGlvbgogICAgIFtfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVy
Ol9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAotICAgIFtf
ZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljayBzZXREZWxlZ2F0ZTpuaWxd
OwotICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVj
b2duaXplckZvckRvdWJsZUNsaWNrLmdldCgpXTsKLQogICAgIFtfdHdvRmluZ2VyRG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0
dXJlUmVjb2duaXplcjpfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCld
OwogCkBAIC05NjcsNyArOTY2LDYgQEAgLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNv
Z25pemVycwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9oaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplci5nZXQoKV07Ci0gICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RvdWJsZVRh
cEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2suZ2V0KCldOwogICAgIFtzZWxmIHJlbW92
ZUdlc3R1cmVSZWNvZ25pemVyOl90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5n
ZXQoKV07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3R3b0ZpbmdlclNpbmds
ZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVj
b2duaXplcjpfc3R5bHVzU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwpAQCAtOTg0
LDcgKzk4Miw2IEBAIC0gKHZvaWQpX2FkZERlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKICAgICBb
c2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBH
ZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
X25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwotICAgIFtzZWxm
IGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJs
ZUNsaWNrLmdldCgpXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfdHdvRmluZ2Vy
RG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVS
ZWNvZ25pemVyOl90d29GaW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAg
ICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3N0eWx1c1NpbmdsZVRhcEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKQEAgLTE4MjQsMTUgKzE4MjEsNiBAQCAtIChCT09MKWdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVj
b2duaQogICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVS
ZWNvZ25pemVyLCBfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9u
b25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpKSkKICAgICAgICAgcmV0
dXJuIFlFUzsKIAotICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdl
c3R1cmVSZWNvZ25pemVyLCBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9kb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrLmdldCgpKSkKLSAgICAgICAgcmV0
dXJuIFlFUzsKLQotICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdl
c3R1cmVSZWNvZ25pemVyLCBfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5n
ZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQot
ICAgICAgICByZXR1cm4gWUVTOwotCi0gICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6
ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5n
ZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQot
ICAgICAgICByZXR1cm4gWUVTOwotCiAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6
ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplci5nZXQoKSwgX3ByZXZpZXdTZWNvbmRhcnlHZXN0dXJlUmVjb2duaXplci5nZXQoKSkp
CiAgICAgICAgIHJldHVybiBZRVM7CiAKQEAgLTIwMjksNyArMjAxNyw2IEBAIC0gKEJPT0wpZ2Vz
dHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyCiAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9oaWdobGlnaHRMb25nUHJl
c3NHZXN0dXJlUmVjb2duaXplcgogICAgICAgICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfZG91
YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0g
X25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKLSAgICAgICAgfHwgZ2VzdHVy
ZVJlY29nbml6ZXIgPT0gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sK
ICAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1
cmVSZWNvZ25pemVyKSB7CiAKICAgICAgICAgaWYgKGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2Vk
RWxlbWVudEluZm9ybWF0aW9uKSkgewpAQCAtMjQzNSwxMSArMjQyMiw2IEBAIC0gKHZvaWQpX25v
bkJsb2NraW5nRG91YmxlVGFwUmVjb2duaXplZDooVUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdl
c3R1cmVSZWNvZ25pCiAgICAgX2lzRG91YmxlVGFwUGVuZGluZyA9IFlFUzsKIH0KIAotLSAodm9p
ZClfZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJsZUNsaWNrOihVSVRhcEdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIKLXsKLSAgICBfcGFnZS0+aGFuZGxlRG91YmxlVGFwRm9y
RG91YmxlQ2xpY2tBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KGdlc3R1cmVSZWNvZ25pemVyLmxv
Y2F0aW9uKSwgV2ViS2l0Ojp3ZWJFdmVudE1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXJN
b2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVyKSksIF9sYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCk7Ci19Ci0KIC0gKHZvaWQpX3R3b0ZpbmdlckRvdWJsZVRhcFJlY29n
bml6ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAg
IFtzZWxmIF9yZXNldElzRG91YmxlVGFwUGVuZGluZ107CkBAIC0zODE1LDEwICszNzk3LDcgQEAg
LSAodm9pZClfaGFuZGxlQXV0b2NvcnJlY3Rpb25Db250ZXh0Oihjb25zdCBXZWJLaXQ6OldlYkF1
dG9jb3JyZWN0aW9uQ29udGV4dCYpY28KIAogLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JNYWluRnJhbWUKIHsKLSAgICAvLyBSZXNldCB0aGUgZG91YmxlIHRhcCBnZXN0dXJlIHJl
Y29nbml6ZXIgdG8gcHJldmVudCBhbnkgZG91YmxlIGNsaWNrIHRoYXQgaXMgaW4gdGhlIHByb2Nl
c3Mgb2YgYmVpbmcgcmVjb2duaXplZC4KLSAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
Rm9yRG91YmxlQ2xpY2sgc2V0RW5hYmxlZDpOT107Ci0gICAgW19kb3VibGVUYXBHZXN0dXJlUmVj
b2duaXplckZvckRvdWJsZUNsaWNrIHNldEVuYWJsZWQ6WUVTXTsKLSAgICAvLyBXZSBhbHNvIG5l
ZWQgdG8gZGlzYWJsZSB0aGUgZG91YmxlLXRhcCBnZXN0dXJlIHJlY29nbml6ZXJzIHRoYXQgYXJl
IGVuYWJsZWQgZm9yIGRvdWJsZS10YXAtdG8tem9vbSBhbmQgd2hpY2gKKyAgICAvLyBXZSBuZWVk
IHRvIGRpc2FibGUgdGhlIGRvdWJsZS10YXAgZ2VzdHVyZSByZWNvZ25pemVycyB0aGF0IGFyZSBl
bmFibGVkIGZvciBkb3VibGUtdGFwLXRvLXpvb20gYW5kIHdoaWNoCiAgICAgLy8gYXJlIGVuYWJs
ZWQgd2hlbiBhIHNpbmdsZSB0YXAgaXMgZmlyc3QgcmVjb2duaXplZC4gVGhpcyBhdm9pZHMgdGVz
dHMgcnVubmluZyBpbiBzZXF1ZW5jZSBhbmQgc2ltdWxhdGluZyB0YXBzCiAgICAgLy8gaW4gdGhl
IHNhbWUgbG9jYXRpb24gdG8gdHJpZ2dlciBkb3VibGUtdGFwIHJlY29nbml0aW9uLgogICAgIFtz
ZWxmIF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6Tk9dOwpAQCAtMzg3OCw2ICszODU3LDI4
IEBAIC0gKHZvaWQpX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFibGVkCiAg
ICAgW3NlbGYgX3Jlc2V0SXNEb3VibGVUYXBQZW5kaW5nXTsKIH0KIAorLSAoZG91YmxlKV9kb3Vi
bGVDbGlja0ZvckRvdWJsZVRhcERlbGF5Cit7CisgICAgc3RhdGljIGRvdWJsZSBkb3VibGVDbGlj
a0ZvckRvdWJsZVRhcERlbGF5ID0gMzUwOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgW3NlbGYg
X2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdOworICAgICAgICBk
b3VibGVDbGlja0ZvckRvdWJsZVRhcERlbGF5ID0gW19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1
cmVSZWNvZ25pemVyIG1heGltdW1JbnRlcnZhbEJldHdlZW5TdWNjZXNzaXZlVGFwc107CisgICAg
fSk7CisgICAgcmV0dXJuIGRvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXk7Cit9CisKKy0gKGZs
b2F0KV9kb3VibGVDbGlja0ZvckRvdWJsZVRhcFJhZGl1cworeworICAgIHN0YXRpYyBmbG9hdCBk
b3VibGVDbGlja0ZvckRvdWJsZVRhcFJhZGl1cyA9IDQ1OworICAgIHN0YXRpYyBkaXNwYXRjaF9v
bmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAg
ICAgW3NlbGYgX2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdOwor
ICAgICAgICBkb3VibGVDbGlja0ZvckRvdWJsZVRhcFJhZGl1cyA9IFtfbm9uQmxvY2tpbmdEb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvd2FibGVNb3ZlbWVudF07CisgICAgfSk7CisgICAg
cmV0dXJuIGRvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzOworfQorCiAvLyBNQVJLOiBVSVdl
YkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSBwcm90b2NvbCBhbmQgYWNjZXNzb3J5IG1ldGhvZHMKIAog
LSAodm9pZClhY2Nlc3NvcnlDbGVhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KaW5kZXggM2IxODAwZjhlMzJkNGUyNzc3NWU4NTY4YzlkNWI4OGZj
MDBkZTE1OC4uYjVlZTZmMzE1Mzc5MjIwM2Q2ODM3ZjJmMTQ0MTk0M2UzZGE2MDNmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC04NDUs
MTEgKzg0NSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNvZ25pemVMb25nUHJlc3MoKQog
ICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNvZ25pemVMb25nUHJl
c3MoKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlRG91YmxlVGFw
Rm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0
aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCBsYXllclRyZWVU
cmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkKLXsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6SGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KHBvaW50
LCBtb2RpZmllcnMsIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KSwgbV9w
YWdlSUQpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVk
VG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBw
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVk
VG9Qb3NpdGlvbihwb3NpdGlvbiksIG1fcGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMmVkN2U5MzE4MjJmY2I2YzA0ZjJjOGUyZWRj
OTk1NjNmOGFlNTVmOC4uODMyNDhkODgyNDJlYWI3YjA0M2JjZWE3OTliZmZlNDA3ZTQyNzBlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQx
Niw2ICs0MTYsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgLCBtX2RldmljZU9yaWVu
dGF0aW9uKHBhcmFtZXRlcnMuZGV2aWNlT3JpZW50YXRpb24pCiAgICAgLCBtX2tleWJvYXJkSXNB
dHRhY2hlZChwYXJhbWV0ZXJzLmtleWJvYXJkSXNBdHRhY2hlZCkKICAgICAsIG1fY2FuU2hvd1do
aWxlTG9ja2VkKHBhcmFtZXRlcnMuY2FuU2hvd1doaWxlTG9ja2VkKQorICAgICwgbV9kb3VibGVD
bGlja0ZvckRvdWJsZVRhcERlbGF5KHBhcmFtZXRlcnMuZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBE
ZWxheSkKKyAgICAsIG1fZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBSYWRpdXMocGFyYW1ldGVycy5k
b3VibGVDbGlja0ZvckRvdWJsZVRhcFJhZGl1cykKICNlbmRpZgogICAgICwgbV9sYXllclZvbGF0
aWxpdHlUaW1lcigqdGhpcywgJldlYlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpCiAg
ICAgLCBtX2FjdGl2aXR5U3RhdGUocGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDE4YTM1YWQyN2M5NjY0ZDdh
N2E0YmE1Y2RmY2Q4NWNlZDMyYmUxZjcuLjI2NjkxYmNmZDgwMWU2NDM2MmFiNWZhNmM0ZTk2OTcy
ZWU4NTQ5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTYzNCw3ICs2MzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJ
bkZyYW1lKFdlYkZyYW1lJik7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgZGlk
UmVjb2duaXplTG9uZ1ByZXNzKCk7Ci0gICAgdm9pZCBoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVD
bGlja0F0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7
CisgICAgYm9vbCBoYW5kbGVQb3RlbnRpYWxEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQo
T3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGFzdExheWVy
VHJlZVRyYW5zYWN0aW9uSWQpOwogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRU
b1Bvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rv
ck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpA
QCAtMTg1Nyw2ICsxODU3LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fa2V5Ym9hcmRJc0F0dGFj
aGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FuU2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faW5EeW5hbWljU2l6ZVVwZGF0ZSB7IGZhbHNlIH07CisgICAgZG91YmxlIG1f
ZG91YmxlQ2xpY2tGb3JEb3VibGVUYXBEZWxheSB7IDM1MCB9OworICAgIGZsb2F0IG1fZG91Ymxl
Q2xpY2tGb3JEb3VibGVUYXBSYWRpdXMgeyA0NSB9OwogICAgIEhhc2hNYXA8c3RkOjpwYWlyPFdl
YkNvcmU6OkludFNpemUsIGRvdWJsZT4sIFdlYkNvcmU6OkludFBvaW50PiBtX2R5bmFtaWNTaXpl
VXBkYXRlSGlzdG9yeTsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9wZW5kaW5nU3ludGhl
dGljQ2xpY2tOb2RlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9wZW5kaW5nU3ludGhldGlj
Q2xpY2tMb2NhdGlvbjsKQEAgLTE4NjcsNiArMTg2OSw4IEBAIHByaXZhdGU6CiAgICAgT3B0aW9u
YWw8RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEPiBtX3BlbmRpbmdEeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQ7CiAgICAgZG91YmxlIG1fbGFzdFRyYW5zYWN0aW9uUGFnZVNjYWxlRmFjdG9y
IHsgMCB9OwogICAgIHVpbnQ2NF90IG1fbGFzdFRyYW5zYWN0aW9uSURXaXRoU2NhbGVDaGFuZ2Ug
eyAwIH07CisgICAgTW9ub3RvbmljVGltZSBtX2xhc3RDb21taXR0ZWRUYXBUaW1lc3RhbXA7Cisg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludCBtX2xhc3RDb21taXR0ZWRUYXBMb2NhdGlvbjsKIAogICAg
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
Jik+IG1fcGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblJlcGx5OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCBiMDZhYjBmNmVlYzFjNzk0MWNjOWRjMTNjODFhZTFlNzAzZDRlOGU3Li42
ZjlmOTcyNDNiYTRiNTdiZWRjM2E0ODBmMGZkMTRhMjgwNDljYzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU3
LDcgKzU3LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ2Fu
Y2VsUG90ZW50aWFsVGFwKCkKICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJl
cXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25n
UHJlc3MoKQotICAgIEhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3Jl
OjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgIEluc3Bl
Y3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkK
ICAgICBJbnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9p
bnQgcG9pbnQpCiAgICAgQmx1ckZvY3VzZWRFbGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzhiZjhmZTVmNzdh
OGMxNmQ2NjEwYjBhMTU5NmJiNzFlYWFmN2E1MC4uMGY0MjM1Y2JjNTllYmQ3ZmMyODgyYjRkMmUw
OTE1MGUxNDZlNGZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTgwMCwxNiArODAwLDI0IEBAIHZvaWQgV2ViUGFnZTo6
aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2Rp
Zmllcj4gbW9kCiAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1Rv
Q2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFu
ZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwg
T3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCBsYXN0TGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZCkKK2Jvb2wgV2ViUGFnZTo6aGFuZGxlUG90ZW50aWFsRG91Ymxl
VGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1v
ZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiB7CisgICAgYXV0
byBtaWxsaXNlY29uZHNTaW5jZUxhc3RUYXAgPSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xh
c3RDb21taXR0ZWRUYXBUaW1lc3RhbXApLm1pbGxpc2Vjb25kcygpOworICAgIGlmIChtaWxsaXNl
Y29uZHNTaW5jZUxhc3RUYXAgPiBtX2RvdWJsZUNsaWNrRm9yRG91YmxlVGFwRGVsYXkgKiAxMDAw
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGRpc3RhbmNlQmV0d2VlblRhcHMg
PSBzcXJ0Zihwb3cobV9wb3RlbnRpYWxUYXBMb2NhdGlvbi54KCkgLSBtX2xhc3RDb21taXR0ZWRU
YXBMb2NhdGlvbi54KCksIDIpICsgcG93KG1fcG90ZW50aWFsVGFwTG9jYXRpb24ueSgpIC0gbV9s
YXN0Q29tbWl0dGVkVGFwTG9jYXRpb24ueSgpLCAyKSk7CisgICAgaWYgKGRpc3RhbmNlQmV0d2Vl
blRhcHMgPiBtX2RvdWJsZUNsaWNrRm9yRG91YmxlVGFwUmFkaXVzKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7Ci0gICAgYXV0byogbm9kZVJl
c3BvbmRpbmdUb0RvdWJsZUNsaWNrID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGlu
Z1RvRG91YmxlQ2xpY2tFdmVudChwb2ludCwgYWRqdXN0ZWRQb2ludCk7CisgICAgYXV0byogbm9k
ZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9u
ZGluZ1RvRG91YmxlQ2xpY2tFdmVudChtX3BvdGVudGlhbFRhcExvY2F0aW9uLCBhZGp1c3RlZFBv
aW50KTsKICAgICBpZiAoIW5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGljaykKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvKiBmcmFtZVJlc3BvbmRpbmdU
b0RvdWJsZUNsaWNrID0gbm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrLT5kb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrIHx8IGxhc3RMYXll
clRyZWVUcmFuc2FjdGlvbklkIDwgV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lUmVzcG9u
ZGluZ1RvRG91YmxlQ2xpY2spLT5maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENv
bW1pdExvYWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBib29sIHNoaWZ0S2V5ID0gbW9kaWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6
U2hpZnRLZXkpOwogICAgIGJvb2wgY3RybEtleSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVu
dDo6TW9kaWZpZXI6OkNvbnRyb2xLZXkpOwpAQCAtODE4LDggKzgyNiw5IEBAIHZvaWQgV2ViUGFn
ZTo6aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IEludFBvaW50JiBw
b2ludCwgT3B0aW9uCiAgICAgYXV0byByb3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQ
b2ludChhZGp1c3RlZFBvaW50KTsKICAgICBub2RlUmVzcG9uZGluZ1RvRG91YmxlQ2xpY2stPmRv
Y3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMiwgc2hpZnRLZXks
IGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCAwLCBXZWJDb3JlOjpO
b1RhcCkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBub2RlUmVzcG9uZGluZ1RvRG91YmxlQ2xpY2stPmRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1N
b3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMiwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCAwLCBXZWJDb3JlOjpOb1RhcCkp
OworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtMTA0MCw5
ICsxMDQ5LDE3IEBAIHZvaWQgV2ViUGFnZTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pCiAKIHZvaWQgV2ViUGFnZTo6Y29t
bWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywg
dWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBw
b2ludGVySWQpCiB7Ci0gICAgaWYgKCFtX3BvdGVudGlhbFRhcE5vZGUgfHwgKCFtX3BvdGVudGlh
bFRhcE5vZGUtPnJlbmRlcmVyKCkgJiYgIWlzPEhUTUxBcmVhRWxlbWVudD4obV9wb3RlbnRpYWxU
YXBOb2RlLmdldCgpKSkpIHsKKyAgICBhdXRvIHVwZGF0ZUxhc3RDb21taXR0ZWRMb2NhdGlvbkFu
ZFRpbWVzdGFtcCA9IFsmXSB7CisgICAgICAgIG1fbGFzdENvbW1pdHRlZFRhcFRpbWVzdGFtcCA9
IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICBtX2xhc3RDb21taXR0ZWRUYXBMb2NhdGlv
biA9IG1fcG90ZW50aWFsVGFwTG9jYXRpb247CisgICAgfTsKKworICAgIGF1dG8gaW52YWxpZFRh
cmdldEZvclNpbmdsZUNsaWNrID0gIW1fcG90ZW50aWFsVGFwTm9kZSB8fCAoIW1fcG90ZW50aWFs
VGFwTm9kZS0+cmVuZGVyZXIoKSAmJiAhaXM8SFRNTEFyZWFFbGVtZW50PihtX3BvdGVudGlhbFRh
cE5vZGUuZ2V0KCkpKTsKKyAgICBpZiAoaW52YWxpZFRhcmdldEZvclNpbmdsZUNsaWNrKSB7Cisg
ICAgICAgIC8vIFdoZW4gdGhlIG5vZGUgaGFzIG5vIGNsaWNrIGV2ZW50bGlzdGVuZXIsIGJ1dCBp
dCBtYXkgaGF2ZSBhIGRibGNsaWNrIG9uZS4KKyAgICAgICAgaGFuZGxlUG90ZW50aWFsRG91Ymxl
VGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KG1vZGlmaWVycywgbGFzdExheWVyVHJlZVRyYW5zYWN0
aW9uSWQpOwogICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gdXBkYXRlTGFzdENvbW1pdHRlZExvY2F0aW9uQW5kVGltZXN0
YW1wKCk7CiAgICAgfQogCiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwpAQCAtMTA1MSw3
ICsxMDY4LDcgQEAgdm9pZCBXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdl
YkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjQKIAogICAgIGlmICghZnJhbWVSZXNw
b25kaW5nVG9DbGljayB8fCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCA8IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZVJlc3BvbmRpbmdUb0NsaWNrKS0+Zmlyc3RMYXllclRyZWVUcmFu
c2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkKCkpIHsKICAgICAgICAgY29tbWl0UG90ZW50aWFs
VGFwRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHVwZGF0ZUxhc3RD
b21taXR0ZWRMb2NhdGlvbkFuZFRpbWVzdGFtcCgpOwogICAgIH0KIAogICAgIGlmIChtX3BvdGVu
dGlhbFRhcE5vZGUgPT0gbm9kZVJlc3BvbmRpbmdUb0NsaWNrKSB7CkBAIC0xMDYyLDEzICsxMDc5
LDE5IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0CiAgICAgICAgICAgICBjb21taXRQb3RlbnRp
YWxUYXBGYWlsZWQoKTsKICAgICAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIGhhbmRs
ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1v
ZGlmaWVycywgcG9pbnRlcklkKTsKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGhhbmRsZVBv
dGVudGlhbERvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChtb2RpZmllcnMsIGxhc3RMYXll
clRyZWVUcmFuc2FjdGlvbklkKSkKKyAgICAgICAgICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBG
YWlsZWQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBoYW5kbGVTeW50aGV0
aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMs
IHBvaW50ZXJJZCk7CisgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgY29tbWl0UG90ZW50
aWFsVGFwRmFpbGVkKCk7CiAKICAgICBtX3BvdGVudGlhbFRhcE5vZGUgPSBudWxscHRyOwogICAg
IG1fcG90ZW50aWFsVGFwTG9jYXRpb24gPSBGbG9hdFBvaW50KCk7CiAgICAgbV9wb3RlbnRpYWxU
YXBTZWN1cml0eU9yaWdpbiA9IG51bGxwdHI7CisgICAgcmV0dXJuIHVwZGF0ZUxhc3RDb21taXR0
ZWRMb2NhdGlvbkFuZFRpbWVzdGFtcCgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVu
dGlhbFRhcEZhaWxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzRlOGI5ZTdlOTk0ZjlkMzk0YjdiNTI4NTNkMDc0YzA4
NzMxM2U4YS4uMTFjZDM1N2RlNmZjYWE0Nzk1MzE0NTIzMDVkNTUxOWVkYjcxYzkzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTA2LTExICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10
YXAtZm9yLWRvdWJsZS1jbGljayogdGVzdCBjYXNlcyBhcmUgZmFpbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzY0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81MTAzNTQ1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1kb3Vi
bGUtY2xpY2sxLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10
YXAtZm9yLWRvdWJsZS1jbGljazIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMy5odG1sOgorCiAyMDE5LTA2LTA4ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICByZXNpemUtb2JzZXJ2
ZXIvZWxlbWVudC1sZWFrLmh0bWwgZmFpbHMgb24gV2luZG93cyBwbGF0Zm9ybQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJs
ZS1jbGljazEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci1kb3VibGUtY2xpY2sxLmh0bWwKaW5kZXggNTUxMzE3NTgzM2I0ODA5MGY5MDQ5Mjg4
M2I5NGY2MWE0YTVmMzI3Zi4uMTY2NTE4ZWU2MGQxMDJhZjQ1OTU0MjZiYmUxYjRkOGZhZmEzYmZm
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10
YXAtZm9yLWRvdWJsZS1jbGljazEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMS5odG1sCkBAIC0zLDcgKzMsNyBA
QAogPGhlYWQ+CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoIGluaXRpYWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KIDx0aXRsZT5UaGlzIHRlc3Rz
IHRoYXQgd2UgZmlyZSBkYmxjbGljayBldmVudCBvbiBkb3VibGUgdGFwPC90aXRsZT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgogPHN0eWxlPgogI2RvdWJsZVRhcHRoaXMgewogICAgIHdpZHRoOiA0MDBweDsKQEAgLTE5
LDcgKzE5LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAotICAgIGF3YWl0IGRv
dWJsZVRhcEF0UG9pbnQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVUYXB0aGlzLm9m
ZnNldFRvcCk7CisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5TcGVlZERvdWJsZVRhcEF0KGRvdWJs
ZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5vZmZzZXRUb3ApOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljazIuaHRtbAppbmRleCBi
MWM3NTkyMmQxNWIwYzIxNjZlZjgxZjc2ZjRjNDRlZWJmYzdkOGIwLi5jZjIwMTRkNjllNGU5ZjIw
NGYzNWZjYTgyM2M5YjUxOGVlMmI0ZmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1kb3VibGUtY2xp
Y2syLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGggaW5pdGlhbC1zY2FsZT0xIHVzZXItc2NhbGFibGU9
bm8iPgogPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCB3ZSBmaXJlIGRibGNsaWNrIGV2ZW50IG9uIGRv
dWJsZSB0YXAgd2hlbiB0aGUgY29udGVudCBpcyByZXBsYWNlZDwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
IDxzdHlsZT4KICNkb3VibGVUYXBUaGlzIHsKICAgICB3aWR0aDogNDAwcHg7CkBAIC0yOSw3ICsy
OSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHggPSByZWN0LmxlZnQgKyBy
ZWN0LndpZHRoIC8gMjsKICAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOwog
Ci0gICAgYXdhaXQgZG91YmxlVGFwQXRQb2ludCh4LCB5KTsKKyAgICBhd2FpdCBVSUhlbHBlci5o
dW1hblNwZWVkRG91YmxlVGFwQXQoeCwgeSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1k
b3VibGUtY2xpY2szLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91
YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMy5odG1sCmluZGV4IDRiZWI4YTJjNjEyN2ZiZTkxOTFj
YTY4NjhmNzQ2Y2VlZDhjMTE5MzkuLjE5YThhMjk1YjhjY2IxNWUyNDQ4MTdmNjM0MWRjODk2OTM0
MDlkNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3Vi
bGUtdGFwLWZvci1kb3VibGUtY2xpY2szLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljazMuaHRtbApAQCAtMyw3ICsz
LDcgQEAKIDxoZWFkPgogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCBpbml0aWFsLXNjYWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+CiA8dGl0bGU+VGhpcyB0
ZXN0cyB0aGF0IHdlIGRvIG5vdCBmaXJlIGRibGNsaWNrIGV2ZW50IG9uIGRvdWJsZSB0YXAgb24g
bm9kZSB3aXRoIHRvdWNoLWFjdGlvbjogbm9uZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KIDxzdHlsZT4K
ICNkb3VibGVUYXB0aGlzIHsKICAgICB3aWR0aDogNDAwcHg7CkBAIC0xMiw4ICsxMiw4IEBACiAg
ICAgdG91Y2gtYWN0aW9uOiBub25lOwogfQogI2ZpbmlzaFRlc3QgewotICAgIHdpZHRoOiAxMHB4
OwotICAgIGhlaWdodDogMTBweDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMDBw
eDsKICAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKIH0KIDwvc3R5bGU+CkBAIC0yNSw5ICsy
NSw5IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKLSAgICBhd2FpdCBkb3VibGVU
YXBBdFBvaW50KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5vZmZzZXRU
b3ApOworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3BlZWREb3VibGVUYXBBdChkb3VibGVUYXB0
aGlzLm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zmc2V0VG9wKTsKIAotICAgIGF3YWl0IGRv
dWJsZVRhcEF0UG9pbnQoZmluaXNoVGVzdC5vZmZzZXRMZWZ0LCBmaW5pc2hUZXN0Lm9mZnNldFRv
cCk7CisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5TcGVlZERvdWJsZVRhcEF0KGZpbmlzaFRlc3Qu
b2Zmc2V0TGVmdCArIDEwMCwgZmluaXNoVGVzdC5vZmZzZXRUb3AgKyAxMDApOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371881</attachid>
            <date>2019-06-11 14:53:15 -0700</date>
            <delta_ts>2019-06-11 21:13:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198764-20190611145314.patch</filename>
            <type>text/plain</type>
            <size>32899</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyODQ4ZWU0ZDZkMTdkMmM0
YTBmMTE3ZWY2MWU1ZDk5MTcyOTEwNTIuLjk1MmM5ZjgzOTgwMGRlMWYwZGRjNGQ0YTZhMzJjNTA3
ZmJmYmU2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDYtMTEgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrKiB0ZXN0IGNhc2VzIGFyZSBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg3NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMDM1NDU5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBl
eGlzdGluZywgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sgYmFzZWQg
ZG91YmxlIGNsaWNrIGhhbmRsaW5nIHdpdGggYSBXZWJQcm9jZXNzIGJhc2VkIGltcGxlbWVudGF0
aW9uIHVzaW5nCisgICAgICAgIHRoZSBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uL2NvbW1pdFBvdGVu
dGlhbFRhcCBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpkb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5KToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmRvdWJsZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9lbnN1cmVOb25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0dXBJbnRlcmFjdGlvbl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFudXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2FkZERlZmF1bHRHZXN0dXJlUmVjb2duaXplcnNdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZWNvZ25pemVTaW11
bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZV0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9kb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RvdWJsZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzXSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX2RvdWJsZVRhcFJlY29nbml6ZWRGb3JEb3VibGVDbGljazpd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVD
bGlja0F0UG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFuZGxlUG90ZW50aWFsRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KTogRGVs
ZXRlZC4KKwogMjAxOS0wNi0wNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjI0NTAwNik6IFNldHRpbmcgc2Nyb2xsdmlldy5zY3JvbGxF
bmFibGVkIGNsb2JiZXJzIGFueSBzY3JvbGxFbmFibGVkIHNldCBieSBhIGNsaWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCAzZTU3ZDRlMzBhZDhhODll
NDc0NTEwNmYxMzFhMjFmZTUzM2UwOTEyLi42YzEzNzJmNTkyMzNhOTkyOTc3NGNhZDVjZGMzNTBk
MTIzZTdhMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApA
QCAtMzc0LDYgKzM3NCw3IEBAIHR5cGVkZWYgZW51bSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIENHUG9pbnQgbG9jYXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9h
dCBhbGxvd2FibGVNb3ZlbWVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQ
b2ludCBjZW50cm9pZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDRlRpbWVJbnRlcnZhbCBtYXhp
bXVtSW50ZXJ2YWxCZXR3ZWVuU3VjY2Vzc2l2ZVRhcHM7CiBAZW5kCiAKIEBjbGFzcyBXZWJFdmVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggNTdhNWUxMDYzMDc4ODA5NDliNTRkY2JjNjg2MzFmMDE1ZDlmYWFiNi4uMWI5
MGQ3Y2MzODg2ZTVkN2YyZWE1MDk0ZGU2ZWRhNWFjNWIyNTRkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk4LDYgKzk4
LDggQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZGV2aWNlT3JpZW50YXRpb247CiAgICAg
ZW5jb2RlciA8PCBrZXlib2FyZElzQXR0YWNoZWQ7CiAgICAgZW5jb2RlciA8PCBjYW5TaG93V2hp
bGVMb2NrZWQ7CisgICAgZW5jb2RlciA8PCBkb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5Owor
ICAgIGVuY29kZXIgPDwgZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tSYWRpdXM7CiAgICAgZW5jb2Rl
ciA8PCBvdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0yOTAsNiArMjkyLDEwIEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmNhblNob3dXaGlsZUxvY2tlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRvdWJsZVRhcEZvckRvdWJsZUNsaWNrRGVs
YXkpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5kb3VibGVUYXBGb3JEb3VibGVDbGlja1JhZGl1cykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50cz4+IG92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAgICAgZGVjb2RlciA+
PiBvdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDFjMGMxNzcyMzU2YjljYjBmNzAzNjY4
ZDJiZGVjMDk1MjdiMTQ1YmQuLmY0YjE3ZTVhNmJlYmI0MGVhNjMyODczYjlmYjU5Mzc3MmU2MDdm
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKQEAgLTE1OCw2ICsxNTgsOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyB7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsKICAgICBib29sIGtleWJv
YXJkSXNBdHRhY2hlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBjYW5TaG93V2hpbGVMb2NrZWQgeyBm
YWxzZSB9OworICAgIFNlY29uZHMgZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tEZWxheSB7IDM1MF9t
cyB9OworICAgIGZsb2F0IGRvdWJsZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzIHsgNDUgfTsKICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gb3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50czsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IDRkMWE4ZTQwNmJjMDdkYjA5OGYyYTgzNWEyYmEzY2JhZDZhYmZl
M2QuLjFkMDc4MDFhZjM0ODRlZDdhMjUzNjE4MTIxZjJjY2MzMmEwZDNiZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQxMyw2ICs0MTMsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChjb25zdCBXZWJBdXRvY29ycmVj
dGlvbkNvbnRleHQmKSA9IDA7CisKKyAgICB2aXJ0dWFsIFNlY29uZHMgZG91YmxlVGFwRm9yRG91
YmxlQ2xpY2tEZWxheSgpID0gMDsKKyAgICB2aXJ0dWFsIGZsb2F0IGRvdWJsZVRhcEZvckRvdWJs
ZUNsaWNrUmFkaXVzKCkgPSAwOwogI2VuZGlmCiAKICAgICAvLyBBdXhpbGlhcnkgQ2xpZW50IENy
ZWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmMTVk
MGZkMGNjN2JkZmE2YTc0MWE4MTQwOThjNzRjNjJmODE3NjdhLi4zMDNlNzRmYjczYWY4YWJmYWZk
YTBhNGIzYjA3MjJhYjNjNzcxMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTcxNzMsNiArNzE3Myw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMg
V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAg
ICAgcGFyYW1ldGVycy5rZXlib2FyZElzQXR0YWNoZWQgPSBpc0luSGFyZHdhcmVLZXlib2FyZE1v
ZGUoKTsKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMgPSBtX292ZXJy
aWRlVmlld3BvcnRBcmd1bWVudHM7CiAgICAgcGFyYW1ldGVycy5jYW5TaG93V2hpbGVMb2NrZWQg
PSBtX2NvbmZpZ3VyYXRpb24tPmNhblNob3dXaGlsZUxvY2tlZCgpOworICAgIHBhcmFtZXRlcnMu
ZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tEZWxheSA9IHBhZ2VDbGllbnQoKS5kb3VibGVUYXBGb3JE
b3VibGVDbGlja0RlbGF5KCk7CisgICAgcGFyYW1ldGVycy5kb3VibGVUYXBGb3JEb3VibGVDbGlj
a1JhZGl1cyA9IHBhZ2VDbGllbnQoKS5kb3VibGVUYXBGb3JEb3VibGVDbGlja1JhZGl1cygpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDk4NjliMDEzZmM2M2I2ODU0YWFhZmIzMzcyOGNjMzQ0NTMxMmMwYWEuLjhj
YTkyZGU3N2M1YWMyZDIzZTE3YzI1MDcwMzA4YTQ5OTgyMDI5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjI1LDcgKzEyMjUsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1
aW50NjRfdCYgcmVxdWVzdElEKTsKICAgICB2b2lkIGhhbmRsZVRhcChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0
X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOwogICAgIHZvaWQgZGlk
UmVjb2duaXplTG9uZ1ByZXNzKCk7Ci0gICAgdm9pZCBoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVD
bGlja0F0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViRXZlbnQ6
Ok1vZGlmaWVyPiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3Rh
cnQpOwogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRl
ZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA0MTNjOTNiM2FjMDVl
NmM1ZjY1MzdkNDlmNTEyODIzNWVmNWM0YTBmLi4zMTQxM2ZiYjZiM2Y2YmFkYTU3NzVlZDIwOTQx
NzNiMGFlOTdkMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaApAQCAtMjQ0LDYgKzI0NCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGhh
bmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChjb25zdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQm
KSBmaW5hbDsKIAorICAgIFNlY29uZHMgZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tEZWxheSgpIGZp
bmFsOworICAgIGZsb2F0IGRvdWJsZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzKCkgZmluYWw7CisK
ICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHMoKSBmaW5h
bCB7IH0KIAogI2lmIEhBVkUoUEVOQ0lMS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDI2N2JkNDNiZGQxMDFjZGE5NDZmODQ4
OGExNzUzMzMzNDZjZGQxMTAuLjY1MTYxODI1N2M2ZjNiOWNmYjJhZjRhZWVhN2Y0N2VhZGVhZmUz
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTgzNiw2ICs4MzYsMTYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdl
RHJhZ0NhcmV0UmVjdChjb25zdCBJbnRSZWN0JiBwcmV2aW91c0NhcmV0UmVjdCwgY28KIH0KICNl
bmRpZgogCitTZWNvbmRzIFBhZ2VDbGllbnRJbXBsOjpkb3VibGVUYXBGb3JEb3VibGVDbGlja0Rl
bGF5KCkKK3sKKyAgICByZXR1cm4gU2Vjb25kcyB7IFttX2NvbnRlbnRWaWV3IF9kb3VibGVUYXBG
b3JEb3VibGVDbGlja0RlbGF5XSB9OworfQorCitmbG9hdCBQYWdlQ2xpZW50SW1wbDo6ZG91Ymxl
VGFwRm9yRG91YmxlQ2xpY2tSYWRpdXMoKQoreworICAgIHJldHVybiBbbV9jb250ZW50VmlldyBf
ZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tSYWRpdXNdOworfQorCiAjaWYgVVNFKFFVSUNLX0xPT0sp
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVu
dChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5n
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNjY5MGNkMTk4YmRh
ZjQ1ODI3MWQ0YWJiOThkYTY1NGExODBmMDUwZC4uMjcxOGE1NDAwY2VkMWU5ZGU2YjU2NjgyNmRl
Y2Y1MmZmNmNiYTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMjEzLDcgKzIxMyw2IEBAIHN0cnVjdCBX
S0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWluUHRyPFVJTG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXI+IF9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8V0tT
eW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplcj4gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
OwogICAgIFJldGFpblB0cjxVSVRhcEdlc3R1cmVSZWNvZ25pemVyPiBfbm9uQmxvY2tpbmdEb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplcjsKLSAgICBSZXRhaW5QdHI8VUlUYXBHZXN0dXJlUmVjb2du
aXplcj4gX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2s7CiAgICAgUmV0
YWluUHRyPFVJVGFwR2VzdHVyZVJlY29nbml6ZXI+IF90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJl
UmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8VUlUYXBHZXN0dXJlUmVjb2duaXplcj4gX3R3b0Zp
bmdlclNpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxVSVRhcEdlc3R1
cmVSZWNvZ25pemVyPiBfc3R5bHVzU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CkBAIC00NTcs
NiArNDU2LDggQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJF
X1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2Rpc2FibGVJbnNw
ZWN0b3JOb2RlU2VhcmNoOwogLSAodm9pZClfYmVjb21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0
aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxlY3RpbmdGb3J3YXJkIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGRpZEJlY29tZUZpcnN0UmVzcG9uZGVyKSljb21wbGV0aW9uSGFuZGxl
cjsKIC0gKHZvaWQpX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFibGVkOwor
LSAoZG91YmxlKV9kb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5OworLSAoZmxvYXQpX2RvdWJs
ZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIC0g
KE5TQXJyYXkgKilfZGF0YURldGVjdGlvblJlc3VsdHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmlu
ZGV4IGIzYTQ5ZWVhYzdmOWYzZGMxMjA4ZWZiM2QwMWY3OTRlODlkMTQxYzguLmYzY2ZmMDU4N2Ni
MDA3MGI4YTAyYmQ5ZmRmYzVkZTU4YTZhZWVkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNjkzLDYg
KzY5MywxNiBAQCAtICh2b2lkKV9jcmVhdGVBbmRDb25maWd1cmVMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplcgogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9sb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplci5nZXQoKV07CiB9CiAKKy0gKHZvaWQpX2Vuc3VyZU5vbkJsb2NraW5nRG91Ymxl
VGFwR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAoX25vbkJsb2NraW5nRG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBfbm9uQmxvY2tpbmdEb3VibGVU
YXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSVRhcEdlc3R1cmVSZWNvZ25pemVyIGFs
bG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX25vbkJsb2NraW5nRG91
YmxlVGFwUmVjb2duaXplZDopXSk7CisgICAgW19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyIHNldE51bWJlck9mVGFwc1JlcXVpcmVkOjJdOworICAgIFtfbm9uQmxvY2tpbmdE
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbX25vbkJs
b2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107Cit9CisKIC0g
KHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIG5vdCB2YWxp
ZCB5ZXQgdGhlbiBkZWxheSBpbnRlcmFjdGlvbiBzZXR1cCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBs
YXVuY2hlZC9yZWxhdW5jaGVkLgpAQCAtNzM5LDE3ICs3NDksOSBAQCAtICh2b2lkKXNldHVwSW50
ZXJhY3Rpb24KICNlbmRpZgogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVU
YXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAKLSAgICBfbm9uQmxvY2tpbmdEb3VibGVUYXBH
ZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSVRhcEdlc3R1cmVSZWNvZ25pemVyIGFsbG9j
XSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX25vbkJsb2NraW5nRG91Ymxl
VGFwUmVjb2duaXplZDopXSk7Ci0gICAgW19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNv
Z25pemVyIHNldE51bWJlck9mVGFwc1JlcXVpcmVkOjJdOwotICAgIFtfbm9uQmxvY2tpbmdEb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX25vbkJsb2Nr
aW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgW3NlbGYg
X2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdOwogICAgIFtzZWxm
IGFkZEdlc3R1cmVSZWNvZ25pemVyOl9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKIAotICAgIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNs
aWNrID0gYWRvcHROUyhbW1VJVGFwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFy
Z2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJsZUNs
aWNrOildKTsKLSAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sg
c2V0TnVtYmVyT2ZUYXBzUmVxdWlyZWQ6Ml07Ci0gICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplckZvckRvdWJsZUNsaWNrIHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtzZWxmIGFkZEdlc3R1
cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrLmdl
dCgpXTsKLQogICAgIFtzZWxmIF9jcmVhdGVBbmRDb25maWd1cmVEb3VibGVUYXBHZXN0dXJlUmVj
b2duaXplcl07CiAKICAgICBfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBh
ZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2Vs
ZiBhY3Rpb246QHNlbGVjdG9yKF90d29GaW5nZXJEb3VibGVUYXBSZWNvZ25pemVkOildKTsKQEAg
LTg5Miw5ICs4OTQsNiBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlvbgogICAgIFtfbm9uQmxv
Y2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtz
ZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyLmdldCgpXTsKIAotICAgIFtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJGb3JE
b3VibGVDbGljayBzZXREZWxlZ2F0ZTpuaWxdOwotICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNv
Z25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrLmdldCgpXTsK
LQogICAgIFtfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6
bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdHdvRmluZ2VyRG91Ymxl
VGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCkBAIC05NjcsNyArOTY2LDYgQEAgLSAodm9p
ZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogICAgIFtzZWxmIHJlbW92ZUdlc3R1
cmVSZWNvZ25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RvdWJsZVRhcEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfbm9uQmxv
Y2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07Ci0gICAgW3NlbGYgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xp
Y2suZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90d29GaW5nZXJE
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVy
ZVJlY29nbml6ZXI6X3R3b0ZpbmdlclNpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsK
ICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc3R5bHVzU2luZ2xlVGFwR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwpAQCAtOTg0LDcgKzk4Miw2IEBAIC0gKHZvaWQpX2FkZERlZmF1
bHRHZXN0dXJlUmVjb2duaXplcnMKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfaGln
aGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdl
c3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAg
W3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCldOwotICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVU
YXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrLmdldCgpXTsKICAgICBbc2VsZiBhZGRH
ZXN0dXJlUmVjb2duaXplcjpfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0
KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90d29GaW5nZXJTaW5nbGVUYXBH
ZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
X3N0eWx1c1NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE4MjQsMTUgKzE4
MjEsNiBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjb2duaQogICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1
cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfaGlnaGxpZ2h0TG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpKSkKICAgICAgICAgcmV0dXJuIFlFUzsKIAotICAgIGlmIChpc1NhbWVQYWly
KGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfc2luZ2xlVGFwR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCksIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJs
ZUNsaWNrLmdldCgpKSkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAgIGlmIChpc1NhbWVQYWly
KGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfbm9uQmxvY2tpbmdE
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQotICAgICAgICByZXR1cm4gWUVTOwotCi0gICAgaWYg
KGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9k
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQotICAgICAgICByZXR1cm4gWUVTOwotCiAgICAgaWYg
KGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9o
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX3ByZXZpZXdTZWNvbmRh
cnlHZXN0dXJlUmVjb2duaXplci5nZXQoKSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKQEAgLTIw
MjksNyArMjAxNyw2IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgaWYgKGdlc3R1cmVSZWNv
Z25pemVyID09IF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcgogICAgICAgICB8
fCBnZXN0dXJlUmVjb2duaXplciA9PSBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKICAgICAg
ICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0gX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJl
Y29nbml6ZXIKLSAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2RvdWJsZVRhcEdlc3R1
cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sKICAgICAgICAgfHwgZ2VzdHVyZVJlY29nbml6ZXIg
PT0gX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyKSB7CiAKICAgICAgICAgaWYg
KGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKSkgewpAQCAtMjQz
NSwxMSArMjQyMiw2IEBAIC0gKHZvaWQpX25vbkJsb2NraW5nRG91YmxlVGFwUmVjb2duaXplZDoo
VUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pCiAgICAgX2lzRG91YmxlVGFw
UGVuZGluZyA9IFlFUzsKIH0KIAotLSAodm9pZClfZG91YmxlVGFwUmVjb2duaXplZEZvckRvdWJs
ZUNsaWNrOihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKLXsKLSAg
ICBfcGFnZS0+aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KFdlYkNvcmU6Oklu
dFBvaW50KGdlc3R1cmVSZWNvZ25pemVyLmxvY2F0aW9uKSwgV2ViS2l0Ojp3ZWJFdmVudE1vZGlm
aWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXJNb2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVy
KSksIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7Ci19Ci0KIC0gKHZv
aWQpX3R3b0ZpbmdlckRvdWJsZVRhcFJlY29nbml6ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIg
KilnZXN0dXJlUmVjb2duaXplcgogewogICAgIFtzZWxmIF9yZXNldElzRG91YmxlVGFwUGVuZGlu
Z107CkBAIC0zODE1LDEwICszNzk3LDcgQEAgLSAodm9pZClfaGFuZGxlQXV0b2NvcnJlY3Rpb25D
b250ZXh0Oihjb25zdCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpY28KIAogLSAo
dm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKIHsKLSAgICAvLyBSZXNl
dCB0aGUgZG91YmxlIHRhcCBnZXN0dXJlIHJlY29nbml6ZXIgdG8gcHJldmVudCBhbnkgZG91Ymxl
IGNsaWNrIHRoYXQgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgcmVjb2duaXplZC4KLSAgICBb
X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2sgc2V0RW5hYmxlZDpOT107
Ci0gICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrIHNldEVuYWJs
ZWQ6WUVTXTsKLSAgICAvLyBXZSBhbHNvIG5lZWQgdG8gZGlzYWJsZSB0aGUgZG91YmxlLXRhcCBn
ZXN0dXJlIHJlY29nbml6ZXJzIHRoYXQgYXJlIGVuYWJsZWQgZm9yIGRvdWJsZS10YXAtdG8tem9v
bSBhbmQgd2hpY2gKKyAgICAvLyBXZSBuZWVkIHRvIGRpc2FibGUgdGhlIGRvdWJsZS10YXAgZ2Vz
dHVyZSByZWNvZ25pemVycyB0aGF0IGFyZSBlbmFibGVkIGZvciBkb3VibGUtdGFwLXRvLXpvb20g
YW5kIHdoaWNoCiAgICAgLy8gYXJlIGVuYWJsZWQgd2hlbiBhIHNpbmdsZSB0YXAgaXMgZmlyc3Qg
cmVjb2duaXplZC4gVGhpcyBhdm9pZHMgdGVzdHMgcnVubmluZyBpbiBzZXF1ZW5jZSBhbmQgc2lt
dWxhdGluZyB0YXBzCiAgICAgLy8gaW4gdGhlIHNhbWUgbG9jYXRpb24gdG8gdHJpZ2dlciBkb3Vi
bGUtdGFwIHJlY29nbml0aW9uLgogICAgIFtzZWxmIF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJs
ZWQ6Tk9dOwpAQCAtMzg3OCw2ICszODU3LDI4IEBAIC0gKHZvaWQpX3NldERvdWJsZVRhcEdlc3R1
cmVzRW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgW3NlbGYgX3Jlc2V0SXNEb3VibGVUYXBQZW5k
aW5nXTsKIH0KIAorLSAoZG91YmxlKV9kb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5Cit7Cisg
ICAgc3RhdGljIGRvdWJsZSBkb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5ID0gMzUwOworICAg
IHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9u
Y2VUb2tlbiwgXnsKKyAgICAgICAgW3NlbGYgX2Vuc3VyZU5vbkJsb2NraW5nRG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXJdOworICAgICAgICBkb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5ID0g
W19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIG1heGltdW1JbnRlcnZhbEJl
dHdlZW5TdWNjZXNzaXZlVGFwc107CisgICAgfSk7CisgICAgcmV0dXJuIGRvdWJsZVRhcEZvckRv
dWJsZUNsaWNrRGVsYXk7Cit9CisKKy0gKGZsb2F0KV9kb3VibGVUYXBGb3JEb3VibGVDbGlja1Jh
ZGl1cworeworICAgIHN0YXRpYyBmbG9hdCBkb3VibGVUYXBGb3JEb3VibGVDbGlja1JhZGl1cyA9
IDQ1OworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNo
X29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgW3NlbGYgX2Vuc3VyZU5vbkJsb2NraW5nRG91
YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdOworICAgICAgICBkb3VibGVUYXBGb3JEb3VibGVDbGlj
a1JhZGl1cyA9IFtfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvd2Fi
bGVNb3ZlbWVudF07CisgICAgfSk7CisgICAgcmV0dXJuIGRvdWJsZVRhcEZvckRvdWJsZUNsaWNr
UmFkaXVzOworfQorCiAvLyBNQVJLOiBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSBwcm90b2Nv
bCBhbmQgYWNjZXNzb3J5IG1ldGhvZHMKIAogLSAodm9pZClhY2Nlc3NvcnlDbGVhcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggM2IxODAw
ZjhlMzJkNGUyNzc3NWU4NTY4YzlkNWI4OGZjMDBkZTE1OC4uYjVlZTZmMzE1Mzc5MjIwM2Q2ODM3
ZjJmMTQ0MTk0M2UzZGE2MDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCkBAIC04NDUsMTEgKzg0NSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRSZWNvZ25pemVMb25nUHJlc3MoKQogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRSZWNvZ25pemVMb25nUHJlc3MoKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9k
aWZpZXJzLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkK
LXsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlRG91YmxlVGFw
Rm9yRG91YmxlQ2xpY2tBdFBvaW50KHBvaW50LCBtb2RpZmllcnMsIGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0KSwgbV9wYWdlSUQpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94
eTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6SW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihwb3NpdGlvbiksIG1fcGFnZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
MmVkN2U5MzE4MjJmY2I2YzA0ZjJjOGUyZWRjOTk1NjNmOGFlNTVmOC4uODgyNTlkZTNlZGY3MDhl
ZDc4ZWE5OWUyZDI3Y2I2MTExZDNlOTNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQxNiw2ICs0MTYsOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgLCBtX2RldmljZU9yaWVudGF0aW9uKHBhcmFtZXRlcnMuZGV2aWNlT3JpZW50
YXRpb24pCiAgICAgLCBtX2tleWJvYXJkSXNBdHRhY2hlZChwYXJhbWV0ZXJzLmtleWJvYXJkSXNB
dHRhY2hlZCkKICAgICAsIG1fY2FuU2hvd1doaWxlTG9ja2VkKHBhcmFtZXRlcnMuY2FuU2hvd1do
aWxlTG9ja2VkKQorICAgICwgbV9kb3VibGVUYXBGb3JEb3VibGVDbGlja0RlbGF5KHBhcmFtZXRl
cnMuZG91YmxlVGFwRm9yRG91YmxlQ2xpY2tEZWxheSkKKyAgICAsIG1fZG91YmxlVGFwRm9yRG91
YmxlQ2xpY2tSYWRpdXMocGFyYW1ldGVycy5kb3VibGVUYXBGb3JEb3VibGVDbGlja1JhZGl1cykK
ICNlbmRpZgogICAgICwgbV9sYXllclZvbGF0aWxpdHlUaW1lcigqdGhpcywgJldlYlBhZ2U6Omxh
eWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpCiAgICAgLCBtX2FjdGl2aXR5U3RhdGUocGFyYW1ldGVy
cy5hY3Rpdml0eVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDE4YTM1YWQyN2M5NjY0ZDdhN2E0YmE1Y2RmY2Q4NWNlZDMyYmUxZjcuLmQ2YTIy
ZGU1YzA3MDc4YzcyMGI5NzQzNTJhZjEzNjI3NjEyMjU0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYzNCw3ICs2MzQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJbkZyYW1lKFdlYkZyYW1lJik7CiAgICAgdm9pZCB0
YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYpOwogICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ1ByZXNzKCk7Ci0gICAgdm9p
ZCBoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBs
YXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CisgICAgYm9vbCBoYW5kbGVQb3RlbnRpYWxEb3Vi
bGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1v
ZGlmaWVyPiwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpOwogCiAgICAgdm9p
ZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpAQCAtMTg1Nyw2ICsxODU3LDggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fa2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2Fu
U2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5EeW5hbWljU2l6ZVVwZGF0
ZSB7IGZhbHNlIH07CisgICAgU2Vjb25kcyBtX2RvdWJsZVRhcEZvckRvdWJsZUNsaWNrRGVsYXkg
eyAzNTBfbXMgfTsKKyAgICBmbG9hdCBtX2RvdWJsZVRhcEZvckRvdWJsZUNsaWNrUmFkaXVzIHsg
NDUgfTsKICAgICBIYXNoTWFwPHN0ZDo6cGFpcjxXZWJDb3JlOjpJbnRTaXplLCBkb3VibGU+LCBX
ZWJDb3JlOjpJbnRQb2ludD4gbV9keW5hbWljU2l6ZVVwZGF0ZUhpc3Rvcnk7CiAgICAgUmVmUHRy
PFdlYkNvcmU6Ok5vZGU+IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb247CkBAIC0xODY3LDYg
KzE4NjksOCBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPER5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGVJRD4gbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogICAgIGRvdWJsZSBt
X2xhc3RUcmFuc2FjdGlvblBhZ2VTY2FsZUZhY3RvciB7IDAgfTsKICAgICB1aW50NjRfdCBtX2xh
c3RUcmFuc2FjdGlvbklEV2l0aFNjYWxlQ2hhbmdlIHsgMCB9OworICAgIE9wdGlvbmFsPE1vbm90
b25pY1RpbWU+IG1fbGFzdENvbW1pdHRlZFRhcFRpbWVzdGFtcDsKKyAgICBPcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFBvaW50PiBtX2xhc3RDb21taXR0ZWRUYXBMb2NhdGlvbjsKIAogICAgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mJik+IG1f
cGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblJlcGx5OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCBiMDZhYjBmNmVlYzFjNzk0MWNjOWRjMTNjODFhZTFlNzAzZDRlOGU3Li42ZjlmOTcy
NDNiYTRiNTdiZWRjM2E0ODBmMGZkMTRhMjgwNDljYzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU3LDcgKzU3
LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ2FuY2VsUG90
ZW50aWFsVGFwKCkKICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3Mo
KQotICAgIEhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmll
cnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgIEluc3BlY3Rvck5v
ZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBJ
bnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9p
bnQpCiAgICAgQmx1ckZvY3VzZWRFbGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzhiZjhmZTVmNzdhOGMxNmQ2
NjEwYjBhMTU5NmJiNzFlYWFmN2E1MC4uNTdkMjdmYmU3ODlkYzZhMzI2MDgwZmVhNDkzYWRjMWMw
ZmYxYzlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTgwMCwxNiArODAwLDI3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxl
VGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4g
bW9kCiAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ss
IGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlRG91
YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9u
U2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZCkKK2Jvb2wgV2ViUGFnZTo6aGFuZGxlUG90ZW50aWFsRG91YmxlVGFwRm9y
RG91YmxlQ2xpY2tBdFBvaW50KE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVy
cywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiB7CisgICAgaWYgKCFtX2xh
c3RDb21taXR0ZWRUYXBUaW1lc3RhbXAgfHwgIW1fbGFzdENvbW1pdHRlZFRhcExvY2F0aW9uKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIG1pbGxpc2Vjb25kc1NpbmNlTGFzdFRh
cCA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtICptX2xhc3RDb21taXR0ZWRUYXBUaW1lc3RhbXAp
Lm1pbGxpc2Vjb25kcygpOworICAgIGlmIChtaWxsaXNlY29uZHNTaW5jZUxhc3RUYXAgPiBtX2Rv
dWJsZVRhcEZvckRvdWJsZUNsaWNrRGVsYXkubWlsbGlzZWNvbmRzKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGF1dG8gZGlzdGFuY2VCZXR3ZWVuVGFwcyA9IHNxcnRmKHBvdyhtX3Bv
dGVudGlhbFRhcExvY2F0aW9uLngoKSAtIG1fbGFzdENvbW1pdHRlZFRhcExvY2F0aW9uLT54KCks
IDIpICsgcG93KG1fcG90ZW50aWFsVGFwTG9jYXRpb24ueSgpIC0gbV9sYXN0Q29tbWl0dGVkVGFw
TG9jYXRpb24tPnkoKSwgMikpOworICAgIGlmIChkaXN0YW5jZUJldHdlZW5UYXBzID4gbV9kb3Vi
bGVUYXBGb3JEb3VibGVDbGlja1JhZGl1cykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
RmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwotICAgIGF1dG8qIG5vZGVSZXNwb25kaW5nVG9Eb3Vi
bGVDbGljayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNr
RXZlbnQocG9pbnQsIGFkanVzdGVkUG9pbnQpOworICAgIGF1dG8qIG5vZGVSZXNwb25kaW5nVG9E
b3VibGVDbGljayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNs
aWNrRXZlbnQobV9wb3RlbnRpYWxUYXBMb2NhdGlvbiwgYWRqdXN0ZWRQb2ludCk7CiAgICAgaWYg
KCFub2RlUmVzcG9uZGluZ1RvRG91YmxlQ2xpY2spCi0gICAgICAgIHJldHVybjsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byogZnJhbWVSZXNwb25kaW5nVG9Eb3VibGVDbGljayA9
IG5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGljay0+ZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlm
ICghZnJhbWVSZXNwb25kaW5nVG9Eb3VibGVDbGljayB8fCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZCA8IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZVJlc3BvbmRpbmdUb0RvdWJsZUNs
aWNrKS0+Zmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkKCkpCi0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBzaGlmdEtl
eSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKICAg
ICBib29sIGN0cmxLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpD
b250cm9sS2V5KTsKQEAgLTgxOCw4ICs4MjksOSBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZURvdWJs
ZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQsIE9wdGlvbgog
ICAgIGF1dG8gcm91bmRlZEFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQ
b2ludCk7CiAgICAgbm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrLT5kb2N1bWVudCgpLmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZl
bnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDIsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRL
ZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKICAgICBp
ZiAobV9pc0Nsb3NlZCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgbm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrLT5kb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3Vu
ZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDIsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1l
dGFLZXksIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKQEAgLTEwNDAsOSArMTA1MiwxOCBAQCB2
b2lkIFdlYlBhZ2U6OnBvdGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaQogCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRh
cChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewot
ICAgIGlmICghbV9wb3RlbnRpYWxUYXBOb2RlIHx8ICghbV9wb3RlbnRpYWxUYXBOb2RlLT5yZW5k
ZXJlcigpICYmICFpczxIVE1MQXJlYUVsZW1lbnQ+KG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSkp
KSB7CisgICAgYXV0byBjdXJyZW50UG90ZW50aWFsVGFwTG9jYXRpb24gPSBtX3BvdGVudGlhbFRh
cExvY2F0aW9uOyAKKyAgICBhdXRvIHVwZGF0ZUxhc3RDb21taXR0ZWRMb2NhdGlvbkFuZFRpbWVz
dGFtcCA9IFsmXSB7CisgICAgICAgIG1fbGFzdENvbW1pdHRlZFRhcFRpbWVzdGFtcCA9IE1vbm90
b25pY1RpbWU6Om5vdygpOworICAgICAgICBtX2xhc3RDb21taXR0ZWRUYXBMb2NhdGlvbiA9IGN1
cnJlbnRQb3RlbnRpYWxUYXBMb2NhdGlvbjsKKyAgICB9OworCisgICAgYXV0byBpbnZhbGlkVGFy
Z2V0Rm9yU2luZ2xlQ2xpY2sgPSAhbV9wb3RlbnRpYWxUYXBOb2RlIHx8ICghbV9wb3RlbnRpYWxU
YXBOb2RlLT5yZW5kZXJlcigpICYmICFpczxIVE1MQXJlYUVsZW1lbnQ+KG1fcG90ZW50aWFsVGFw
Tm9kZS5nZXQoKSkpOworICAgIGlmIChpbnZhbGlkVGFyZ2V0Rm9yU2luZ2xlQ2xpY2spIHsKKyAg
ICAgICAgLy8gV2hlbiB0aGUgbm9kZSBoYXMgbm8gY2xpY2sgZXZlbnRsaXN0ZW5lciwgYnV0IGl0
IG1heSBoYXZlIGEgZGJsY2xpY2sgb25lLgorICAgICAgICBoYW5kbGVQb3RlbnRpYWxEb3VibGVU
YXBGb3JEb3VibGVDbGlja0F0UG9pbnQobW9kaWZpZXJzLCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZCk7CiAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiB1cGRhdGVMYXN0Q29tbWl0dGVkTG9jYXRpb25BbmRUaW1lc3Rh
bXAoKTsKICAgICB9CiAKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7CkBAIC0xMDUxLDcg
KzEwNzIsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NAogCiAgICAgaWYgKCFmcmFtZVJlc3Bv
bmRpbmdUb0NsaWNrIHx8IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkIDwgV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lUmVzcG9uZGluZ1RvQ2xpY2spLT5maXJzdExheWVyVHJlZVRyYW5z
YWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQoKSkgewogICAgICAgICBjb21taXRQb3RlbnRpYWxU
YXBGYWlsZWQoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdXBkYXRlTGFzdENv
bW1pdHRlZExvY2F0aW9uQW5kVGltZXN0YW1wKCk7CiAgICAgfQogCiAgICAgaWYgKG1fcG90ZW50
aWFsVGFwTm9kZSA9PSBub2RlUmVzcG9uZGluZ1RvQ2xpY2spIHsKQEAgLTEwNjIsMTMgKzEwODMs
MTkgQEAgdm9pZCBXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYkV2ZW50
OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjQKICAgICAgICAgICAgIGNvbW1pdFBvdGVudGlh
bFRhcEZhaWxlZCgpOwogICAgICAgICB9IGVsc2UKICNlbmRpZgotICAgICAgICAgICAgaGFuZGxl
U3ludGhldGljQ2xpY2soKm5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9k
aWZpZXJzLCBwb2ludGVySWQpOworICAgICAgICB7CisgICAgICAgICAgICBpZiAoaGFuZGxlUG90
ZW50aWFsRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KG1vZGlmaWVycywgbGFzdExheWVy
VHJlZVRyYW5zYWN0aW9uSWQpKQorICAgICAgICAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZh
aWxlZCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGhhbmRsZVN5bnRoZXRp
Y0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycywg
cG9pbnRlcklkKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBjb21taXRQb3RlbnRp
YWxUYXBGYWlsZWQoKTsKIAogICAgIG1fcG90ZW50aWFsVGFwTm9kZSA9IG51bGxwdHI7CiAgICAg
bV9wb3RlbnRpYWxUYXBMb2NhdGlvbiA9IEZsb2F0UG9pbnQoKTsKICAgICBtX3BvdGVudGlhbFRh
cFNlY3VyaXR5T3JpZ2luID0gbnVsbHB0cjsKKyAgICByZXR1cm4gdXBkYXRlTGFzdENvbW1pdHRl
ZExvY2F0aW9uQW5kVGltZXN0YW1wKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50
aWFsVGFwRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NGU4YjllN2U5OTRmOWQzOTRiN2I1Mjg1M2QwNzRjMDg3
MzEzZThhLi42OTUyOWRhZGFkMmZhNTI0MTFlM2ZhNTdjYmI4OGM4YzRhNDA1MzZlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTktMDYtMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRh
cC1mb3ItZG91YmxlLWNsaWNrKiB0ZXN0IGNhc2VzIGFyZSBmYWlsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUxMDM1NDU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4K
KworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1kb3VibGUt
Y2xpY2sxLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAt
Zm9yLWRvdWJsZS1jbGljazIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMy5odG1sOgorCiAyMDE5LTA2LTA4ICBDYXRoaWUg
Q2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICByZXNpemUtb2JzZXJ2ZXIv
ZWxlbWVudC1sZWFrLmh0bWwgZmFpbHMgb24gV2luZG93cyBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJsZS1j
bGljazEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFw
LWZvci1kb3VibGUtY2xpY2sxLmh0bWwKaW5kZXggNTUxMzE3NTgzM2I0ODA5MGY5MDQ5Mjg4M2I5
NGY2MWE0YTVmMzI3Zi4uMTY2NTE4ZWU2MGQxMDJhZjQ1OTU0MjZiYmUxYjRkOGZhZmEzYmZmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAt
Zm9yLWRvdWJsZS1jbGljazEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMS5odG1sCkBAIC0zLDcgKzMsNyBAQAog
PGhlYWQ+CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
IGluaXRpYWwtc2NhbGU9MSB1c2VyLXNjYWxhYmxlPW5vIj4KIDx0aXRsZT5UaGlzIHRlc3RzIHRo
YXQgd2UgZmlyZSBkYmxjbGljayBldmVudCBvbiBkb3VibGUgdGFwPC90aXRsZT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgogPHN0eWxlPgogI2RvdWJsZVRhcHRoaXMgewogICAgIHdpZHRoOiA0MDBweDsKQEAgLTE5LDcg
KzE5LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAotICAgIGF3YWl0IGRvdWJs
ZVRhcEF0UG9pbnQoZG91YmxlVGFwdGhpcy5vZmZzZXRMZWZ0LCBkb3VibGVUYXB0aGlzLm9mZnNl
dFRvcCk7CisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5TcGVlZERvdWJsZVRhcEF0KGRvdWJsZVRh
cHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5vZmZzZXRUb3ApOwogfQogPC9zY3JpcHQ+
CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljazIuaHRtbAppbmRleCBiMWM3
NTkyMmQxNWIwYzIxNjZlZjgxZjc2ZjRjNDRlZWJmYzdkOGIwLi5jZjIwMTRkNjllNGU5ZjIwNGYz
NWZjYTgyM2M5YjUxOGVlMmI0ZmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvZG91YmxlLXRhcC1mb3ItZG91YmxlLWNsaWNrMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1kb3VibGUtY2xpY2sy
Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGggaW5pdGlhbC1zY2FsZT0xIHVzZXItc2NhbGFibGU9bm8i
PgogPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCB3ZSBmaXJlIGRibGNsaWNrIGV2ZW50IG9uIGRvdWJs
ZSB0YXAgd2hlbiB0aGUgY29udGVudCBpcyByZXBsYWNlZDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KIDxz
dHlsZT4KICNkb3VibGVUYXBUaGlzIHsKICAgICB3aWR0aDogNDAwcHg7CkBAIC0yOSw3ICsyOSw3
IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0
LndpZHRoIC8gMjsKICAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOwogCi0g
ICAgYXdhaXQgZG91YmxlVGFwQXRQb2ludCh4LCB5KTsKKyAgICBhd2FpdCBVSUhlbHBlci5odW1h
blNwZWVkRG91YmxlVGFwQXQoeCwgeSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLWZvci1kb3Vi
bGUtY2xpY2szLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91Ymxl
LXRhcC1mb3ItZG91YmxlLWNsaWNrMy5odG1sCmluZGV4IDRiZWI4YTJjNjEyN2ZiZTkxOTFjYTY4
NjhmNzQ2Y2VlZDhjMTE5MzkuLjE5YThhMjk1YjhjY2IxNWUyNDQ4MTdmNjM0MWRjODk2OTM0MDlk
NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLWZvci1kb3VibGUtY2xpY2szLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2RvdWJsZS10YXAtZm9yLWRvdWJsZS1jbGljazMuaHRtbApAQCAtMyw3ICszLDcg
QEAKIDxoZWFkPgogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCBpbml0aWFsLXNjYWxlPTEgdXNlci1zY2FsYWJsZT1ubyI+CiA8dGl0bGU+VGhpcyB0ZXN0
cyB0aGF0IHdlIGRvIG5vdCBmaXJlIGRibGNsaWNrIGV2ZW50IG9uIGRvdWJsZSB0YXAgb24gbm9k
ZSB3aXRoIHRvdWNoLWFjdGlvbjogbm9uZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KIDxzdHlsZT4KICNk
b3VibGVUYXB0aGlzIHsKICAgICB3aWR0aDogNDAwcHg7CkBAIC0xMiw4ICsxMiw4IEBACiAgICAg
dG91Y2gtYWN0aW9uOiBub25lOwogfQogI2ZpbmlzaFRlc3QgewotICAgIHdpZHRoOiAxMHB4Owot
ICAgIGhlaWdodDogMTBweDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
ICAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKIH0KIDwvc3R5bGU+CkBAIC0yNSw5ICsyNSw5
IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKLSAgICBhd2FpdCBkb3VibGVUYXBB
dFBvaW50KGRvdWJsZVRhcHRoaXMub2Zmc2V0TGVmdCwgZG91YmxlVGFwdGhpcy5vZmZzZXRUb3Ap
OworICAgIGF3YWl0IFVJSGVscGVyLmh1bWFuU3BlZWREb3VibGVUYXBBdChkb3VibGVUYXB0aGlz
Lm9mZnNldExlZnQsIGRvdWJsZVRhcHRoaXMub2Zmc2V0VG9wKTsKIAotICAgIGF3YWl0IGRvdWJs
ZVRhcEF0UG9pbnQoZmluaXNoVGVzdC5vZmZzZXRMZWZ0LCBmaW5pc2hUZXN0Lm9mZnNldFRvcCk7
CisgICAgYXdhaXQgVUlIZWxwZXIuaHVtYW5TcGVlZERvdWJsZVRhcEF0KGZpbmlzaFRlc3Qub2Zm
c2V0TGVmdCArIDEwMCwgZmluaXNoVGVzdC5vZmZzZXRUb3AgKyAxMDApOwogfQogPC9zY3JpcHQ+
CiA8L2hlYWQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>