<?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>193698</bug_id>
          
          <creation_ts>2019-01-22 16:53:12 -0800</creation_ts>
          <short_desc>Clean up USE(WEB_THREAD)</short_desc>
          <delta_ts>2019-01-23 13:04:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Conrad Shultz">conrad_shultz</reporter>
          <assigned_to name="Conrad Shultz">conrad_shultz</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497097</commentid>
    <comment_count>0</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-22 16:53:12 -0800</bug_when>
    <thetext>We do not apply USE(WEB_THREAD) consistently. It would be good to audit all uses of the web thread and patch up relevant sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497099</commentid>
    <comment_count>1</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-22 16:53:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/47366779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497249</commentid>
    <comment_count>2</comment_count>
      <attachid>359858</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-22 22:52:11 -0800</bug_when>
    <thetext>Created attachment 359858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497250</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-22 22:55:22 -0800</bug_when>
    <thetext>Attachment 359858 did not pass style-queue:


ERROR: Source/WebKitLegacy/ios/WebCoreSupport/WebFixedPositionContent.mm:173:  The parameter name &quot;frame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497487</commentid>
    <comment_count>4</comment_count>
      <attachid>359858</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-23 12:28:06 -0800</bug_when>
    <thetext>Comment on attachment 359858
Patch

ears=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497489</commentid>
    <comment_count>5</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-23 12:30:38 -0800</bug_when>
    <thetext>The style issue is tracked by &quot;check-webkit-style false positive for [readability/parameter_name] with declaration inside if expression.&quot; (https://bugs.webkit.org/show_bug.cgi?id=174485)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497495</commentid>
    <comment_count>6</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-23 12:37:18 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp
	M	Source/WebCore/platform/cf/MainThreadSharedTimerCF.cpp
	M	Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm
	M	Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.mm
	M	Source/WebCore/platform/ios/wak/WAKWindow.mm
	M	Source/WebCore/platform/ios/LegacyTileCache.mm
	M	Source/WebCore/platform/ios/WebCoreMotionManager.mm
	M	Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm
	M	Source/WebCore/platform/network/ios/NetworkStateNotifierIOS.mm
	M	Source/WebCore/rendering/RenderThemeIOS.mm
	M	Source/WebCore/ChangeLog
	M	Source/WebKitLegacy/ios/Misc/WebGeolocationProviderIOS.mm
	M	Source/WebKitLegacy/ios/WebCoreSupport/WebFixedPositionContent.mm
	M	Source/WebKitLegacy/ios/ChangeLog
	M	Source/WebKitLegacy/mac/Misc/WebCache.mm
	M	Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
	M	Source/WebKitLegacy/mac/WebCoreSupport/WebGeolocationClient.mm
	M	Source/WebKitLegacy/mac/WebView/WebFrame.mm
	M	Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
	M	Source/WebKitLegacy/mac/WebView/WebView.mm
	M	Source/WebKitLegacy/mac/ChangeLog
r240353 = 24ba8bb9e1dad8679b492d9a2d47da619be85789 (refs/remotes/origin/master)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497498</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-23 12:39:33 -0800</bug_when>
    <thetext>I don&apos;t like the #ifdeffing of control flow here. Can&apos;t we make WebThreadRun just execute the block synchronously?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497521</commentid>
    <comment_count>8</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2019-01-23 13:04:06 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; I don&apos;t like the #ifdeffing of control flow here. Can&apos;t we make WebThreadRun
&gt; just execute the block synchronously?

Understood. Per discussion, rolled out the change in r240355.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359858</attachid>
            <date>2019-01-22 22:52:11 -0800</date>
            <delta_ts>2019-01-23 12:28:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193698-20190122225216.patch</filename>
            <type>text/plain</type>
            <size>52370</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllZjQ1M2Y0ODY2NWM5
ODczNGVmOWFmYjUzY2RkZDNkYjRmYmFiNC4uNGY1ZmQ1OTcyZWFkM2I4NGE4ZTg2YmM1NjlhNDUy
NDRiYzI0NTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE5LTAxLTIyICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAg
VVNFKFdFQl9USFJFQUQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM2OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dXNlckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25DYWxs
YmFjayk6CisgICAgICAgICogcGxhdGZvcm0vY2YvTWFpblRocmVhZFNoYXJlZFRpbWVyQ0YuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2NvY29hL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hUb01haW5UaHJlYWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW06CisgICAg
ICAgICgtW1dlYkNvcmVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hSGVscGVyIG9ic2VydmVW
YWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRp
bGVDYWNoZTo6bGF5b3V0VGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hl
OjpzZXRUaWxpbmdNb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIubW06CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHNlbmRBY2NlbGVyb21l
dGVyRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZE1vdGlvbkRh
dGE6d2l0aEhlYWRpbmc6XSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpyZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCk6CisgICAgICAgIChWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAg
ICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXR1cm5WaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZGlkU2V0
dXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckNvbnRleHQ6OmRpZEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIChWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXF1ZXN0RnVsbHNj
cmVlbk1vZGUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNl
dFZpZGVvTGF5ZXJGcmFtZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6c2V0VmlkZW9MYXllckdyYXZpdHkpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6CisgICAgICAgIChWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cGxheSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6cGF1c2UpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckNvbnRleHQ6OnRvZ2dsZVBsYXlTdGF0ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6dG9nZ2xlTXV0ZWQpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OnNldE11dGVkKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0OjpzZXRWb2x1bWUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNvbnRleHQ6OnNldFBsYXlpbmdPblNlY29uZFNjcmVlbik6CisgICAgICAgIChW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAg
ICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmVuZFNjcnViYmluZyk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6c2Vla1RvVGltZSk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZmFzdFNlZWspOgorICAgICAg
ICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJlZ2luU2Nhbm5pbmdGb3J3YXJk
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpiZWdpblNjYW5u
aW5nQmFja3dhcmQpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6
OmVuZFNjYW5uaW5nKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24pOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmR1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpjdXJyZW50VGltZSBjb25zdCk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YnVmZmVyZWRUaW1lIGNvbnN0
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc1BsYXlpbmcg
Y29uc3QpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnBsYXli
YWNrUmF0ZSBjb25zdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4
dDo6c2Vla2FibGVSYW5nZXMgY29uc3QpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckNvbnRleHQ6OnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUgY29uc3QpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmxpdmVVcGRhdGVJbnRl
cnZhbCBjb25zdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
Y2FuUGxheUZhc3RSZXZlcnNlIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjphdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyBjb25zdCk6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YXVkaW9NZWRpYVNlbGVjdGVkSW5k
ZXggY29uc3QpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6Omxl
Z2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmxlZ2libGVNZWRpYVNlbGVjdGVkSW5kZXggY29uc3QpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmV4dGVybmFsUGxheWJh
Y2tFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjpleHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSBjb25zdCk6CisgICAgICAgIChWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZXh0ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmlj
ZU5hbWUgY29uc3QpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6
OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRVcEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxs
c2NyZWVuKToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1
bGxzY3JlZW46bW9kZTpdKToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ciBleGl0RnVsbHNjcmVlbl0pOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIHJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW5dKToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mvd2FrL1dBS1dpbmRvdy5tbToKKyAgICAgICAgKC1bV0FLV2luZG93IHNldFZpc2libGU6XSk6
CisgICAgICAgICgtW1dBS1dpbmRvdyBzZXRTY3JlZW5TY2FsZTpdKToKKyAgICAgICAgKC1bV0FL
V2luZG93IHNlbmRFdmVudDpdKToKKyAgICAgICAgKC1bV0FLV2luZG93IHNlbmRNb3VzZU1vdmVF
dmVudDpjb250ZW50Q2hhbmdlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL05l
dHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0YXRl
Tm90aWZpZXI6OnN0YXJ0T2JzZXJ2aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdl
KToKKwogMjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEZpeCBtb3JlIGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxv
ZwppbmRleCBkMDkzZjNlMzIxYmJlNTk1ZTMyZjliZTdlZjMzYjg1NmE1OWI2OThhLi43YzExZDcw
OWNmM2FmNGRmZTZjYjdmZWE3OTlmODdjNzcyMzI3NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDEtMjIgIENvbnJhZCBTaHVsdHogIDxjb25y
YWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBVU0UoV0VCX1RIUkVBRCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzY5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9u
VXBkYXRlVGhyZWFkaW5nUHJveHkgZ2VvbG9jYXRpb25BdXRob3JpemF0aW9uR3JhbnRlZF0pOgor
ICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5nUHJveHkgZ2VvbG9jYXRp
b25BdXRob3JpemF0aW9uRGVuaWVkXSk6CisgICAgICAgICgtW19XZWJDb3JlTG9jYXRpb25VcGRh
dGVUaHJlYWRpbmdQcm94eSBwb3NpdGlvbkNoYW5nZWQ6XSk6CisgICAgICAgICgtW19XZWJDb3Jl
TG9jYXRpb25VcGRhdGVUaHJlYWRpbmdQcm94eSBlcnJvck9jY3VycmVkOl0pOgorICAgICAgICAo
LVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5nUHJveHkgcmVzZXRHZW9sb2NhdGlvbl0p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tOgor
ICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBkaWRGaW5pc2hTY3JvbGxpbmdPclpv
b21pbmddKToKKwogMjAxOS0wMS0yMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gSW50ZXJwcmV0IHRleHQga2V5IGNvbW1hbmRzIG9uIGtleWRvd24g
YW5kIGFwcCBrZXkgY29tbWFuZHMgb24ga2V5cHJlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCBjMDdmNDBmMmJhYjVkODkxZmZmMzg3NjgyYTU0YWE3MTk5NTdkMjI1Li40OTkxZjI4
Zjc5OTkyODE2Y2UyMjFkYjY4ZjUyZGY1YjA3NDBkYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMDEtMjIgIENvbnJhZCBTaHVsdHogIDxjb25y
YWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBVU0UoV0VCX1RIUkVBRCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzY5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9X
ZWJDYWNoZS5tbToKKyAgICAgICAgKCtbV2ViQ2FjaGUgZW1wdHlJbk1lbW9yeVJlc291cmNlc10p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAg
ICAgICAoLVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIHVzZV0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlv
blBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9saWN5
TGlzdGVuZXIgZGVueV0pOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVy
IGRlbnlPbmx5VGhpc1JlcXVlc3RdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWRdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoaGFyZHdhcmVLZXlib2FyZEF2YWls
YWJpbGl0eUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoK1tXZWJWaWV3IF9yZWxlYXNlTWVtb3J5Tm93XSk6CisgICAgICAgICgrW1dlYlZp
ZXcgd2lsbEVudGVyQmFja2dyb3VuZFdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bV2ViVmlldyB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVTaGVldHNdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfZGlzcGF0Y2hVbmxvYWRFdmVudF0pOgorICAgICAgICAoLVtXZWJWaWV3
IF9jbG9zZV0pOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmlj
YXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlv
dXRSZWN0SW5XZWJUaHJlYWQ6c3luY2hyb25pemU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZ29C
YWNrXSk6CisgICAgICAgICgtW1dlYlZpZXcgZ29Gb3J3YXJkXSk6CisgICAgICAgICgrW1dlYlZp
ZXcgX2NhY2hlTW9kZWxDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3
IHN0b3BMb2FkaW5nOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHN0b3BMb2FkaW5nQW5kQ2xlYXJd
KToKKyAgICAgICAgKC1bV2ViVmlldyByZWxvYWQ6XSk6CisgICAgICAgIChXZWJJbnN0YWxsTWVt
b3J5UHJlc3N1cmVIYW5kbGVyKToKKwogMjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uIG93bmVyc2hpcCB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBiNzkyM2Y3ODMy
MjI2ZWQ1M2YwYzkxZjhkZWRhODVkYjlkNjMxNjJjLi43NjNhMWNhZGZhM2M4YjQyZDZmMzc5N2Vm
NWRhZDRiZjQ1YmViZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtOTcsNyArOTcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKIHN0YXRp
YyB2b2lkIHVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2so
Q0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiwgY29u
c3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYpCiB7Ci0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CisjaWYgIVVTRShXRUJfVEhSRUFEKQogICAgIHN0YXRpY19jYXN0PENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGKj4ob2JzZXJ2ZXIpLT5jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiAj
ZWxzZQogICAgIFdlYlRocmVhZFJ1biheewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvTWFpblRocmVhZFNoYXJlZFRpbWVyQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvTWFpblRocmVhZFNoYXJlZFRpbWVyQ0YuY3BwCmluZGV4IGI2ODkyMjgwNWU1ZDM3
M2RlN2YwYWVkNzg5MDgyNWFjY2NjMTIwMzkuLjU2ZDNiMTY3NzlkNmUwZDVjYzUyMDJkZGU1NTNh
ZTNmNDMxOGZlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL01haW5U
aHJlYWRTaGFyZWRUaW1lckNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9N
YWluVGhyZWFkU2hhcmVkVGltZXJDRi5jcHAKQEAgLTQ2LDkgKzQ2LDEzIEBAIHN0YXRpYyBjb25z
dCBDRlRpbWVJbnRlcnZhbCBrQ0ZUaW1lSW50ZXJ2YWxEaXN0YW50RnV0dXJlID0gc3RkOjpudW1l
cmljX2xpbWl0czxDCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHN0YXRpYyB2b2lkIGFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZT
dHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CisjaWYgVVNFKFdFQl9U
SFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIHJlc3RhcnRTaGFyZWRUaW1lcigp
OwogICAgIH0pOworI2Vsc2UKKyAgICByZXN0YXJ0U2hhcmVkVGltZXIoKTsKKyNlbmRpZgogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0KaW5kZXggOWMzMjllN2Jj
NDRjNzU2ZDlhNzNhNWZmNjMzMDdiZjEyMDAwNzIxOS4uMzM5MGVkODFmOTljZTI0ZjEzNTQ3ZWIx
YWEyNGVjOWM1MzQ2MjBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0KQEAg
LTE0NCw3ICsxNDQsNyBAQCBib29sIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjo6Y2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogc3RhdGljIGlubGluZSB2
b2lkIGRpc3BhdGNoVG9NYWluVGhyZWFkKHZvaWQgKF5ibG9jaykoKSkKIHsKICAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgICAgIFdlYlRocmVhZFJ1bihibG9jayk7
CiAjZWxzZQogICAgICAgICBibG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0
aW9uQ29jb2EubW0KaW5kZXggNmU2MGViZjFmZmE2NTkwZjZmMzRlNTI4YTNlMzM1ODMxOGI1ZWJk
Zi4uNTM4MjZjNDMzNWVhZGVmYTIwZjM4YTIzOTYwZmZkZTk3ODRhMzBkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50
YXRpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLm1tCkBAIC04NSw3ICs4NSw3IEBAIC0gKHZv
aWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0Oihp
ZClvYmplY3QgY2hhbmdlOihOCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNoYW5nZSk7CiAgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdF
Ql9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIGlmIChfcGFyZW50ICYmIFtr
ZXlQYXRoIGlzRXF1YWw6QCJib3VuZHMiXSAmJiBvYmplY3QgPT0gX3BhcmVudC0+cGxhdGZvcm1M
YXllcigpKQogICAgICAgICAgICAgX3BhcmVudC0+Y2xpZW50KCkudGV4dFRyYWNrUmVwcmVzZW50
YXRpb25Cb3VuZHNDaGFuZ2VkKF9wYXJlbnQtPmJvdW5kcygpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCmluZGV4IDIwOWY4OGY0N2EzYjdjZGMw
MTQzZGU5MmUyNGJhZGRmOTY2NGI1ZjQuLmY4NWM4ZDljNzEwNTAzOTFlYzYyYTNlNzk5NDFhMjE0
ZjQ5ODY0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lU
aWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVD
YWNoZS5tbQpAQCAtMjc3LDEyICsyNzcsMTYgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91
dFRpbGVzKCkKICAgICBtX2hhc1BlbmRpbmdMYXlvdXRUaWxlcyA9IHRydWU7CiAKICAgICBMZWdh
Y3lUaWxlQ2FjaGVUb21ic3RvbmUgKnRvbWJzdG9uZSA9IG1fdG9tYnN0b25lLmdldCgpOworI2lm
IFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheeworI2VuZGlmCiAgICAgICAgIGlm
IChbdG9tYnN0b25lIGlzRGVhZF0pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1faGFz
UGVuZGluZ0xheW91dFRpbGVzID0gZmFsc2U7CiAgICAgICAgIGRvTGF5b3V0VGlsZXMoKTsKKyNp
ZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3coKQpAQCAtNzE2LDEyICs3MjAsMTYgQEAgdm9pZCBMZWdhY3lU
aWxlQ2FjaGU6OnNldFRpbGluZ01vZGUoVGlsaW5nTW9kZSB0aWxpbmdNb2RlKQogICAgIG1faGFz
UGVuZGluZ1VwZGF0ZVRpbGluZ01vZGUgPSB0cnVlOwogCiAgICAgTGVnYWN5VGlsZUNhY2hlVG9t
YnN0b25lICp0b21ic3RvbmUgPSBtX3RvbWJzdG9uZS5nZXQoKTsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgogICAgICAgICBpZiAoW3RvbWJzdG9uZSBp
c0RlYWRdKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2hhc1BlbmRpbmdVcGRhdGVU
aWxpbmdNb2RlID0gZmFsc2U7CiAgICAgICAgIHVwZGF0ZVRpbGluZ01vZGUoKTsKKyNpZiBVU0Uo
V0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6
c2V0VGlsaW5nRGlyZWN0aW9uKFRpbGluZ0RpcmVjdGlvbiB0aWxpbmdEaXJlY3Rpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0K
aW5kZXggOGYwYTg2ZDk1OWI4MDFmMjg4MWIwMmFjYTExNTZkYjE1ODY1MmUyOS4uNjcwM2ZkMGMx
NjllNzk1OWJlNmI2Njc2NzZlYjRhMzQ3NzllNzhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQpAQCAtMjIwLDE3ICsyMjAs
MjMgQEAgLSAodm9pZCl1cGRhdGUKIAogLSAodm9pZClzZW5kQWNjZWxlcm9tZXRlckRhdGE6KENN
QWNjZWxlcm9tZXRlckRhdGEgKiluZXdBY2NlbGVyYXRpb24KIHsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgogICAgICAgICBDTUFjY2VsZXJhdGlvbiBh
Y2NlbCA9IG5ld0FjY2VsZXJhdGlvbi5hY2NlbGVyYXRpb247CiAKICAgICAgICAgZm9yIChhdXRv
JiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9kZXZpY2VNb3Rpb25DbGllbnRzKSkKICAgICAgICAg
ICAgIGNsaWVudC0+bW90aW9uQ2hhbmdlZCgwLCAwLCAwLCBhY2NlbC54ICoga0dyYXZpdHksIGFj
Y2VsLnkgKiBrR3Jhdml0eSwgYWNjZWwueiAqIGtHcmF2aXR5LCAwLCAwLCAwKTsKKyNpZiBVU0Uo
V0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiAtICh2b2lkKXNlbmRNb3Rpb25EYXRh
OihDTURldmljZU1vdGlvbiAqKW5ld01vdGlvbiB3aXRoSGVhZGluZzooQ0xIZWFkaW5nICopbmV3
SGVhZGluZwogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheeworI2Vu
ZGlmCiAgICAgICAgIC8vIEFjY2VsZXJhdGlvbiBpcyB1c2VyICsgZ3Jhdml0eQogICAgICAgICBD
TUFjY2VsZXJhdGlvbiB1c2VyQWNjZWwgPSBuZXdNb3Rpb24udXNlckFjY2VsZXJhdGlvbjsKICAg
ICAgICAgQ01BY2NlbGVyYXRpb24gZ3Jhdml0eSA9IG5ld01vdGlvbi5ncmF2aXR5OwpAQCAtMzIx
LDcgKzMyNyw5IEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICopbmV3
TW90aW9uIHdpdGhIZWFkaW5nOihDTEhlYWRpbmcgKiluZXdICiAKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAg
ICBvcmllbnRhdGlvbkNsaWVudHNbaV0tPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwg
Z2FtbWEsIGhlYWRpbmcsIGhlYWRpbmdBY2N1cmFjeSk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAg
ICAgfSk7CisjZW5kaWYKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0K
aW5kZXggNjkxY2JmODE3NjVjN2RkMTU2MzI3YmRkM2Y4YzJmMWU2NGZhYTlhNi4uZmZlMjExMGY5
YThkMTFkYTc4ZTE1ZjZjY2MxN2EyZDg5OTgwZjc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckFWS2l0Lm1tCkBAIC0yMjEsMTMgKzIyMSwxNyBAQCBwcml2YXRlOgogdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKQogewogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlz
VUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CisjZW5kaWYKICAgICAgICAgSW50UmVjdCBjbGll
bnRSZWN0ID0gZWxlbWVudFJlY3RJbldpbmRvdyhtX3ZpZGVvRWxlbWVudC5nZXQoKSk7CiAgICAg
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY2xpZW50UmVjdF0gewogICAgICAg
ICAgICAgbV9pbnRlcmZhY2UtPnNldElubGluZVJlY3QoY2xpZW50UmVjdCwgY2xpZW50UmVjdCAh
PSBJbnRSZWN0KDAsIDAsIDAsIDApKTsKICAgICAgICAgfSk7CisjaWYgVVNFKFdFQl9USFJFQUQp
CiAgICAgfSk7CisjZW5kaWYKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5k
aWYKQEAgLTIzNiwxNSArMjQwLDE5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNv
bnRleHQ6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckNvbnRleHQ6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcigpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVh
ZCgpKTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMp
LCB0aGlzLCB2aWRlb0Z1bGxzY3JlZW5MYXllciA9IHJldGFpblB0cihbbV92aWRlb0Z1bGxzY3Jl
ZW5WaWV3IGxheWVyXSldICgpIG11dGFibGUgeworI2VuZGlmCiAgICAgICAgIFt2aWRlb0Z1bGxz
Y3JlZW5MYXllciBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihXZWJDb3JlOjpDb2xv
cjo6dHJhbnNwYXJlbnQpXTsKICAgICAgICAgbV9mdWxsc2NyZWVuTW9kZWwtPnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLCBbcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXNdICgpIG11dGFibGUgewogICAgICAgICAgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzXSB7CiAgICAgICAgICAgICAgICAgbV9pbnRl
cmZhY2UtPnNldEhhc1ZpZGVvQ29udGVudExheWVyKHRydWUpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiAjZWxzZQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC0yNTMsMTUgKzI2MSwxOSBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXF1ZXN0VmlkZW9Db250ZW50
TGF5ZXIoKQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmV0dXJuVmlk
ZW9Db250ZW50TGF5ZXIoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdF
Ql9USFJFQUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9GdWxsc2NyZWVuTGF5
ZXIgPSByZXRhaW5QdHIoW21fdmlkZW9GdWxsc2NyZWVuVmlldyBsYXllcl0pXSAoKSBtdXRhYmxl
IHsKKyNlbmRpZgogICAgICAgICBbdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QmFja2dyb3VuZENv
bG9yOmNhY2hlZENHQ29sb3IoV2ViQ29yZTo6Q29sb3I6OnRyYW5zcGFyZW50KV07CiAgICAgICAg
IG1fZnVsbHNjcmVlbk1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihuaWwsIFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVj
dGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXNdIHsKICAgICAgICAgICAgICAg
ICBtX2ludGVyZmFjZS0+c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoZmFsc2UpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlm
CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC0yNjksMzEgKzI4
MSw0MSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXR1cm5WaWRl
b0NvbnRlbnRMYXllcigpCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6
OmRpZFNldHVwRnVsbHNjcmVlbigpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJU
KGlzVUlUaHJlYWQoKSk7CisjZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgdGhpc10gewogICAgICAgICBtX2ludGVyZmFjZS0+ZW50ZXJGdWxs
c2NyZWVuKCk7CiAgICAgfSk7CiAjZWxzZQorI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRo
cmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRnVs
bHNjcmVlbkxheWVyID0gcmV0YWluUHRyKFttX3ZpZGVvRnVsbHNjcmVlblZpZXcgbGF5ZXJdKV0g
KCkgbXV0YWJsZSB7CisjZW5kaWYKICAgICAgICAgW3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEJh
Y2tncm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCld
OwogICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIHRoaXNdIHsKICAgICAgICAgICAgICAgICBtX2ludGVyZmFjZS0+ZW50ZXJGdWxs
c2NyZWVuKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisjaWYgVVNFKFdFQl9USFJF
QUQpCiAgICAgfSk7CiAjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQogewogI2lmIFBMQVRGT1JNKFdB
VENIT1MpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAg
ICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10g
KCkgbXV0YWJsZSB7CisjZW5kaWYKICAgICAgICAgbV9mdWxsc2NyZWVuTW9kZWwtPndpbGxFeGl0
RnVsbHNjcmVlbigpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOwogI2VuZGlmCisjZW5k
aWYKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZGlkRXhpdEZ1
bGxzY3JlZW4oKQpAQCAtMzA0LDI1ICszMjYsMzMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgICBtX2ludGVyZmFjZS0+
Y2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB9KTsKICNlbHNlCisjaWYgVVNFKFdFQl9USFJFQUQp
CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhp
c10gKCkgbXV0YWJsZSB7CisjZW5kaWYKICAgICAgICAgbV9mdWxsc2NyZWVuTW9kZWwtPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgdGhpc10gewogICAgICAgICAgICAgICAgIG1faW50ZXJmYWNlLT5jbGVhbnVwRnVs
bHNjcmVlbigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworI2lmIFVTRShXRUJfVEhS
RUFEKQogICAgIH0pOwogI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQogeworI2lmIFVTRShXRUJf
VEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlmCiAgICAgbV9pbnRlcmZh
Y2UtPnNldFZpZGVvRnVsbHNjcmVlbk1vZGVsKG51bGxwdHIpOwogICAgIG1faW50ZXJmYWNlLT5z
ZXRWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihudWxscHRyKTsKICAgICBtX2ludGVyZmFj
ZSA9IG51bGxwdHI7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5WaWV3ID0gbmlsOwogCisjaWYgVVNF
KFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpc10geworI2VuZGlmCiAgICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT5zZXRW
aWRlb0Z1bGxzY3JlZW5MYXllcihuaWwpOwogICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+c2V0
VmlkZW9FbGVtZW50KG51bGxwdHIpOwogICAgICAgICBtX3BsYXliYWNrTW9kZWwtPnNldE1lZGlh
RWxlbWVudChudWxscHRyKTsKQEAgLTMzMiwxOCArMzYyLDI0IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkKICAgICAgICAgbV92
aWRlb0VsZW1lbnQgPSBudWxscHRyOwogCiAgICAgICAgIFttX2NvbnRyb2xsZXIgZGlkRmluaXNo
RnVsbHNjcmVlbjp0aGlzXTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUoKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJ
VGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyksIHRoaXNdICgpIG11dGFibGUgeworI2VuZGlmCiAgICAgICAgIEludFJlY3QgY2xpZW50
UmVjdCA9IGVsZW1lbnRSZWN0SW5XaW5kb3cobV92aWRlb0VsZW1lbnQuZ2V0KCkpOwogICAgICAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhp
cyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNsaWVudFJlY3RdIHsKICAgICAgICAg
ICAgIG1faW50ZXJmYWNlLT5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodHJ1ZSwgY2xpZW50UmVj
dCk7CiAgICAgICAgIH0pOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9
CiAKICNwcmFnbWEgbWFyayBQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudApAQCAtNTU1LDIxICs1
OTEsMjkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmVtb3ZlQ2xp
ZW50KFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50JgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpyZXF1ZXN0RnVsbHNjcmVlbk1vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpCiB7
CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2Vi
VGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgbW9kZSwg
ZmluaXNoZWRXaXRoTWVkaWFdIHsKKyNlbmRpZgogICAgICAgICBpZiAobV9mdWxsc2NyZWVuTW9k
ZWwpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2Rl
KG1vZGUsIGZpbmlzaGVkV2l0aE1lZGlhKTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsK
KyNlbmRpZgogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRW
aWRlb0xheWVyRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQog
ICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlmCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+
IHZpZGVvRnVsbHNjcmVlbkxheWVyID0gW21fdmlkZW9GdWxsc2NyZWVuVmlldyBsYXllcl07CiAg
ICAgW3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldFN1YmxheWVyVHJhbnNmb3JtOlt2aWRlb0Z1bGxz
Y3JlZW5MYXllciB0cmFuc2Zvcm1dXTsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywg
ZnJhbWUsIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gV1RGTW92ZSh2aWRlb0Z1bGxzY3JlZW5MYXll
cildICgpIG11dGFibGUgeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgICAgICBXZWJUaHJlYWRS
dW4oW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBmcmFtZSwg
dmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBXVEZNb3ZlKHZpZGVvRnVsbHNjcmVlbkxheWVyKV0gewor
I2VuZGlmCiAgICAgICAgICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgICAgICAgICBb
Q0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogICAgICAgICAgICAgW0NBVHJh
bnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07CkBAIC01NzksMjYgKzYyMywzNiBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRWaWRlb0xheWVyRnJhbWUo
RmxvYXRSZWN0IGZyYW1lKQogICAgICAgICAgICAgaWYgKG1fZnVsbHNjcmVlbk1vZGVsKQogICAg
ICAgICAgICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT5zZXRWaWRlb0xheWVyRnJhbWUoZnJhbWUp
OwogICAgICAgICAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICAgICAgfSk7CisjZW5kaWYKICAgICB9KTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6c2V0VmlkZW9MYXllckdyYXZpdHkoTWVkaWFQbGF5ZXJFbnVt
czo6VmlkZW9HcmF2aXR5IHZpZGVvR3Jhdml0eSkKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAg
ICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0dyYXZpdHldIHsKKyNlbmRpZgogICAgICAg
ICBpZiAobV9mdWxsc2NyZWVuTW9kZWwpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+
c2V0VmlkZW9MYXllckdyYXZpdHkodmlkZW9HcmF2aXR5KTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkK
ICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlz
VUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpcywgbW9kZV0geworI2VuZGlmCiAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5N
b2RlbCkKICAgICAgICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5n
ZWQobW9kZSk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0KIAogYm9v
bCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aGFzVmlkZW8oKSBjb25zdApAQCAt
Njg4LDIwNSArNzQyLDI4OSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpyZW1vdmVDbGllbnQoUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQmCiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnBsYXkoKQogeworI2lmIFVTRShXRUJfVEhSRUFE
KQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXNdIHsKKyNlbmRpZgogICAgICAgICBpZiAobV9w
bGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5wbGF5KCk7CisjaWYg
VVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6cGF1c2UoKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAg
IEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIodGhpcyksIHRoaXNdIHsKKyNlbmRpZgogICAgICAgICBpZiAobV9wbGF5YmFj
a01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5wYXVzZSgpOworI2lmIFVTRShX
RUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckNvbnRleHQ6OnRvZ2dsZVBsYXlTdGF0ZSgpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQp
CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10geworI2VuZGlmCiAgICAgICAgIGlmIChtX3Bs
YXliYWNrTW9kZWwpCiAgICAgICAgICAgICBtX3BsYXliYWNrTW9kZWwtPnRvZ2dsZVBsYXlTdGF0
ZSgpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnRvZ2dsZU11dGVkKCkKIHsKKyNpZiBVU0Uo
V0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4o
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSB7CisjZW5kaWYKICAgICAg
ICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKICAgICAgICAgICAgIG1fcGxheWJhY2tNb2RlbC0+dG9n
Z2xlTXV0ZWQoKTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiB2
b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRNdXRlZChib29sIG11dGVk
KQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAg
IFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIG11
dGVkXSB7CisjZW5kaWYKICAgICAgICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKICAgICAgICAgICAg
IG1fcGxheWJhY2tNb2RlbC0+c2V0TXV0ZWQobXV0ZWQpOworI2lmIFVTRShXRUJfVEhSRUFEKQog
ICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OnNldFZvbHVtZShkb3VibGUgdm9sdW1lKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAg
IEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZvbHVtZV0geworI2VuZGlmCiAgICAgICAgIGlmICht
X3BsYXliYWNrTW9kZWwpCiAgICAgICAgICAgICBtX3BsYXliYWNrTW9kZWwtPnNldFZvbHVtZSh2
b2x1bWUpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNldFBsYXlpbmdPblNlY29uZFNjcmVl
bihib29sIHZhbHVlKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhy
ZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhp
cyksIHRoaXMsIHZhbHVlXSB7CisjZW5kaWYKICAgICAgICAgaWYgKG1fcGxheWJhY2tNb2RlbCkK
ICAgICAgICAgICAgIG1fcGxheWJhY2tNb2RlbC0+c2V0UGxheWluZ09uU2Vjb25kU2NyZWVuKHZh
bHVlKTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpiZWdpblNjcnViYmluZygpCiB7CisjaWYg
VVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFk
UnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10geworI2VuZGlmCiAg
ICAgICAgIGlmIChtX3BsYXliYWNrTW9kZWwpCiAgICAgICAgICAgICBtX3BsYXliYWNrTW9kZWwt
PmJlZ2luU2NydWJiaW5nKCk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYK
IH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2NydWJiaW5n
KCkKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAg
ICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSB7
CisjZW5kaWYKICAgICAgICAgaWYgKG1fcGxheWJhY2tNb2RlbCkKICAgICAgICAgICAgIG1fcGxh
eWJhY2tNb2RlbC0+ZW5kU2NydWJiaW5nKCk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7
CisjZW5kaWYKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6c2Vl
a1RvVGltZShkb3VibGUgdGltZSwgZG91YmxlIHRvbGVyYW5jZUJlZm9yZSwgZG91YmxlIHRvbGVy
YW5jZUFmdGVyKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFk
KCkpOwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyks
IHRoaXMsIHRpbWUsIHRvbGVyYW5jZUJlZm9yZSwgdG9sZXJhbmNlQWZ0ZXJdIHsKKyNlbmRpZgog
ICAgICAgICBpZiAobV9wbGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVs
LT5zZWVrVG9UaW1lKHRpbWUsIHRvbGVyYW5jZUJlZm9yZSwgdG9sZXJhbmNlQWZ0ZXIpOworI2lm
IFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmZhc3RTZWVrKGRvdWJsZSB0aW1lKQogeworI2lmIFVTRShX
RUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHRpbWVdIHsKKyNlbmRpZgog
ICAgICAgICBpZiAobV9wbGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVs
LT5mYXN0U2Vlayh0aW1lKTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpiZWdpblNjYW5uaW5n
Rm9yd2FyZCgpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQo
KSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwg
dGhpc10geworI2VuZGlmCiAgICAgICAgIGlmIChtX3BsYXliYWNrTW9kZWwpCiAgICAgICAgICAg
ICBtX3BsYXliYWNrTW9kZWwtPmJlZ2luU2Nhbm5pbmdGb3J3YXJkKCk7CisjaWYgVVNFKFdFQl9U
SFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6YmVnaW5TY2FubmluZ0JhY2t3YXJkKCkKIHsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSB7CisjZW5kaWYKICAgICAgICAgaWYgKG1f
cGxheWJhY2tNb2RlbCkKICAgICAgICAgICAgIG1fcGxheWJhY2tNb2RlbC0+YmVnaW5TY2Fubmlu
Z0JhY2t3YXJkKCk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0KIAog
dm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogewor
I2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRo
cmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXNdIHsKKyNlbmRp
ZgogICAgICAgICBpZiAobV9wbGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01v
ZGVsLT5lbmRTY2FubmluZygpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlm
CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNlbGVjdEF1ZGlv
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAg
QVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgdGhpcywgaW5kZXhdIHsKKyNlbmRpZgogICAgICAgICBpZiAobV9w
bGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5zZWxlY3RBdWRpb01l
ZGlhT3B0aW9uKGluZGV4KTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAg
QVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgdGhpcywgaW5kZXhdIHsKKyNlbmRpZgogICAgICAgICBpZiAobV9w
bGF5YmFja01vZGVsKQogICAgICAgICAgICAgbV9wbGF5YmFja01vZGVsLT5zZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24oaW5kZXgpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlm
CiB9CiAKIGRvdWJsZSBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZHVyYXRpb24o
KSBjb25zdAogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkp
OworI2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+
ZHVyYXRpb24oKSA6IDA7CiB9CiAKIGRvdWJsZSBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6Y3VycmVudFRpbWUoKSBjb25zdAogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFT
U0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/
IG1fcGxheWJhY2tNb2RlbC0+Y3VycmVudFRpbWUoKSA6IDA7CiB9CiAKIGRvdWJsZSBWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YnVmZmVyZWRUaW1lKCkgY29uc3QKIHsKKyNpZiBV
U0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRpZgogICAgIHJl
dHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwtPmJ1ZmZlcmVkVGltZSgpIDog
MDsKIH0KIAogYm9vbCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aXNQbGF5aW5n
KCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgp
KTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwt
PmlzUGxheWluZygpIDogZmFsc2U7CiB9CiAKIGZsb2F0IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpwbGF5YmFja1JhdGUoKSBjb25zdAogeworI2lmIFVTRShXRUJfVEhSRUFEKQog
ICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWJhY2tN
b2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+cGxheWJhY2tSYXRlKCkgOiAwOwogfQogCiBSZWY8VGlt
ZVJhbmdlcz4gVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNlZWthYmxlUmFuZ2Vz
KCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgp
KTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwt
PnNlZWthYmxlUmFuZ2VzKCkgOiBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKIH0KIAogZG91YmxlIFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9k
aWZpZWRUaW1lKCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNV
SVRocmVhZCgpKTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXli
YWNrTW9kZWwtPnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSA6IDA7CiB9CiAK
IGRvdWJsZSBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6bGl2ZVVwZGF0ZUludGVy
dmFsKCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVh
ZCgpKTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9k
ZWwtPmxpdmVVcGRhdGVJbnRlcnZhbCgpIDogMDsKIH0KIAogYm9vbCBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6Y2FuUGxheUZhc3RSZXZlcnNlKCkgY29uc3QKIHsKKyNpZiBVU0Uo
V0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRpZgogICAgIHJldHVy
biBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwtPmNhblBsYXlGYXN0UmV2ZXJzZSgp
IDogZmFsc2U7CiB9CiAKIFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4gVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKCkgY29uc3QK
IHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRp
ZgogICAgIGlmIChtX3BsYXliYWNrTW9kZWwpCiAgICAgICAgIHJldHVybiBtX3BsYXliYWNrTW9k
ZWwtPmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKCk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTg5
NCwxMyArMTAzMiwxNyBAQCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+IFZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJDb250ZXh0OjphdWRpb01lZGlhU2VsZWN0aQogCiB1aW50NjRfdCBWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6YXVkaW9NZWRpYVNlbGVjdGVkSW5kZXgoKSBj
b25zdAogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwor
I2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+YXVk
aW9NZWRpYVNlbGVjdGVkSW5kZXgoKSA6IC0xOwogfQogCiBWZWN0b3I8TWVkaWFTZWxlY3Rpb25P
cHRpb24+IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpsZWdpYmxlTWVkaWFTZWxl
Y3Rpb25PcHRpb25zKCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQo
aXNVSVRocmVhZCgpKTsKKyNlbmRpZgogICAgIGlmIChtX3BsYXliYWNrTW9kZWwpCiAgICAgICAg
IHJldHVybiBtX3BsYXliYWNrTW9kZWwtPmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoKTsK
ICAgICByZXR1cm4geyB9OwpAQCAtOTA4LDMxICsxMDUwLDQxIEBAIFZlY3RvcjxNZWRpYVNlbGVj
dGlvbk9wdGlvbj4gVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmxlZ2libGVNZWRp
YVNlbGVjCiAKIHVpbnQ2NF90IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpsZWdp
YmxlTWVkaWFTZWxlY3RlZEluZGV4KCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAg
ICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9k
ZWwgPyBtX3BsYXliYWNrTW9kZWwtPmxlZ2libGVNZWRpYVNlbGVjdGVkSW5kZXgoKSA6IC0xOwog
fQogCiBib29sIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpleHRlcm5hbFBsYXli
YWNrRW5hYmxlZCgpIGNvbnN0CiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgQVNTRVJUKGlz
VUlUaHJlYWQoKSk7CisjZW5kaWYKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5
YmFja01vZGVsLT5leHRlcm5hbFBsYXliYWNrRW5hYmxlZCgpIDogZmFsc2U7CiB9CiAKIFBsYXli
YWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSBWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6ZXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdAog
eworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlm
CiAgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+ZXh0ZXJuYWxQ
bGF5YmFja1RhcmdldFR5cGUoKSA6IFRhcmdldFR5cGVOb25lOwogfQogCiBTdHJpbmcgVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZp
Y2VOYW1lKCkgY29uc3QKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRo
cmVhZCgpKTsKKyNlbmRpZgogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNr
TW9kZWwtPmV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWREZXZpY2VOYW1lKCkgOiBTdHJpbmcoKTsK
IH0KIAogYm9vbCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6d2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdAogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFT
U0VSVChpc1VJVGhyZWFkKCkpOworI2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/
IG1fcGxheWJhY2tNb2RlbC0+d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSA6IHRydWU7
CiB9CiAKQEAgLTk0MCw3ICsxMDkyLDkgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Q29udGV4dDo6d2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdAogCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRVcEZ1bGxzY3JlZW4oSFRNTFZpZGVv
RWxlbWVudCYgdmlkZW9FbGVtZW50LCBVSVZpZXcgKnZpZXcsIEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlWaWV3PiB2
aWV3UmVmID0gdmlldzsKICAgICBtX3ZpZGVvRWxlbWVudCA9ICZ2aWRlb0VsZW1lbnQ7CiAgICAg
bV9wbGF5YmFja01vZGVsID0gUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmNyZWF0
ZSgpOwpAQCAtOTU4LDcgKzExMTIsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJD
b250ZXh0OjpzZXRVcEZ1bGxzY3JlZW4oSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbAogICAgIG1f
ZnVsbHNjcmVlbk1vZGVsLT5zZXRWaWRlb0xheWVyRnJhbWUodmlkZW9MYXllckZyYW1lKTsKIAog
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50Q2xpZW50UmVjdCwgdmll
d1JlZiwgbW9kZSwgYWxsb3dzUGljdHVyZUluUGljdHVyZV0geworI2lmIFVTRShXRUJfVEhSRUFE
KQogICAgICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZjxQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdD4gc2Vzc2lvbkludGVyZmFjZSA9IFBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0OjpjcmVhdGUoKnRoaXMpOwogICAgICAgICBtX2ludGVyZmFj
ZSA9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjcmVhdGUoc2Vzc2lvbkludGVyZmFj
ZS5nZXQoKSk7CkBAIC05NzQsMTcgKzExMzAsMjMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6c2V0VXBGdWxsc2NyZWVuKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWwK
IAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZXhpdEZ1bGxzY3JlZW4o
KQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChXZWJUaHJlYWRJc0N1cnJlbnQo
KSB8fCBpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKICAgICBJbnRSZWN0IGNsaWVudFJlY3QgPSBl
bGVtZW50UmVjdEluV2luZG93KG1fdmlkZW9FbGVtZW50LmdldCgpKTsKICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHRoaXMsIGNsaWVudFJlY3RdIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICAg
ICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisjZW5kaWYKICAgICAgICAgbV9pbnRlcmZhY2UtPmV4
aXRGdWxsc2NyZWVuKGNsaWVudFJlY3QpOwogICAgIH0pOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKIHsK
KyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKKyNlbmRpZgog
ICAgIG1faW50ZXJmYWNlLT5yZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CiB9CiAKQEAg
LTEwMTMsNyArMTE3NSw5IEBAIC0gKEhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudAogCiAt
ICh2b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopdmlldyBtb2RlOihIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZQogeworI2lmIFVTRShXRUJfVEhSRUFE
KQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKICAgICBfY29udGV4dCA9IFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpjcmVhdGUoKTsKICAgICBfY29udGV4dC0+
c2V0Q29udHJvbGxlcihzZWxmKTsKICAgICBfY29udGV4dC0+c2V0VXBGdWxsc2NyZWVuKCpfdmlk
ZW9FbGVtZW50LmdldCgpLCB2aWV3LCBtb2RlKTsKQEAgLTEwMjEsMTMgKzExODUsMTcgQEAgLSAo
dm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXcgbW9kZTooSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3IKIAogLSAodm9pZClleGl0RnVsbHNjcmVlbgogeworI2lmIFVT
RShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChXZWJUaHJlYWRJc0N1cnJlbnQoKSB8fCBpc01haW5U
aHJlYWQoKSk7CisjZW5kaWYKICAgICBfY29udGV4dC0+ZXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAog
LSAodm9pZClyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuCiB7CisjaWYgVVNFKFdFQl9USFJF
QUQpCiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisjZW5kaWYKICAgICBpZiAoX2NvbnRleHQp
CiAgICAgICAgIF9jb250ZXh0LT5yZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93Lm1tCmluZGV4IDhmY2Qw
NTI3ZWM5OGU3NTMzODk4NTlhNGQxOGQ1ZGU0ZTJkZWFlYTEuLjdiMGI0NWViMDI5NjUyNzhkZGJm
ODk2ZTIyMzIyZDAwMjc5OTViMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy93YWsvV0FLV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93
YWsvV0FLV2luZG93Lm1tCkBAIC0xOTksOSArMTk5LDEzIEBAIC0gKHZvaWQpc2V0VmlzaWJsZToo
Qk9PTCl2aXNpYmxlCiAKICAgICBfdmlzaWJsZSA9IHZpc2libGU7CiAKKyNpZiBVU0UoV0VCX1RI
UkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpXQUtXaW5kb3dWaXNpYmlsaXR5
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpzZWxmIHVzZXJJbmZvOm5pbF07CiAgICAgfSk7
CisjZWxzZQorICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5v
dGlmaWNhdGlvbk5hbWU6V0FLV2luZG93VmlzaWJpbGl0eURpZENoYW5nZU5vdGlmaWNhdGlvbiBv
YmplY3Q6c2VsZiB1c2VySW5mbzpuaWxdOworI2VuZGlmCiB9CiAKIC0gKE5TU2VsZWN0aW9uRGly
ZWN0aW9uKWtleVZpZXdTZWxlY3Rpb25EaXJlY3Rpb24KQEAgLTI5Miw5ICsyOTYsMTMgQEAgLSAo
dm9pZClzZXRTY3JlZW5TY2FsZTooQ0dGbG9hdClzY2FsZQogewogICAgIF9zY3JlZW5TY2FsZSA9
IHNjYWxlOwogCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAgICAg
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlv
bk5hbWU6V0FLV2luZG93U2NyZWVuU2NhbGVEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OnNl
bGYgdXNlckluZm86bmlsXTsKICAgICB9KTsKKyNlbHNlCisgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpXQUtXaW5kb3dTY3JlZW5T
Y2FsZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6c2VsZiB1c2VySW5mbzpuaWxdOworI2Vu
ZGlmCiB9CiAKIC0gKENHRmxvYXQpc2NyZWVuU2NhbGUKQEAgLTMxNSw5ICszMjMsMTMgQEAgLSAo
Q0FMYXllciAqKXJvb3RMYXllcgogLSAodm9pZClzZW5kRXZlbnQ6KFdlYkV2ZW50ICopYW5FdmVu
dAogewogICAgIEFTU0VSVChhbkV2ZW50KTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBXZWJU
aHJlYWRSdW4oXnsKICAgICAgICAgW3NlbGYgc2VuZEV2ZW50U3luY2hyb25vdXNseTphbkV2ZW50
XTsKICAgICB9KTsKKyNlbHNlCisgICAgW3NlbGYgc2VuZEV2ZW50U3luY2hyb25vdXNseTphbkV2
ZW50XTsKKyNlbmRpZgogfQogCiAtICh2b2lkKXNlbmRFdmVudFN5bmNocm9ub3VzbHk6KFdlYkV2
ZW50ICopYW5FdmVudApAQCAtMzU4LDEyICszNzAsMTYgQEAgLSAodm9pZClzZW5kRXZlbnRTeW5j
aHJvbm91c2x5OihXZWJFdmVudCAqKWFuRXZlbnQKIAogLSAodm9pZClzZW5kTW91c2VNb3ZlRXZl
bnQ6KFdlYkV2ZW50ICopYW5FdmVudCBjb250ZW50Q2hhbmdlOihXS0NvbnRlbnRDaGFuZ2UgKilh
Q29udGVudENoYW5nZQogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1bihe
eworI2VuZGlmCiAgICAgICAgIFtzZWxmIHNlbmRFdmVudDphbkV2ZW50XTsKIAogICAgICAgICBp
ZiAoYUNvbnRlbnRDaGFuZ2UpCiAgICAgICAgICAgICAqYUNvbnRlbnRDaGFuZ2UgPSBXS09ic2Vy
dmVkQ29udGVudENoYW5nZSgpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlm
CiB9CiAKIC0gKHZvaWQpc2V0RXhwb3NlZFNjcm9sbFZpZXdSZWN0OihDR1JlY3QpZXhwb3NlZFNj
cm9sbFZpZXdSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9OZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvaW9zL05ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tCmluZGV4IDIxMDIxOTI4ZTZl
NTgyMWFiMjBiOTYyYTFhOTNlZGJiYTI0N2E0NjAuLmRmODFjMzJhODZlYzA3NDcwMDdmNGM3ZjUy
MWU0Yjg5YmFiZTdlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL05ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL05ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tCkBAIC04NCw5ICs4
NCwxMyBAQCB2b2lkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzdGFydE9ic2VydmluZygpCiAgICAg
aWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkT3B0T3V0T2ZOZXR3b3JrU3RhdGVP
YnNlcnZhdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAgbV9vYnNlcnZlciA9IGFkb3B0TlMo
W1tXZWJOZXR3b3JrU3RhdGVPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhCbG9jazpeIHsKKyNpZiBV
U0UoV0VCX1RIUkVBRCkKICAgICAgICAgV2ViVGhyZWFkUnVuKF4gewogICAgICAgICAgICAgTmV0
d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVN0YXRlU29vbigpOwogICAgICAg
ICB9KTsKKyNlbHNlCisgICAgICAgIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzaW5nbGV0b24oKS51
cGRhdGVTdGF0ZVNvb24oKTsKKyNlbmRpZgogICAgIH1dKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDMyMTVkY2U3MDU4ZDhhMTNjYjAyZGFm
NzNlY2QwN2JhZjk4ZTAwZmUuLjcyZWI4ODdlMTBhNDE5MDE0MGVhODdhMjU4M2RlMTUxY2NhNTA5
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTI4
MCw5ICsyODAsMTMgQEAgc3RhdGljIElPU0dyYWRpZW50UmVmIGdyYWRpZW50V2l0aE5hbWUoSU9T
R3JhZGllbnRUeXBlIGdyYWRpZW50VHlwZSkKIHN0YXRpYyB2b2lkIGNvbnRlbnRTaXplQ2F0ZWdv
cnlEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluZ1JlZiBu
YW1lLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewogICAgIEFTU0VSVF9VTlVTRUQo
bmFtZSwgQ0ZFcXVhbChuYW1lLCBQQUw6OmdldF9VSUtpdF9VSUNvbnRlbnRTaXplQ2F0ZWdvcnlE
aWRDaGFuZ2VOb3RpZmljYXRpb24oKSkpOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRo
cmVhZFJ1biheewogICAgICAgICBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9i
YWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CiAgICAgfSk7CisjZWxzZQorICAgIFBhZ2U6OnVwZGF0
ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKKyNlbmRp
ZgogfQogCiBSZW5kZXJUaGVtZUlPUzo6UmVuZGVyVGhlbWVJT1MoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1t
CmluZGV4IGMyZmYzNTBmNzQ1MjZlMTI1NmMxOWU0ZjUyMDg1Y2IzNTFkMjQ5NjguLjNkMTNhMDc2
NzI5MGVhMDlhYmI3NTU5OTZiY2U1NjAxZTNjZDU0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAg
LTMzNiwzOCArMzM2LDU4IEBAIC0gKGlkKWluaXRXaXRoUHJvdmlkZXI6KFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJJT1MqKXByb3ZpZGVyCiAKIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3JpemF0aW9u
R3JhbnRlZAogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheewogICAg
ICAgICBbX3Byb3ZpZGVyIGdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkdyYW50ZWRdOwogICAgIH0p
OworI2Vsc2UKKyAgICBbX3Byb3ZpZGVyIGdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkdyYW50ZWRd
OworI2VuZGlmCiB9CiAKIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3JpemF0aW9uRGVuaWVkCiB7
CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIFtfcHJv
dmlkZXIgZ2VvbG9jYXRpb25BdXRob3JpemF0aW9uRGVuaWVkXTsKICAgICB9KTsKKyNlbHNlCisg
ICAgW19wcm92aWRlciBnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWRdOworI2VuZGlmCiB9
CiAKIC0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
JiYpcG9zaXRpb24KIHsKICAgICBSZXRhaW5QdHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gd2Vi
UG9zaXRpb24gPSBhZG9wdE5TKFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10gaW5pdFdp
dGhHZW9sb2NhdGlvblBvc2l0aW9uOldURk1vdmUocG9zaXRpb24pXSk7CisjaWYgVVNFKFdFQl9U
SFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIFtfcHJvdmlkZXIgcG9zaXRpb25D
aGFuZ2VkOndlYlBvc2l0aW9uLmdldCgpXTsKICAgICB9KTsKKyNlbHNlCisgICAgW19wcm92aWRl
ciBwb3NpdGlvbkNoYW5nZWQ6d2ViUG9zaXRpb24uZ2V0KCldOworI2VuZGlmCiB9CiAKIC0gKHZv
aWQpZXJyb3JPY2N1cnJlZDooTlNTdHJpbmcgKillcnJvck1lc3NhZ2UKIHsKKyNpZiBVU0UoV0VC
X1RIUkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKICAgICAgICAgW19wcm92aWRlciBlcnJvck9j
Y3VycmVkOmVycm9yTWVzc2FnZV07CiAgICAgfSk7CisjZWxzZQorICAgIFtfcHJvdmlkZXIgZXJy
b3JPY2N1cnJlZDplcnJvck1lc3NhZ2VdOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpcmVzZXRHZW9s
b2NhdGlvbgogeworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheewogICAg
ICAgICBbX3Byb3ZpZGVyIHJlc2V0R2VvbG9jYXRpb25dOwogICAgIH0pOworI2Vsc2UKKyAgICBb
X3Byb3ZpZGVyIHJlc2V0R2VvbG9jYXRpb25dOworI2VuZGlmCiB9CiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRp
b25Db250ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Rml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KaW5kZXggMjE3YTRlZDBhODVhNmJiNDE0ZDMxOTRjYjdi
ZmFlZmRlMDM2ZDQ3YS4uZDRmNzQ2NjEwMzQwNmY2MGFiNDhiZmM1MmE4Y2ExMDM2OWEwZjc0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KQEAgLTE2NCwxMCArMTY0LDE1IEBA
IC0gKHZvaWQpb3ZlcmZsb3dTY3JvbGxQb3NpdGlvbkZvckxheWVyOihDQUxheWVyICopc2Nyb2xs
TGF5ZXIgY2hhbmdlZFRvOihDR1BvaW50CiAvLyBGSVhNRTogc2hhcmUgY29kZSB3aXRoICdzZW5k
U2Nyb2xsRXZlbnQnPwogLSAodm9pZClkaWRGaW5pc2hTY3JvbGxpbmdPclpvb21pbmcKIHsKKyNp
ZiBVU0UoV0VCX1RIUkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKICAgICAgICAgaWYgKEZyYW1l
KiBmcmFtZSA9IFtfcHJpdmF0ZS0+bV93ZWJWaWV3IF9tYWluQ29yZUZyYW1lXSkKICAgICAgICAg
ICAgIGZyYW1lLT52aWV3cG9ydE9mZnNldENoYW5nZWQoRnJhbWU6OkNvbXBsZXRlZFNjcm9sbE9m
ZnNldCk7CiAgICAgfSk7CisjZWxzZQorICAgIGlmIChGcmFtZSogZnJhbWUgPSBbX3ByaXZhdGUt
Pm1fd2ViVmlldyBfbWFpbkNvcmVGcmFtZV0pCisgICAgICAgIGZyYW1lLT52aWV3cG9ydE9mZnNl
dENoYW5nZWQoRnJhbWU6OkNvbXBsZXRlZFNjcm9sbE9mZnNldCk7CisjZW5kaWYKIH0KIAogLSAo
dm9pZClzZXRWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOihXVEY6Okhhc2hNYXA8Q0FMYXllciAq
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Vmlld3BvcnRDb25zdHJhaW50cz4+JilsYXllck1h
cCBzdGlja3lDb250YWluZXJNYXA6KGNvbnN0IFdURjo6SGFzaE1hcDxDQUxheWVyKiwgQ0FMYXll
cio+JilzdGlja3lDb250YWluZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkNhY2hlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNo
ZS5tbQppbmRleCAzYjZjZDkyM2FmZjExNWU3MzZlMjFmMjFjOTM0Nzg1MGJjMjUwMDkyLi40YTJj
MzMwZWFmMzhhOThjMWNhYWQyZWI2MTM2YjQ4ZmYyNGU0NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTEzOSw3ICsxMzksOSBAQCArICh2b2lkKWVtcHR5
SW5NZW1vcnlSZXNvdXJjZXMKICAgICAvLyBfY2xvc2VdLiBbV2ViVmlldyBfY2xvc2VdIHNjaGVk
dWxlcyBpdHMgd29yayBvbiB0aGUgV2ViVGhyZWFkLiBTbyB3ZQogICAgIC8vIHNjaGVkdWxlIHRo
aXMgbWV0aG9kIG9uIHRoZSBXZWJUaHJlYWQgYXMgd2VsbCBzbyBhcyB0byBwaWNrIHVwIGFsbCB0
aGUKICAgICAvLyBkZWFkIHJlc291cmNlcyBsZWZ0IGJlaGluZCBhZnRlciBjbG9zaW5nIHRoZSBX
ZWJWaWV3cworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheeworI2VuZGlm
CiAgICAgICAgIFdlYktpdDo6TWVtb3J5TWVhc3VyZSBtZWFzdXJlcigiW1dlYkNhY2hlIGVtcHR5
SW5NZW1vcnlSZXNvdXJjZXNdIik7CiAKICAgICAgICAgLy8gVG9nZ2xpbmcgdGhlIGNhY2hlIG1v
ZGVsIGxpa2UgdGhpcyBmb3JjZXMgdGhlIGNhY2hlIHRvIGV2aWN0IGFsbCBpdHMgaW4tbWVtb3J5
IHJlc291cmNlcy4KQEAgLTE0OCw3ICsxNTAsOSBAQCArICh2b2lkKWVtcHR5SW5NZW1vcnlSZXNv
dXJjZXMKICAgICAgICAgW1dlYlZpZXcgX3NldENhY2hlTW9kZWw6Y2FjaGVNb2RlbF07CiAKICAg
ICAgICAgV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnBydW5lTGl2ZVJlc291cmNl
cyh0cnVlKTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRpZgogfQogCiArICh2
b2lkKXNpemVPZkRlYWRSZXNvdXJjZXM6KGludCAqKXJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQppbmRleCBhZThiOWVmYjdkYWRlYzZlODE4ZWNlNzBmNjczOWEyNTQ4ZDZkYzU4
Li43M2RlMGVkOTYzOWZiMDg3ZjM0Mjk1Mzc0OGY3ODhjNDY0NzZkN2UyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQpAQCAtMjQ1NCwxMiArMjQ1NCwxNiBAQCAtICh2b2lkKXVzZQogI2lm
IEhBVkUoQVBQX0xJTktTKQogICAgIGlmIChfYXBwTGlua1VSTCAmJiBfZnJhbWUpIHsKICAgICAg
ICAgW0xTQXBwTGluayBvcGVuV2l0aFVSTDpfYXBwTGlua1VSTC5nZXQoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKSB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAg
ICAgICAgICAgICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGlmIChz
dWNjZXNzKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiByZWNlaXZlZFBvbGljeURlY2lzaW9u
OlBvbGljeUFjdGlvbjo6SWdub3JlXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIHJlY2VpdmVkUG9saWN5RGVjaXNpb246UG9saWN5QWN0aW9uOjpVc2Vd
OworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgICAgICAgICAgfSk7CisjZW5kaWYKICAgICAgICAg
fV07CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmlu
ZGV4IDJjZjcxNWUyZDkwZGZlNzY2ODQ4OGJjMTc0NTFiMTNlZGIyZTMwZjguLjAxMmQwNGIxZDlh
ZWU4ZGNiNzk4ZDFjOTVmYmJiNDg1ZDc2OGU0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50
Lm1tCkBAIC0xNzQsMjUgKzE3NCwzNyBAQCAtIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9s
b2NhdGlvbiopZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2ViVmlldwogCiAtICh2
b2lkKWFsbG93CiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CiAg
ICAgICAgIF9nZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKHRydWUpOwogICAgIH0pOworI2Vsc2UK
KyAgICBfZ2VvbG9jYXRpb24tPnNldElzQWxsb3dlZCh0cnVlKTsKKyNlbmRpZgogfQogCiAtICh2
b2lkKWRlbnkKIHsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKICAg
ICAgICAgX2dlb2xvY2F0aW9uLT5zZXRJc0FsbG93ZWQoZmFsc2UpOwogICAgIH0pOworI2Vsc2UK
KyAgICBfZ2VvbG9jYXRpb24tPnNldElzQWxsb3dlZChmYWxzZSk7CisjZW5kaWYKIH0KIAogLSAo
dm9pZClkZW55T25seVRoaXNSZXF1ZXN0CiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2Vi
VGhyZWFkUnVuKF57CisjZW5kaWYKICAgICAgICAgLy8gQSBzb2Z0IGRlbnkgZG9lcyBub3QgcHJl
dmVudCBzdWJzZXF1ZW50IHJlcXVlc3QgZnJvbSB0aGUgR2VvbG9jYXRpb24gb2JqZWN0LgogICAg
ICAgICBbc2VsZiBkZW55XTsKICAgICAgICAgX2dlb2xvY2F0aW9uLT5yZXNldElzQWxsb3dlZCgp
OworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlmCiB9CiAKIC0gKEJPT0wpc2hv
dWxkQ2xlYXJDYWNoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KaW5kZXggYTkzZGVmNjEzOTlhNWNjNTRlZjYxY2FlOWMwMzc5OTA1ODkwY2Q3Yy4uN2QxNmZj
OTIyYWQyYWIzYzg0MDEzYzExNjE3ZWIzMmNiN2IwYmIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0xMjk2LDE0ICsxMjk2LDE4IEBAIC0gKHZv
aWQpX3NhdmVWaWV3U3RhdGUKIAogLSAodm9pZClkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQKIHsK
KyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgogI2lmIEVO
QUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRX
ZWJWaWV3KHNlbGYpOwogICAgICAgICBbd2ViVmlldyBfc2V0RGV2aWNlT3JpZW50YXRpb246W1t3
ZWJWaWV3IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSBkZXZpY2VPcmllbnRhdGlvbl1dOwogI2Vu
ZGlmCiAgICAgICAgIGlmIChXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBjb3JlKHNlbGYpKQogICAg
ICAgICAgICAgZnJhbWUtPm9yaWVudGF0aW9uQ2hhbmdlZCgpOworI2lmIFVTRShXRUJfVEhSRUFE
KQogICAgIH0pOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpc2V0TmVlZHNMYXlvdXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDdiNDM5NGFl
ZjNkOTU3NzM3NGQ2ZTllZTI1OWNiZDFkZjgwZDBmYTguLmM0MjA4ZjI2MTZmNTYyYmIwZDc4YmIz
ZTVhMWMyOGUzYzc4Njk5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQpAQCAtODIwLDExICs4MjAsMTUgQEAgc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgV2ViTWFya2VkVGV4dFVwZGF0ZWROb3RpZmljYXRpb24gPSBAIldlYk1hcmtlZFRleHRV
cGRhdGUKIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2Fs
bGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1Jl
ZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKIHsKICAgICBBU1NFUlQob2JzZXJ2ZXIp
OworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheeworI2VuZGlmCiAgICAg
ICAgIFdlYkhUTUxWaWV3ICp3ZWJWaWV3ID0gKF9fYnJpZGdlIFdlYkhUTUxWaWV3ICopb2JzZXJ2
ZXI7CiAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbd2ViVmlldyBfZnJhbWVd
KSkKICAgICAgICAgICAgIGNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1h
eUhhdmVDaGFuZ2VkKCk7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggZWQwZTBkZjc5YjAzZGE2NmU4YTI5YmNlZDljZWFhOTNjZDY2NWU4Yy4uZTIwMTM1MzBlOWY1
ZTc1YTM0YTczOTYwMDVmMTJkNWZmZmQ5MzMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTc4Myw5ICsxNzgzLDEzIEBAIC0gKGlkKWluaXRTaW1w
bGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClm
cmFtZSBwcmVmCiAKICsgKHZvaWQpX3JlbGVhc2VNZW1vcnlOb3cKIHsKKyNpZiBVU0UoV0VCX1RI
UkVBRCkKICAgICBXZWJUaHJlYWRSdW4oXnsKICAgICAgICAgV2ViQ29yZTo6cmVsZWFzZU1lbW9y
eShDcml0aWNhbDo6WWVzLCBTeW5jaHJvbm91czo6WWVzKTsKICAgICB9KTsKKyNlbHNlCisgICAg
V2ViQ29yZTo6cmVsZWFzZU1lbW9yeShDcml0aWNhbDo6WWVzLCBTeW5jaHJvbm91czo6WWVzKTsK
KyNlbmRpZgogfQogCiAtICh2b2lkKV9yZXBsYWNlQ3VycmVudEhpc3RvcnlJdGVtOihXZWJIaXN0
b3J5SXRlbSAqKWl0ZW0KQEAgLTE3OTcsMTAgKzE4MDEsMTQgQEAgLSAodm9pZClfcmVwbGFjZUN1
cnJlbnRIaXN0b3J5SXRlbTooV2ViSGlzdG9yeUl0ZW0gKilpdGVtCiAKICsgKHZvaWQpd2lsbEVu
dGVyQmFja2dyb3VuZFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSloYW5kbGVy
CiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57CisjZW5kaWYKICAg
ICAgICAgW1dlYlZpZXcgX3JlbGVhc2VNZW1vcnlOb3ddOwogICAgICAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBoYW5kbGVyKTsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICB9KTsKKyNlbmRpZgogfQogCiArIChCT09MKWlzQ2hhcmFjdGVyU21hcnRSZXBsYWNl
RXhlbXB0Oih1bmljaGFyKWNoYXJhY3RlciBpc1ByZXZpb3VzQ2hhcmFjdGVyOihCT09MKWIKQEAg
LTE4MTAsMTMgKzE4MTgsMTcgQEAgKyAoQk9PTClpc0NoYXJhY3RlclNtYXJ0UmVwbGFjZUV4ZW1w
dDoodW5pY2hhciljaGFyYWN0ZXIgaXNQcmV2aW91c0NoYXJhY3RlcjooQk8KIAogLSAodm9pZCl1
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVTaGVldHMKIHsKKyNpZiBVU0UoV0VCX1RIUkVB
RCkKICAgICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgogICAgICAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgRG9jdW1lbnQgKmRvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCk7CiAgICAgICAgICAgICBpZiAoZG9jdW1lbnQpCiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAg
ICB9CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgfSk7CisjZW5kaWYKIH0KICNlbmRpZgogCkBA
IC0yMTU1LDcgKzIxNjcsOSBAQCAtIChCT09MKV9pc0Nsb3NlZAogCiAtICh2b2lkKV9kaXNwYXRj
aFVubG9hZEV2ZW50CiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57
CisjZW5kaWYKICAgICAgICAgV2ViRnJhbWUgKm1haW5GcmFtZSA9IFtzZWxmIG1haW5GcmFtZV07
CiAgICAgICAgIEZyYW1lICpjb3JlTWFpbkZyYW1lID0gY29yZShtYWluRnJhbWUpOwogICAgICAg
ICBpZiAoY29yZU1haW5GcmFtZSkgewpAQCAtMjE2Myw3ICsyMTc3LDkgQEAgLSAodm9pZClfZGlz
cGF0Y2hVbmxvYWRFdmVudAogICAgICAgICAgICAgaWYgKGRvY3VtZW50KQogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKICAgICAgICAgfQorI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOworI2VuZGlm
CiB9CiAKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZUF0U2VsZWN0aW9uU3RhcnQK
QEAgLTIzMTIsOCArMjMyOCwxMCBAQCAtICh2b2lkKV9jbG9zZQogCiAgICAgW3NlbGYgX2NsZWFy
RGVsZWdhdGVzXTsKIAorI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIC8vIEZpeCBmb3IgcHJvYmxl
bXMgc3VjaCBhcyA8cmRhcjovL3Byb2JsZW0vNTc3NDU4Nz4gQ3Jhc2ggY2xvc2luZyB0YWIgaW4g
V2ViQ29yZTo6RnJhbWU6OnBhZ2UoKSBmcm9tIC1bV2ViQ29yZUZyYW1lQnJpZGdlIHBhdXNlVGlt
ZW91dHNdCiAgICAgV2ViVGhyZWFkUnVuKF57CisjZW5kaWYKICNlbmRpZiAgICAgICAgICAgIAog
CiAgICAgaWYgKCFfcHJpdmF0ZSB8fCBfcHJpdmF0ZS0+Y2xvc2VkKQpAQCAtMjQxOSw3ICsyNDM3
LDcgQEAgLSAodm9pZClfY2xvc2UKICAgICAgICAgW1dlYkNhY2hlIHNldERpc2FibGVkOllFU107
CiAgICAgfQogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBVU0UoV0VCX1RIUkVBRCkKICAgICAvLyBGaXggZm9yIHByb2JsZW1zIHN1
Y2ggYXMgPHJkYXI6Ly9wcm9ibGVtLzU3NzQ1ODc+IENyYXNoIGNsb3NpbmcgdGFiIGluIFdlYkNv
cmU6OkZyYW1lOjpwYWdlKCkgZnJvbSAtW1dlYkNvcmVGcmFtZUJyaWRnZSBwYXVzZVRpbWVvdXRz
XQogICAgIH0pOwogI2VuZGlmICAgICAgICAgICAgCkBAIC0yNzkyLDE0ICsyODEwLDE4IEBAIC0g
KHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgfSBlbHNlIHsKKyNp
ZiBVU0UoV0VCX1RIUkVBRCkKICAgICAgICAgV2ViVGhyZWFkUnVuKF57CisjZW5kaWYKICAgICAg
ICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHByZWZzIG9iamVjdCBoYXMgYWxyZWFk
eSBjaGFuZ2VkIGJlZm9yZSB0aGUgaW52b2NhdGlvbiBjb3VsZCBiZSBjYWxsZWQKICAgICAgICAg
ICAgIC8vIG9uIHRoZSB3ZWIgdGhyZWFkLiBUaGlzIGlzIG5vdCBwb3NzaWJsZSBvbiBUT1Qgd2hp
Y2ggaXMgd2h5IHRoZXkgaGF2ZSBhIHNpbXBsZSBBU1NFUlQuCiAgICAgICAgICAgICBXZWJQcmVm
ZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSAoV2ViUHJlZmVyZW5jZXMgKilbbm90aWZpY2F0aW9uIG9i
amVjdF07CiAgICAgICAgICAgICBpZiAocHJlZmVyZW5jZXMgIT0gW3NlbGYgcHJlZmVyZW5jZXNd
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIFtzZWxmIF9wcmVmZXJlbmNl
c0NoYW5nZWQ6cHJlZmVyZW5jZXNdOworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgICAgICB9KTsK
KyNlbmRpZgogICAgIH0KICNlbmRpZgogfQpAQCAtNDM1OSw5ICs0MzgxLDE0IEBAIC0gKHZvaWQp
X3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0SW5XZWJUaHJlYWQ6KENHUmVjdClyZWN0
IHN5bmNocm9uaXplOihCCiAgICAgfQogICAgIGlmICghc3luY2hyb25pemUpCiAgICAgICAgIHJl
dHVybjsKKworI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheewogICAgICAg
ICBbc2VsZiBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF07CiAgICAg
fSk7CisjZWxzZQorICAgIFtzZWxmIF9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MYXlv
dXRSZWN0XTsKKyNlbmRpZgogfQogCiAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdDooQ0dSZWN0KXJlY3QKQEAgLTY0NDEsMTEgKzY0NjgsMTEgQEAgLSAoQk9PTClnb0Jh
Y2sKICAgICBpZiAoIV9wcml2YXRlLT5wYWdlKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBpZiAoV2Vi
VGhyZWFkSXNDdXJyZW50KCkgfHwgIVdlYlRocmVhZElzRW5hYmxlZCgpKQogI2VuZGlmCiAgICAg
cmV0dXJuIF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmdvQmFjaygpOwotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgV2ViVGhyZWFkUnVuKF57
CiAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmdvQmFjaygpOwogICAgIH0p
OwpAQCAtNjQ1OSwxMSArNjQ4NiwxMSBAQCAtIChCT09MKWdvRm9yd2FyZAogICAgIGlmICghX3By
aXZhdGUtPnBhZ2UpCiAgICAgICAgIHJldHVybiBOTzsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgaWYgKFdlYlRocmVhZElzQ3VycmVudCgpIHx8
ICFXZWJUaHJlYWRJc0VuYWJsZWQoKSkKICNlbmRpZgogICAgIHJldHVybiBfcHJpdmF0ZS0+cGFn
ZS0+YmFja0ZvcndhcmQoKS5nb0ZvcndhcmQoKTsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIFVTRShXRUJfVEhSRUFEKQogICAgIFdlYlRocmVhZFJ1biheewogICAgICAgICBfcHJpdmF0
ZS0+cGFnZS0+YmFja0ZvcndhcmQoKS5nb0ZvcndhcmQoKTsKICAgICB9KTsKQEAgLTc0MTQsNyAr
NzQ0MSw3IEBAICsgKFdlYkNhY2hlTW9kZWwpX21heENhY2hlTW9kZWxJbkFueUluc3RhbmNlCiAK
ICsgKHZvaWQpX2NhY2hlTW9kZWxDaGFuZ2VkTm90aWZpY2F0aW9uOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdFQl9U
SFJFQUQpCiAgICAgLy8gVGhpcyBuZWVkcyB0byBoYXBwZW4gb24gdGhlIFdlYiBUaHJlYWQKICAg
ICBXZWJUaHJlYWRSdW4oXnsKICNlbmRpZgpAQCAtNzQyNiw3ICs3NDUzLDcgQEAgKyAodm9pZClf
Y2FjaGVNb2RlbENoYW5nZWROb3RpZmljYXRpb246KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiAgICAgICAgIFtzZWxmIF9zZXRDYWNoZU1vZGVsOmNhY2hlTW9kZWxdOwogICAgIGVsc2Ug
aWYgKGNhY2hlTW9kZWwgPCBbc2VsZiBfY2FjaGVNb2RlbF0pCiAgICAgICAgIFtzZWxmIF9zZXRD
YWNoZU1vZGVsOnN0ZDo6bWF4KFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10g
Y2FjaGVNb2RlbF0sIFtzZWxmIF9tYXhDYWNoZU1vZGVsSW5BbnlJbnN0YW5jZV0pXTsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOwogI2VuZGlm
CiB9CkBAIC03NTczLDcgKzc2MDAsNyBAQCAtIChJQkFjdGlvbilnb0ZvcndhcmQ6KGlkKXNlbmRl
cgogCiAtIChJQkFjdGlvbilzdG9wTG9hZGluZzooaWQpc2VuZGVyCiB7Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBpZiAoV2ViVGhyZWFkTm90Q3Vy
cmVudCgpKSB7CiAgICAgICAgIF9wcml2YXRlLT5pc1N0b3BwaW5nID0gdHJ1ZTsKICAgICAgICAg
V2ViVGhyZWFkU2V0U2hvdWxkWWllbGQoKTsKQEAgLTc1ODIsNyArNzYwOSw3IEBAIC0gKElCQWN0
aW9uKXN0b3BMb2FkaW5nOihpZClzZW5kZXIKICAgICAgICAgX3ByaXZhdGUtPmlzU3RvcHBpbmcg
PSBmYWxzZTsKICNlbmRpZgogICAgIFtbc2VsZiBtYWluRnJhbWVdIHN0b3BMb2FkaW5nXTsKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIH0pOwogI2Vu
ZGlmCiB9CkBAIC03NTkwLDExICs3NjE3LDEzIEBAIC0gKElCQWN0aW9uKXN0b3BMb2FkaW5nOihp
ZClzZW5kZXIKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogLSAodm9pZClzdG9wTG9hZGluZ0Fu
ZENsZWFyCiB7CisjaWYgVVNFKFdFQl9USFJFQUQpCiAgICAgaWYgKFdlYlRocmVhZE5vdEN1cnJl
bnQoKSAmJiAhV2ViVGhyZWFkSXNMb2NrZWQoKSkgewogICAgICAgICBfcHJpdmF0ZS0+aXNTdG9w
cGluZyA9IHRydWU7CiAgICAgICAgIFdlYlRocmVhZFNldFNob3VsZFlpZWxkKCk7CiAgICAgfQog
ICAgIFdlYlRocmVhZFJ1biheeworI2VuZGlmCiAgICAgICAgIF9wcml2YXRlLT5pc1N0b3BwaW5n
ID0gZmFsc2U7CiAKICAgICAgICAgV2ViRnJhbWUgKmZyYW1lID0gW3NlbGYgbWFpbkZyYW1lXTsK
QEAgLTc2MDksMTcgKzc2MzgsMTkgQEAgLSAodm9pZClzdG9wTG9hZGluZ0FuZENsZWFyCiAgICAg
ICAgIFttYWluRnJhbWVWaWV3IF9zZXREb2N1bWVudFZpZXc6cGxhaW5XaGl0ZVZpZXddOwogICAg
ICAgICBbcGxhaW5XaGl0ZVZpZXcgc2V0TmVlZHNEaXNwbGF5OllFU107CiAgICAgICAgIFtwbGFp
bldoaXRlVmlldyByZWxlYXNlXTsKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKKyNlbmRp
ZgogfQogI2VuZGlmCiAKIC0gKElCQWN0aW9uKXJlbG9hZDooaWQpc2VuZGVyCiB7Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBXZWJUaHJlYWRSdW4o
XnsKICNlbmRpZiAgICAgICAgICAgIAogICAgIFtbc2VsZiBtYWluRnJhbWVdIHJlbG9hZF07Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICB9KTsKICNl
bmRpZiAgICAgICAgICAgIAogfQpAQCAtMTAyNzksMTEgKzEwMzEwLDExIEBAIHZvaWQgV2ViSW5z
dGFsbE1lbW9yeVByZXNzdXJlSGFuZGxlcih2b2lkKQogICAgICAgICBzdGQ6OmNhbGxfb25jZShv
bmNlRmxhZywgW10gewogICAgICAgICAgICAgYXV0byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0g
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKTsKICAgICAgICAgICAgIG1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFtdIChDcml0aWNhbCBjcml0aWNhbCwg
U3luY2hyb25vdXMgc3luY2hyb25vdXMpIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lm
IFVTRShXRUJfVEhSRUFEKQogICAgICAgICAgICAgICAgIFdlYlRocmVhZFJ1biheewogI2VuZGlm
CiAgICAgICAgICAgICAgICAgV2ViQ29yZTo6cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hy
b25vdXMpOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKFdFQl9USFJFQUQpCiAg
ICAgICAgICAgICAgICAgfSk7CiAjZW5kaWYKICAgICAgICAgICAgIH0pOwo=
</data>
<flag name="review"
          id="376593"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>