<?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>173366</bug_id>
          
          <creation_ts>2017-06-14 08:34:06 -0700</creation_ts>
          <short_desc>[iOS DnD] Upstream iOS drag and drop implementation into OpenSource WebKit</short_desc>
          <delta_ts>2017-06-16 20:13:36 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1319130</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-14 08:34:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/32767014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320173</commentid>
    <comment_count>1</comment_count>
      <attachid>313134</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-16 14:26:58 -0700</bug_when>
    <thetext>Created attachment 313134
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320193</commentid>
    <comment_count>2</comment_count>
      <attachid>313143</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-16 15:09:45 -0700</bug_when>
    <thetext>Created attachment 313143
Attempt to fix iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320198</commentid>
    <comment_count>3</comment_count>
      <attachid>313143</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-16 15:20:37 -0700</bug_when>
    <thetext>Comment on attachment 313143
Attempt to fix iOS build

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

This is half reviewed (the new bits) half rubber stamped (the existing code).

&gt; Source/WebCore/Configurations/FeatureDefines.xcconfig:256
&gt; +FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS3_TEXT) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOSNIFF) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_RTC) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT) $(ENABLE_DRAG_SUPPORT) $(ENABLE_DATA_INTERACTION);

This is sorted... please keep it that way!.

&gt; Source/WebCore/platform/mac/DragDataMac.mm:110
&gt; +    return String(kUTTypeTIFF);

Can we use the UTTypes ones on macOS too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320217</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-16 15:54:45 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 313143 [details]
&gt; Attempt to fix iOS build
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=313143&amp;action=review
&gt; 
&gt; This is half reviewed (the new bits) half rubber stamped (the existing code).
&gt; 
&gt; &gt; Source/WebCore/Configurations/FeatureDefines.xcconfig:256
&gt; &gt; +FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CSS3_TEXT) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOSNIFF) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_RTC) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT) $(ENABLE_DRAG_SUPPORT) $(ENABLE_DATA_INTERACTION);
&gt; 
&gt; This is sorted... please keep it that way!.

Whoops, good catch -- fixed!

&gt; 
&gt; &gt; Source/WebCore/platform/mac/DragDataMac.mm:110
&gt; &gt; +    return String(kUTTypeTIFF);
&gt; 
&gt; Can we use the UTTypes ones on macOS too?

For some† of these, yes! Our drag and drop implementation on Mac uses NSPasteboardType*. However, in AppKit, NSPasteboardTypes mirror CoreServices types (e.g. NSPasteboardTypeHTML is @&quot;public.html&quot;) and it looks like it has been this way for a long time now (way older than the oldest build we&apos;ll be supporting, so we should be OK here). However, I&apos;d like to do this as a separate followup to avoid any potential unwanted changes.



† apparently, NSURLPboardType is &quot;Apple URL pasteboard type&quot;, which is very different from &quot;public.url&quot;. Also, for stringPasteboardType(), we return kUTTypeText (&quot;public.text&quot;) on iOS, which has been our behavior for a long time, but is wrong; I&apos;ll fix this in &lt;https://bugs.webkit.org/show_bug.cgi?id=173317&gt;. On Mac, the same thing returns &quot;public.utf8-plain-text&quot;, which is much more reasonable, and is what we should do on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320244</commentid>
    <comment_count>5</comment_count>
      <attachid>313158</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-16 16:54:59 -0700</bug_when>
    <thetext>Created attachment 313158
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320264</commentid>
    <comment_count>6</comment_count>
      <attachid>313158</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-16 17:33:27 -0700</bug_when>
    <thetext>Comment on attachment 313158
Patch for landing

Clearing flags on attachment: 313158

Committed r218433: &lt;http://trac.webkit.org/changeset/218433&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313134</attachid>
            <date>2017-06-16 14:26:58 -0700</date>
            <delta_ts>2017-06-16 15:09:43 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-173366-20170616142657.patch</filename>
            <type>text/plain</type>
            <size>169702</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ODEwNmFhYmY0YjUzMDg5NTRjZjhiMzFlOTI3NzViNzNjNzI3ZDE5Li5lMTYyZjA3MGVkNTc0NjQ4
MWU5NWI0M2QzNDI5YWJmZjM3N2NkNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TIERuRF0gVXBzdHJlYW0gaU9TIGRyYWcgYW5kIGRyb3AgaW1w
bGVtZW50YXRpb24gaW50byBPcGVuU291cmNlIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMjc2NzAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2UgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gYW5kIEVOQUJMRV9EUkFHX1NV
UFBPUlQgdG8gRmVhdHVyZURlZmluZXMueGNjb25maWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNy0wNi0xNSAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgSlNSdW5Mb29wVGltZXIgcmVnaXN0
cnkgaW4gVk0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IDc4ODRlMDNiZWU4ZDNmMDdjM2Y4NWExMTYyNzc3ZWJiOTUzMzE2NWIu
LjExNWYzNmEyZjA4YTAxOTIwZDgwMWQ0NzQ3YTllYzA4ZDQ2ZWRiNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBkcmFnIGFuZCBkcm9wIGltcGxlbWVu
dGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI3
NjcwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgYXMgMSBieSBkZWZhdWx0IGFuZCAwIGZvciBpT1Ms
IGFuZCBkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gYXMgMCBieSBkZWZhdWx0LgorICAg
ICAgICBUaGVzZSBhcmUgb3ZlcnJpZGRlbiB0byBib3RoIGJlIDEgZm9yIGlPUyAxMSsgaW4gdGhl
IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIHdpdGhpbiBlYWNoIGluZGl2aWR1YWwgcHJvamVjdC4K
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA2LTE1ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHR5cG8gaW4gWFBDU1BJLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkNzI0MmVlMWNiYjRhYjg4YmUwMzFiM2RhNjI3NzdkMzZjNDk0Yjg0Li4zZTU5NWM3
OGUyMDFjYTczNGJmOWE1ODA3NWMwMDIzN2Y4OTcxNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjEgQEAKKzIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBkcmFnIGFuZCBkcm9wIGltcGxlbWVu
dGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI3
NjcwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZXMgYWxsIGRyYWcgYW5kIGRyb3AgbG9naWMgcHJldmlvdXNseSBoaWRkZW4gYmVoaW5kIFdl
YktpdEFkZGl0aW9ucyBpbnRvIHRoZSBvcGVuIHNvdXJjZSByZXBvc2l0b3J5LCBhbG9uZworICAg
ICAgICB3aXRoIHVuaXQgdGVzdCBwYWdlcyBpbiBUZXN0V2ViS2l0QVBJLiBBbHNvIHJlbW92ZXMg
YWxsICNpbmNsdWRlcyBhbmQgI2ltcG9ydHMgb2YgZHJhZ2dpbmctcmVsYXRlZCBmaWxlcyBpbgor
ICAgICAgICBXZWJLaXRBZGRpdGlvbnMgZnJvbSB0aGUgb3BlbiBzb3VyY2UgcmVwb3NpdG9yeS4K
KworICAgICAgICBUaGlzIGluaXRpYWwgdXBzdHJlYW1pbmcgcGhhc2UgaXMgb25seSBjb25jZXJu
ZWQgd2l0aCBtb3ZpbmcgY29kZSBvdXQgb2YgV2ViS2l0QWRkaXRpb25zLCBhbmQgYXR0ZW1wdHMg
dG8KKyAgICAgICAgcHJlc2VydmUgdGhlIGNvZGUgYXMtaXMsIHdpdGggdGhlIGV4Y2VwdGlvbiBv
ZiB0cml2aWFsIHN0eWxlIGNoYW5nZXMgc28gdGhhdCB0aGUgb3BlbiBzb3VyY2UgbGludGVyIHBh
c3Nlcy4KKyAgICAgICAgRnV0dXJlIHBhdGNoZXMgd2lsbCByZW1vdmUgdGhlIERBVEFfSU5URVJB
Q1RJT04gZmVhdHVyZSBmbGFnIGFsdG9nZXRoZXIgYW5kIHVub2JzY3VyZSBhbGwgdmFyaWFibGUg
YW5kIGZ1bmN0aW9uCisgICAgICAgIG5hbWVzIHJlZmVyZW5jaW5nICJkYXRhIGludGVyYWN0aW9u
Ii4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IgZnJvbSB0aGUgaW50ZXJuYWwgYnVp
bGQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9p
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW06CisgICAgICAgIChX
ZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJh
Z0ltYWdlRm9yTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VJY29uRm9y
Q2FjaGVkSW1hZ2VGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUFkanVzdERy
YWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURy
YWdJbWFnZUZvclNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXNzb2x2ZURyYWdJbWFn
ZVRvRnJhY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6UGFzdGVib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFn
RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJ0ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJp
bmdQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp1cmxQYXN0ZWJvYXJkVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpodG1sUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZQYXN0ZWJvYXJk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdE
YXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChydGZQYXN0ZWJvYXJkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgIChydGZkUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoc3RyaW5n
UGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAodXJsUGFzdGVib2FyZFR5cGUpOiBE
ZWxldGVkLgorICAgICAgICAoaHRtbFBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAg
KGNvbG9yUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAocGRmUGFzdGVib2FyZFR5
cGUpOiBEZWxldGVkLgorICAgICAgICAodGlmZlBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKwog
MjAxNy0wNi0xNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViS2l0IGRvZXMgbm90IGhvbm9yIGNsb3NlZCBjYXB0aW9uIHN0cm9rZSB3aWR0aC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDU3YTI4ZTQxZWExNTkyY2NkZjljZTUyNDMzNDEzNGIxYWIzYWY3
MTQuLmY4ZjE5NjIwMjM1ZjEzMzQ0ZGRmZTEzZmUzYzBlYmIwOWE1NWMxNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJh
ZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiBhbmQg
RU5BQkxFX0RSQUdfU1VQUE9SVCB0byBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE3LTA2LTEw
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0ZWQgcjIx
ODA1NiBiZWNhdXNlIGl0IG1hZGUgdGhlIElERSByZWluZGV4IGNvbnN0YW50bHkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMWUwMWNhMmQwNzgxYjkzYzA3ZGY2ZmZiMzFjMmZiMDhhYTIzZTRjZS4uZDcz
MWU0ZGZmYzU0YWQ2M2Q5MmYzOTcxMTlkOGRkODFlNjViMmVhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJv
cCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgcGllY2VzIG9mIGlPUyBXZWJLaXQxIGRyYWcgYW5kIGRyb3AgaW1wbGVt
ZW50YXRpb24gaW50byBPcGVuU291cmNlLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6
dXNlTGVnYWN5RHJhZ0NsaWVudCk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9y
bURyYWdEZXN0aW5hdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpkcmFnU291
cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OndpbGxQZXJm
b3JtRHJhZ1NvdXJjZUFjdGlvbik6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcp
OgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6YmVnaW5EcmFnKToKKyAgICAgICAgKFdlYkRyYWdD
bGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50
OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OmRp
ZENvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfc2V0RGF0YUludGVyYWN0aW9uRGF0YTp0ZXh0SW5kaWNhdG9yOmF0Q2xp
ZW50UG9zaXRpb246YW5jaG9yUG9pbnQ6YWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9n
ZXREYXRhSW50ZXJhY3Rpb25EYXRhXSk6CisgICAgICAgICgtW1dlYlZpZXcgZHJhZ0RhdGFGb3JT
ZXNzaW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9l
bnRlcmVkRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF91cGRhdGVkRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0
aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9leGl0ZWREYXRhSW50ZXJhY3Rpb246Y2xpZW50
Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3BlcmZvcm1EYXRhSW50
ZXJhY3Rpb246Y2xpZW50Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjpjbGllbnQ6Z2xvYmFsOm9wZXJhdGlvbjpdKToK
KyAgICAgICAgKC1bV2ViVmlldyBfZW5kZWREYXRhSW50ZXJhY3Rpb246Z2xvYmFsOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF9kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25dKToKKyAgICAg
ICAgKGZsb2F0UmVjdHNGb3JDR1JlY3RBcnJheSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlZp
ZXcgX2NyZWF0ZUltYWdlV2l0aFBsYXR0ZXJGb3JJbWFnZTpib3VuZGluZ1JlY3Q6Y29udGVudFNj
YWxlRmFjdG9yOmNsaXBwaW5nUmVjdHM6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAg
ICgtW1dlYlZpZXdQcml2YXRlIGRlYWxsb2NdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmg6CisKIDIwMTctMDYtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPUyBEbkRdIFtXSzFdIERyb3BwaW5nIGxpbmtzIG9udG8gVUlX
ZWJWaWV3cyBzaG91bGQgbm90IHRyaWdnZXIgbmF2aWdhdGlvbiBieSBkZWZhdWx0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNWU5NjU3NzBhMzg0N2Y2NGY2YzRhNjkwOGI3YjViMTcyOWVmMmU1Zi4uNTg3YjljOTVm
ODA0ZDYzZTNlMDdmMGUyYmZiZTk2MGM0Nzk3NWI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1
IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRh
dGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzY3
MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgcGllY2VzIG9mIGlPUyBXZWJLaXQyIGRyYWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gaW50
byBPcGVuU291cmNlLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNl
ZERhdGFGb3JJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJvbWlz
ZWREYXRhRm9yQXR0YWNobWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
RHJhZ0NhcmV0UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbToKKyAgICAgICAgKGxvbmdQcmVzc0FjdGlvbkRlbGF5QWZ0ZXJMaWZ0KToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyB3ZWJWaWV3VUlEZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHNldHVwRGF0YUludGVyYWN0aW9uRGVsZWdhdGVzXSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgdGVhcmRvd25EYXRhSW50ZXJhY3Rpb25EZWxlZ2F0ZXNdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6d2l0aEluZGlj
YXRvckRhdGE6YXRDbGllbnRQb3NpdGlvbjphbmNob3JQb2ludDphY3Rpb246XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDpd
KToKKyAgICAgICAgKHVpSW1hZ2VGb3JJbWFnZSk6CisgICAgICAgIChzaG91bGRVc2VUZXh0SW5k
aWNhdG9yVG9DcmVhdGVQcmV2aWV3Rm9yRHJhZ0FjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZHJhZ1ByZXZpZXdGb3JJbWFnZTpmcmFtZUluUm9vdFZpZXdDb29yZGluYXRlczpjbGlw
cGluZ1JlY3RzSW5GcmFtZUNvb3JkaW5hdGVzOmJhY2tncm91bmRDb2xvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBkcmFnUHJldmlld0ZvckN1cnJlbnREYXRhSW50ZXJhY3Rpb25TdGF0
ZV0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1EZWZlcnJlZEFjdGlvbkF0RHJh
Z09yaWdpbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhbmNlbERlZmVycmVkQWN0aW9u
QXREcmFnT3JpZ2luXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29tcHV0ZUNsaWVudEFu
ZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOm91dENsaWVudFBvaW50Om91dEdsb2JhbFBvaW50
Ol0pOgorICAgICAgICAoZHJvcE9wZXJhdGlvbkZvcldlYkNvcmVEcmFnT3BlcmF0aW9uKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnRGF0YUZvckRyb3BTZXNzaW9uOmRyYWdEZXN0aW5h
dGlvbkFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwRHJhZ1NvdXJj
ZVNlc3Npb25TdGF0ZV0pOgorICAgICAgICAoZXh0cmFjdEl0ZW1Qcm92aWRlcnNGcm9tRHJhZ0l0
ZW1zKToKKyAgICAgICAgKGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9uKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29u
dHJvbGxlck9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfdHJhbnNpdGlv
bkRyYWdQcmV2aWV3VG9JbWFnZUlmTmVjZXNzYXJ5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9kaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q6Y3VycmVudFJlY3Q6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RyYWdEZXN0aW5hdGlvbkFjdGlvbkZvckRyb3BTZXNz
aW9uOl0pOgorICAgICAgICAocG9zaXRpb25JbmZvcm1hdGlvbk1heVN0YXJ0RGF0YUludGVyYWN0
aW9uKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50RHJhZ09yRHJvcFNlc3Npb25d
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVGb3JT
ZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJhZ0ludGVy
YWN0aW9uOml0ZW1zRm9yQmVnaW5uaW5nU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjpwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06c2Vzc2lvbjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246c2Vzc2lvbldpbGxC
ZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjpz
ZXNzaW9uOmRpZEVuZFdpdGhPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
ZHJhZ0ludGVyYWN0aW9uOnByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTp3aXRoRGVmYXVsdDpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjppdGVtOndpbGxB
bmltYXRlQ2FuY2VsV2l0aEFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRy
b3BJbnRlcmFjdGlvbjpjYW5IYW5kbGVTZXNzaW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hcGlfZHJvcEludGVyYWN0aW9uOnNlc3Npb25EaWRFbnRlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfYXBpX2Ryb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkVXBkYXRlOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkRXhpdDpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcm9wSW50ZXJhY3Rpb246cGVyZm9ybURyb3A6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJvcEludGVyYWN0aW9uOnByZXZpZXdGb3JE
cm9wcGluZ0l0ZW06d2l0aERlZmF1bHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJv
cEludGVyYWN0aW9uOnNlc3Npb25EaWRFbmQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lv
bkRpZEVuZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2ltdWxhdGVXaWxsQmVnaW5E
YXRhSW50ZXJhY3Rpb25XaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9z
aW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOmNvbXBsZXRpb246XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydENHSW1hZ2VUb0JpdG1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRy
YWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRyYWdDbGllbnQ6OmRpZENvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJE
cmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KToKKwogMjAxNy0wNi0xNiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11b
V1BFXSBSZW1vdmUgV0tDb29raWVNYW5hZ2VyU291cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVjMGQ1NTNlMTVk
ZTU0ZTY1NTM3M2Y4YTNhZDFiNzMxZjA2NzkxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTI0OCw0ICsyNDgsMTAgQEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfID0gJChF
TkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRT
X0lGX05PVF9OTyA9IEVOQUJMRV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFUSU9OX0ZP
TlRTX0lGX05PVF9ZRVMgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExF
X1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FW
Rl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNf
UEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVM
XzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBP
U0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFH
RV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBM
RVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5B
QkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FS
RF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9T
RVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9O
T1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxF
X1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQ
RUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVT
SVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hf
SUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9O
X0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJ
REVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxF
X1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZ
KSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5B
QkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfRFJB
R19TVVBQT1JUID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2Rr
PWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfRFJBR19TVVBQT1JU
W3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElP
TjsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RS
QU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxF
UkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxF
X0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xF
VkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19U
RVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEp
ICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5B
QkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNP
TVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlC
T0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMp
ICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAk
KEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFC
TEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJM
RV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9J
TlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVS
X0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5U
SEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVO
QUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFD
X1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VN
QkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQo
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVf
RFJBR19TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4
IDE3MTdjMzZmYzRjODgxMzEzYzliZWMxNGU3ZjBmYWI0OGZiZjRhZjIuLjUwMDQwNzdhNTZhMmYy
YWUzNTA3YzU0ZGY1ZTgyODBjZWFiODEwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNzExLDEwICs3MTEs
NiBAQAogLyogSW5jbHVkZSBmZWF0dXJlIG1hY3JvcyAqLwogI2luY2x1ZGUgPHd0Zi9GZWF0dXJl
RGVmaW5lcy5oPgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVk
ZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5kaWYKLQog
I2lmIE9TKFdJTkRPV1MpCiAjZGVmaW5lIFVTRV9TWVNURU1fTUFMTE9DIDEKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCA3ODQ3NjU3NDliZDBlNmY1NTRjZDVmYmU5MTNmNGUxOWI5ODBjZGQwLi5lYzBk
NTUzZTE1ZGU1NGU2NTUzNzNmOGEzYWQxYjczMWYwNjc5MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjQ4
LDQgKzI0OCwxMCBAQCBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF8gPSAkKEVOQUJMRV9W
QVJJQVRJT05fRk9OVFNfSUZfTk9UX05PKTsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9U
X05PID0gRU5BQkxFX1ZBUklBVElPTl9GT05UUzsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZf
Tk9UX1lFUyA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NF
U1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAk
KEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcp
ICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVS
U19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05U
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQo
RU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9T
X0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQp
ICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVf
QVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
Q19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJF
KSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04p
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxF
X1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElD
X1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikg
JChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFf
UVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykg
JChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChF
TkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xP
QURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMp
ICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9P
TEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVX
X01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJf
U09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9EUkFHX1NVUFBP
UlQgPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25l
b3MxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlw
aG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT05bc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT05bc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfREFU
QV9JTlRFUkFDVElPTjsKKworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JN
UykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9P
VkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NB
UFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JF
R0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklM
VEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9K
SVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NP
REVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBU
VVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJ
T04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05J
RkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVC
TElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RP
UikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykg
JChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09O
X0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9O
VFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9f
VE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VC
X0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9X
RUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVf
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9EUkFHX1NV
UFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVjMGQ1NTNlMTVkZTU0
ZTY1NTM3M2Y4YTNhZDFiNzMxZjA2NzkxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI0OCw0
ICsyNDgsMTAgQEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfID0gJChFTkFCTEVfVkFS
SUFUSU9OX0ZPTlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9O
TyA9IEVOQUJMRV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05P
VF9ZRVMgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNT
SU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9O
UykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChF
TkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChF
TkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZB
U1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNf
TEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAk
KEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FU
VFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19T
VUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FV
RVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xC
T1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfRFJBR19TVVBQT1JU
ID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9uZW9z
MTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhv
bmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EQVRBX0lOVEVS
QUNUSU9OW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKK0VOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RBVEFf
SU5URVJBQ1RJT047CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBU
SU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkg
JChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5H
KSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklF
TlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJ
T05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVW
RUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxF
X0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklU
KSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RF
X0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxF
X0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMp
ICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVS
RSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9O
KSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwp
ICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRf
VVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZG
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJM
RV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJ
Q19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ip
ICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElB
X1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQo
RU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdf
Rk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRT
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RP
T0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklF
V19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRFJBR19TVVBQ
T1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCBiMDlmOWU5MGZlMDRhOWRlODkxODkzZTYxMDM0YWY1
ZWJlM2MzMjEwLi45NjczYmM1ZTkwZWMwYjU4NmFkYjNmZmNmYjQ2ZTg0NzAwNWRmZDI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0yOSwxMiArMjks
MTUgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9tZS5oIgogI2lt
cG9ydCAiQ2hyb21lQ2xpZW50LmgiCisjaW1wb3J0ICJEYXRhVHJhbnNmZXIuaCIKKyNpbXBvcnQg
IkRyYWdTdGF0ZS5oIgogI2ltcG9ydCAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJGcmFt
ZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJLZXlib2FyZEV2ZW50LmgiCiAj
aW1wb3J0ICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW1wb3J0ICJQYWdlLmgi
CisjaW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5oIgogI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJX
aWRnZXQuaCIKQEAgLTQ0LDE1ICs0NywxMiBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlcklP
U1RvdWNoLmNwcD4KICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJBZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUmV0YWluUHRyPFdlYkV2ZW50PiYgY3VycmVu
dEV2ZW50U2xvdCgpCkBAIC01NTksNCArNTU5LDQ5IEBAIFBsYXRmb3JtTW91c2VFdmVudCBFdmVu
dEhhbmRsZXI6OmN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSBjb25zdAogICAgIHJldHVybiBQ
bGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50KGN1cnJlbnRFdmVu
dCgpKTsKIH0KIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK1JlZjxEYXRhVHJhbnNmZXI+
IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAoreworICAg
IFBhc3RlYm9hcmQoImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpLmNsZWFyKCk7CisgICAg
cmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZygpOworfQorCitib29sIEV2ZW50SGFu
ZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKQoreworICAgIFJlZjxG
cmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CisKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
c3ludGhldGljTW91c2VQcmVzc0V2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9z
aXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisKKyAgICBIaXRU
ZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVz
dDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKKyAgICBhdXRvIGRvY3VtZW50UG9p
bnQgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpID8gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKS0+d2lu
ZG93VG9Db250ZW50cyhzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigpKSA6IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCk7CisgICAgYXV0byBoaXRUZXN0ZWRNb3VzZUV2
ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5wcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0LCBkb2N1
bWVudFBvaW50LCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudCk7CisKKyAgICBSZWZQdHI8RnJhbWU+
IHN1YmZyYW1lID0gc3ViZnJhbWVGb3JIaXRUZXN0UmVzdWx0KGhpdFRlc3RlZE1vdXNlRXZlbnQp
OworICAgIGlmIChzdWJmcmFtZSAmJiBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkudHJ5VG9CZWdp
bkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBiZSBy
ZWZhY3RvcmVkLCBhbG9uZyB3aXRoIGhhbmRsZU1vdXNlUHJlc3NFdmVudCBhbmQgaGFuZGxlTW91
c2VNb3ZlRXZlbnQsIHNvIHRoYXQgc3RhdGUgYXNzb2NpYXRlZCBvbmx5IHdpdGggZHJhZ2dpbmcK
KyAgICAvLyBsaXZlcyBzb2xlbHkgaW4gdGhlIERyYWdDb250cm9sbGVyLCBhbmQgc28gdGhhdCB3
ZSBkb24ndCBuZWVkIHRvIHByZXRlbmQgdGhhdCBhIG1vdXNlIHByZXNzIGFuZCBtb3VzZSBtb3Zl
IGhhdmUgYWxyZWFkeSBvY2N1cnJlZCBoZXJlLgorICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFn
ID0gZXZlbnRNYXlTdGFydERyYWcoc3ludGhldGljTW91c2VQcmVzc0V2ZW50KTsKKyAgICBpZiAo
IW1fbW91c2VEb3duTWF5U3RhcnREcmFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBT
ZXRGb3JTY29wZTxib29sPiBtb3VzZVByZXNzZWQobV9tb3VzZVByZXNzZWQsIHRydWUpOworICAg
IGRyYWdTdGF0ZSgpLnNvdXJjZSA9IG51bGxwdHI7CisgICAgZHJhZ1N0YXRlKCkuZHJhZ2dlZENv
bnRlbnRSYW5nZSA9IG51bGxwdHI7CisgICAgbV9tb3VzZURvd25Qb3MgPSBwcm90ZWN0ZWRGcmFt
ZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0
aW9uKCkpOworICAgIHByb3RlY3RlZEZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CisKKyAgICByZXR1cm4gaGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQoaGl0VGVzdGVkTW91
c2VFdmVudCwgRG9udENoZWNrRHJhZ0h5c3RlcmVzaXMpOworfQorCisjZW5kaWYKKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggMjJhYmNhYmFi
MzUxZDZmOTM1OTg0NTcwM2ZkMThkZGZjYzZjMmQ0MS4uMDIwNzI0NzcxMTQxZDJhOWViMDY2ZjZl
ZGFmMGQ4NzJmNTUyYTFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0lt
YWdlSU9TLm1tCkBAIC0yNiwxNiArMjYsMTk0IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIkRyYWdJbWFnZS5oIgogCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJEb2N1bWVu
dC5oIgorI2ltcG9ydCAiRWxlbWVudC5oIgorI2ltcG9ydCAiRmxvYXRSb3VuZGVkUmVjdC5oIgor
I2ltcG9ydCAiRm9udENhc2NhZGUuaCIKKyNpbXBvcnQgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNp
bXBvcnQgIkZyYW1lLmgiCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbXBvcnQgIklt
YWdlLmgiCisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiUGFnZS5oIgorI2lt
cG9ydCAiUmFuZ2UuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0ICJTdHJpbmdU
cnVuY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRSdW4u
aCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPENvcmVU
ZXh0L0NvcmVUZXh0Lmg+CisjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1wb3J0IDxVSUtp
dC9VSUZvbnQuaD4KKyNpbXBvcnQgPFVJS2l0L1VJR3JhcGhpY3NJbWFnZVJlbmRlcmVyLmg+Cisj
aW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29t
cGxldGVuZXNzIgogCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0ltYWdlQWRkaXRpb25z
Lm1tPgorU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwg
VUlGb250KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUdyYXBoaWNzSW1hZ2VSZW5kZXJlcikK
K1NPRlRfTElOSyhVSUtpdCwgVUlHcmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0aE9wdGlvbnMs
IHZvaWQsIChDR1NpemUgc2l6ZSwgQk9PTCBvcGFxdWUsIENHRmxvYXQgc2NhbGUpLCAoc2l6ZSwg
b3BhcXVlLCBzY2FsZSkpCitTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29u
dGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQorU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBo
aWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAodm9pZCksICgp
KQorU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2b2lkLCAodm9p
ZCksICgpKQogCi0jZWxzZQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCitJbnRTaXplIGRyYWdJ
bWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQoreworICAgIHJldHVybiBJbnRTaXplKENHSW1h
Z2VHZXRXaWR0aChpbWFnZS5nZXQoKSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpKTsK
K30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxv
YXRTaXplIHNjYWxlKQoreworICAgIENHU2l6ZSBpbWFnZVNpemUgPSBDR1NpemVNYWtlKHNjYWxl
LndpZHRoKCkgKiBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBzY2FsZS5oZWlnaHQoKSAq
IENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpKTsKKyAgICBDR1JlY3QgaW1hZ2VSZWN0ID0g
eyBDR1BvaW50WmVybywgaW1hZ2VTaXplIH07CisKKyAgICBSZXRhaW5QdHI8VUlHcmFwaGljc0lt
YWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0ltYWdlUmVuZGVy
ZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKKyAgICBVSUltYWdlICppbWFn
ZUNvcHkgPSBbcmVuZGVyLmdldCgpIGltYWdlV2l0aEFjdGlvbnM6XihVSUdyYXBoaWNzSW1hZ2VS
ZW5kZXJlckNvbnRleHQgKnJlbmRlcmVyQ29udGV4dCkgeworICAgICAgICBDR0NvbnRleHRSZWYg
Y29udGV4dCA9IHJlbmRlcmVyQ29udGV4dC5DR0NvbnRleHQ7CisgICAgICAgIENHQ29udGV4dFRy
YW5zbGF0ZUNUTShjb250ZXh0LCAwLCBpbWFnZVNpemUuaGVpZ2h0KTsKKyAgICAgICAgQ0dDb250
ZXh0U2NhbGVDVE0oY29udGV4dCwgMSwgLTEpOworICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
Y29udGV4dCwgaW1hZ2VSZWN0LCBpbWFnZS5nZXQoKSk7CisgICAgfV07CisgICAgcmV0dXJuIGlt
YWdlQ29weS5DR0ltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlICogX051bGxhYmxlIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24g
b3JpZW50YXRpb24pCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIENHU2l6ZSBpbWFnZVNpemUoaW1hZ2UtPnNpemUoKSk7CisKKyAgICBSZXRhaW5QdHI8VUlH
cmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0lt
YWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKKyAgICBVSUlt
YWdlICppbWFnZUNvcHkgPSBbcmVuZGVyLmdldCgpIGltYWdlV2l0aEFjdGlvbnM6XihVSUdyYXBo
aWNzSW1hZ2VSZW5kZXJlckNvbnRleHQgKnJlbmRlcmVyQ29udGV4dCkgeworICAgICAgICBHcmFw
aGljc0NvbnRleHQgY29udGV4dChyZW5kZXJlckNvbnRleHQuQ0dDb250ZXh0KTsKKyAgICAgICAg
Y29udGV4dC50cmFuc2xhdGUoMCwgaW1hZ2VTaXplLmhlaWdodCk7CisgICAgICAgIGNvbnRleHQu
c2NhbGUoeyAxLCAtMSB9KTsKKyAgICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdP
cHRpb25zOworICAgICAgICBwYWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbkRlc2NyaXB0aW9u
ID0gb3JpZW50YXRpb247CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQ
b2ludCgpLCBwYWludGluZ09wdGlvbnMpOworICAgIH1dOworICAgIHJldHVybiBpbWFnZUNvcHku
Q0dJbWFnZTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKQoreworfQor
CitzdGF0aWMgVGV4dEluZGljYXRvck9wdGlvbnMgZGVmYXVsdExpbmtJbmRpY2F0b3JPcHRpb25z
ID0gVGV4dEluZGljYXRvck9wdGlvblRpZ2h0bHlGaXRDb250ZW50IHwgVGV4dEluZGljYXRvck9w
dGlvblJlc3BlY3RUZXh0Q29sb3IgfCBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0
QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB8IFRleHRJbmRpY2F0b3JPcHRpb25F
eHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uQ29tcHV0ZUVz
dGltYXRlZEJhY2tncm91bmRDb2xvcjsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZv
ckxpbmsoRWxlbWVudCYgbGlua0VsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgRm9udFJlbmRlcmluZ01vZGUsIGZs
b2F0KQoreworICAgIC8vIEZJWE1FOiBNb3N0IG9mIHRoaXMgY2FuIGdvIGF3YXkgb25jZSB3ZSBj
YW4gdXNlIFVJVVJMRHJhZ1ByZXZpZXdWaWV3IHVuY29uZGl0aW9uYWxseS4KKyAgICBzdGF0aWMg
Q0dGbG9hdCBkcmFnSW1hZ2VQYWRkaW5nID0gMTA7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ry
b3llZDxGb250Q2FzY2FkZT4gdGl0bGVGb250Q2FzY2FkZTsKKyAgICBzdGF0aWMgTGF6eU5ldmVy
RGVzdHJveWVkPEZvbnRDYXNjYWRlPiB1cmxGb250Q2FzY2FkZTsKKyAgICBzdGF0aWMgZGlzcGF0
Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF4gewor
ICAgICAgICBVSUZvbnQgKnRpdGxlRm9udCA9IFtnZXRVSUZvbnRDbGFzcygpIHN5c3RlbUZvbnRP
ZlNpemU6MTZdOworICAgICAgICBVSUZvbnQgKnVybEZvbnQgPSBbZ2V0VUlGb250Q2xhc3MoKSBz
eXN0ZW1Gb250T2ZTaXplOjE0XTsKKyAgICAgICAgdGl0bGVGb250Q2FzY2FkZS5jb25zdHJ1Y3Qo
Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRDcmVhdGVXaXRoTmFtZSgoQ0ZTdHJpbmdSZWYpdGl0bGVG
b250LmZvbnROYW1lLCB0aXRsZUZvbnQucG9pbnRTaXplLCBuaWwpLCB0aXRsZUZvbnQucG9pbnRT
aXplKSwgQXV0b1Ntb290aGluZyk7CisgICAgICAgIHVybEZvbnRDYXNjYWRlLmNvbnN0cnVjdChG
b250UGxhdGZvcm1EYXRhKENURm9udENyZWF0ZVdpdGhOYW1lKChDRlN0cmluZ1JlZil1cmxGb250
LmZvbnROYW1lLCB1cmxGb250LnBvaW50U2l6ZSwgbmlsKSwgdXJsRm9udC5wb2ludFNpemUpLCBB
dXRvU21vb3RoaW5nKTsKKyAgICB9KTsKKworICAgIFN0cmluZyB0b3BTdHJpbmcodGl0bGUuc3Ry
aXBXaGl0ZVNwYWNlKCkpOworICAgIFN0cmluZyBib3R0b21TdHJpbmcoWyhOU1VSTCAqKXVybCBh
YnNvbHV0ZVN0cmluZ10pOworICAgIGlmICh0b3BTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAg
IHRvcFN0cmluZyA9IGJvdHRvbVN0cmluZzsKKyAgICAgICAgYm90dG9tU3RyaW5nID0gZW1wdHlT
dHJpbmcoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgQ0dGbG9hdCBtYXhUZXh0V2lkdGggPSAzMjA7
CisgICAgYXV0byB0cnVuY2F0ZWRUb3BTdHJpbmcgPSBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1
bmNhdGUodG9wU3RyaW5nLCBtYXhUZXh0V2lkdGgsIHRpdGxlRm9udENhc2NhZGUpOworICAgIGF1
dG8gdHJ1bmNhdGVkQm90dG9tU3RyaW5nID0gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0
ZShib3R0b21TdHJpbmcsIG1heFRleHRXaWR0aCwgdXJsRm9udENhc2NhZGUpOworICAgIENHRmxv
YXQgdGV4dFdpZHRoID0gc3RkOjptYXgoU3RyaW5nVHJ1bmNhdG9yOjp3aWR0aCh0cnVuY2F0ZWRU
b3BTdHJpbmcsIHRpdGxlRm9udENhc2NhZGUpLCBTdHJpbmdUcnVuY2F0b3I6OndpZHRoKHRydW5j
YXRlZEJvdHRvbVN0cmluZywgdXJsRm9udENhc2NhZGUpKTsKKyAgICBDR0Zsb2F0IHRleHRIZWln
aHQgPSB0cnVuY2F0ZWRCb3R0b21TdHJpbmcuaXNFbXB0eSgpID8gMjIgOiA0NDsKKworICAgIENH
UmVjdCBpbWFnZVJlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIHRleHRXaWR0aCArIDIgKiBkcmFnSW1h
Z2VQYWRkaW5nLCB0ZXh0SGVpZ2h0ICsgMiAqIGRyYWdJbWFnZVBhZGRpbmcpOworCisgICAgUmV0
YWluUHRyPFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyPiByZW5kZXIgPSBhZG9wdE5TKFthbGxvY1VJ
R3JhcGhpY3NJbWFnZVJlbmRlcmVySW5zdGFuY2UoKSBpbml0V2l0aFNpemU6aW1hZ2VSZWN0LnNp
emVdKTsKKyAgICBVSUltYWdlICppbWFnZSA9IFtyZW5kZXIuZ2V0KCkgaW1hZ2VXaXRoQWN0aW9u
czpeKFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyQ29udGV4dCAqcmVuZGVyZXJDb250ZXh0KSB7Cisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KHJlbmRlcmVyQ29udGV4dC5DR0NvbnRleHQp
OworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBDR1JlY3RHZXRIZWlnaHQoaW1hZ2VSZWN0
KSk7CisgICAgICAgIGNvbnRleHQuc2NhbGUoeyAxLCAtMSB9KTsKKyAgICAgICAgY29udGV4dC5m
aWxsUm91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChpbWFnZVJlY3QsIEZsb2F0Um91bmRlZFJl
Y3Q6OlJhZGlpKDQpKSwgeyAyNTUsIDI1NSwgMjU1IH0pOworICAgICAgICB0aXRsZUZvbnRDYXNj
YWRlLT5kcmF3VGV4dChjb250ZXh0LCBUZXh0UnVuKHRydW5jYXRlZFRvcFN0cmluZyksIEZsb2F0
UG9pbnQoZHJhZ0ltYWdlUGFkZGluZywgMTggKyBkcmFnSW1hZ2VQYWRkaW5nKSk7CisgICAgICAg
IGlmICghdHJ1bmNhdGVkQm90dG9tU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHVybEZv
bnRDYXNjYWRlLT5kcmF3VGV4dChjb250ZXh0LCBUZXh0UnVuKHRydW5jYXRlZEJvdHRvbVN0cmlu
ZyksIEZsb2F0UG9pbnQoZHJhZ0ltYWdlUGFkZGluZywgNDAgKyBkcmFnSW1hZ2VQYWRkaW5nKSk7
CisgICAgfV07CisKKyAgICBhdXRvIGxpbmtSYW5nZSA9IHJhbmdlT2ZDb250ZW50cyhsaW5rRWxl
bWVudCk7CisgICAgaWYgKGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0
ZVdpdGhSYW5nZShsaW5rUmFuZ2UsIGRlZmF1bHRMaW5rSW5kaWNhdG9yT3B0aW9ucywgVGV4dElu
ZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUsIEZsb2F0U2l6ZSgpKSkKKyAgICAg
ICAgaW5kaWNhdG9yRGF0YSA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsKKworICAgIHJldHVybiBp
bWFnZS5DR0ltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNh
Y2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitEcmFnSW1hZ2VSZWYgcGxhdGZvcm1BZGp1c3RE
cmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3RvcihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQor
eworICAgIC8vIE9uIGlPUywgd2UganVzdCBjcmVhdGUgdGhlIGRyYWcgaW1hZ2UgYXQgdGhlIHJp
Z2h0IGRldmljZSBzY2FsZSBmYWN0b3IsIHNvIHdlIGRvbid0IG5lZWQgdG8gc2NhbGUgaXQgYnkg
MSAvIGRldmljZVNjYWxlRmFjdG9yIGxhdGVyLgorICAgIHJldHVybiBpbWFnZTsKK30KKworc3Rh
dGljIFRleHRJbmRpY2F0b3JPcHRpb25zIGRlZmF1bHRTZWxlY3Rpb25EcmFnSW1hZ2VUZXh0SW5k
aWNhdG9yT3B0aW9ucyA9IFRleHRJbmRpY2F0b3JPcHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJs
ZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50IHwgVGV4dEluZGljYXRv
ck9wdGlvblVzZVNlbGVjdGlvblJlY3RGb3JTaXppbmcgfCBUZXh0SW5kaWNhdG9yT3B0aW9uQ29t
cHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xvcjsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0
b3JEYXRhLCBib29sIGZvcmNlQmxhY2tUZXh0KQoreworICAgIGlmIChhdXRvIGRvY3VtZW50ID0g
ZnJhbWUuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dCgpOworCisg
ICAgVGV4dEluZGljYXRvck9wdGlvbnMgb3B0aW9ucyA9IGRlZmF1bHRTZWxlY3Rpb25EcmFnSW1h
Z2VUZXh0SW5kaWNhdG9yT3B0aW9uczsKKyAgICBpZiAoIWZvcmNlQmxhY2tUZXh0KQorICAgICAg
ICBvcHRpb25zIHw9IFRleHRJbmRpY2F0b3JPcHRpb25SZXNwZWN0VGV4dENvbG9yOworCisgICAg
YXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbklu
RnJhbWUoZnJhbWUsIG9wdGlvbnMsIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpOb25lLCBGbG9hdFNpemUoKSk7CisgICAgYXV0byBpbWFnZSA9IHRleHRJbmRpY2F0b3ItPmNv
bnRlbnRJbWFnZSgpOworICAgIGlmIChpbWFnZSkKKyAgICAgICAgaW5kaWNhdG9yRGF0YSA9IHRl
eHRJbmRpY2F0b3ItPmRhdGEoKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhl
aWdodCgpKTsKKyAgICBpZiAoYXV0byBwYWdlID0gZnJhbWUucGFnZSgpKQorICAgICAgICBpbWFn
ZVJlY3Quc2NhbGUoMSAvIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworCisKKyAgICBSZXRh
aW5QdHI8VUlHcmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlH
cmFwaGljc0ltYWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVJlY3Quc2l6
ZSgpXSk7CisgICAgVUlJbWFnZSAqZmluYWxJbWFnZSA9IFtyZW5kZXIuZ2V0KCkgaW1hZ2VXaXRo
QWN0aW9uczpeKFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyQ29udGV4dCAqcmVuZGVyZXJDb250ZXh0
KSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KHJlbmRlcmVyQ29udGV4dC5DR0Nv
bnRleHQpOworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBpbWFnZVJlY3QuaGVpZ2h0KCkp
OworICAgICAgICBjb250ZXh0LnNjYWxlKHsgMSwgLTEgfSk7CisgICAgICAgIGNvbnRleHQuZHJh
d0ltYWdlKCppbWFnZSwgaW1hZ2VSZWN0KTsKKyAgICB9XTsKKworICAgIHJldHVybiBmaW5hbElt
YWdlLkNHSW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rp
b24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBpbWFnZTsKK30KKworI2Vsc2UKKwogdm9pZCBkZWxldGVEcmFnSW1hZ2UoUmV0
YWluUHRyPENHSW1hZ2VSZWY+KQogewogICAgIC8vIFNpbmNlIHRoaXMgaXMgYSBSZXRhaW5QdHIs
IHRoZXJlJ3Mgbm90aGluZyBhZGRpdGlvbmFsIHdlIG5lZWQgdG8gZG8gdG8KQEAgLTQ2LDIwICsy
MjQsMjAgQEAgdm9pZCBkZWxldGVEcmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+KQogSW50
U2l6ZSBkcmFnSW1hZ2VTaXplKFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkKIHsKICAgICBy
ZXR1cm4gSW50U2l6ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVp
Z2h0KGltYWdlLmdldCgpKSk7Ci0gICAgfQorfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc2Nh
bGVEcmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+LCBGbG9hdFNpemUpCiB7Ci0gICAgLy8g
RklYTUU6IGltcGxlbWVudCBmb3IgaU9TOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24pCiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9TOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggYjc1N2E1NzlmZDAz
NTljNWEzNDlmMjEwZGFiNWJhYjJmNzg5YjQ1Yi4uNjA0MTM2ODc4NGI2MTZiNWE4MGU5NzFhOGVl
YzY5YzAyNjczOTgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bh
c3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9h
cmRJT1MubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRvY3VtZW50LmgiCiAjaW1wb3J0
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5oIgorI2ltcG9y
dCAiRHJhZ0RhdGEuaCIKICNpbXBvcnQgIkVkaXRpbmcuaCIKICNpbXBvcnQgIkVkaXRvci5oIgog
I2ltcG9ydCAiRWRpdG9yQ2xpZW50LmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0ICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiTGVnYWN5V2ViQXJj
aGl2ZS5oIgorI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRT
dHJhdGVneS5oIgogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJSZW5k
ZXJJbWFnZS5oIgpAQCAtNTgsMTIgKzYwLDMzIEBACiAtIChCT09MKWNvbnRhaW5zQXR0YWNobWVu
dHM7CiBAZW5kCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1Bhc3RlYm9hcmRBZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKworUGFzdGVib2FyZDo6UGFzdGVi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQorICAgIDogbV9wYXN0ZWJvYXJkTmFt
ZShwYXN0ZWJvYXJkTmFtZSkKKyAgICAsIG1fY2hhbmdlQ291bnQocGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5jaGFuZ2VDb3VudChwYXN0ZWJvYXJkTmFtZSkpCit7
Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZSwgY29uc3QgSW50
UG9pbnQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCit7CisgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVi
b2FyZCIpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQoreworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkp
OworfQorCisjZW5kaWYKKwogc3RhdGljIGxvbmcgY2hhbmdlQ291bnRGb3JQYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUgPSB7IH0pCiB7CiAgICAgcmV0dXJuIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Y2hhbmdlQ291bnQocGFzdGVib2Fy
ZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRh
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCmluZGV4
IDIwZDEyOWQwNjdmYzc4NGZmNWQxZDNmZWZhZGU0ODg5NDgwZmVlOTAuLjk0NzY1YTI3ODdjYjk0
MGY0NDg5MGQ4MDE3ODkxNzg0M2Q0YTMxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvRHJhZ0RhdGFNYWMubW0KQEAgLTI4LDYxICsyOCw5MSBAQAogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbXBvcnQgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkU3Ry
YXRlZ3kuaCIKKyNpbXBvcnQgIlBsYXRmb3JtUGFzdGVib2FyZC5oIgogI2ltcG9ydCAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0
YUFkZGl0aW9ucy5tbT4KKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxNb2JpbGVDb3JlU2Vy
dmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjZW5kaWYKIAotI2Vsc2UKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5cGUoKQogewor
I2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5cGVSVEYpOworI2Vsc2UK
ICAgICByZXR1cm4gU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSk7CisjZW5kaWYKIH0KIAogc3RhdGlj
IGlubGluZSBTdHJpbmcgcnRmZFBhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgcmV0dXJuIFN0cmluZyhrVVRUeXBlRmxhdFJURkQpOworI2Vsc2UKICAgICByZXR1cm4g
U3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgU3Ry
aW5nIHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgcmV0
dXJuIFN0cmluZyhrVVRUeXBlVGV4dCk7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNTdHJp
bmdQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyB1cmxQYXN0
ZWJvYXJkVHlwZSgpCiB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBTdHJpbmcoa1VU
VHlwZVVSTCk7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKTsKKyNl
bmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5cGUoKQogewor
I2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5cGVIVE1MKTsKKyNlbHNl
CiAgICAgcmV0dXJuIFN0cmluZyhOU0hUTUxQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0
aWMgaW5saW5lIFN0cmluZyBjb2xvclBhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgcmV0dXJuICJjb20uYXBwbGUudWlraXQuY29sb3IiOworI2Vsc2UKICAgICByZXR1
cm4gU3RyaW5nKE5TQ29sb3JQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5l
IFN0cmluZyBwZGZQYXN0ZWJvYXJkVHlwZSgpCiB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJl
dHVybiBTdHJpbmcoa1VUVHlwZVBERik7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNQREZQ
Ym9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyB0aWZmUGFzdGVi
b2FyZFR5cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5
cGVUSUZGKTsKKyNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyhOU1RJRkZQYm9hcmRUeXBlKTsKKyNl
bmRpZgogfQogCi0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCiBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwgY29uc3Qg
SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IERyYWdPcGVyYXRpb24gc291cmNlT3BlcmF0aW9uTWFzaywgRHJhZ0FwcGxpY2F0aW9uRmxhZ3Mg
ZmxhZ3MsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBkZXN0aW5hdGlvbkFjdGlvbikKICAgICA6IG1f
Y2xpZW50UG9zaXRpb24oY2xpZW50UG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGds
b2JhbFBvc2l0aW9uKQpAQCAtMTU0LDEyICsxODQsOCBAQCB2b2lkIERyYWdEYXRhOjphc0ZpbGVu
YW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1l
c0ZvclR5cGUocmVzdWx0LCBTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSwgbV9wYXN0ZWJv
YXJkTmFtZSk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IEVOQUJMRShEQVRBX0lOVEVS
QUNUSU9OKQogICAgIGlmICghcmVzdWx0LnNpemUoKSkKICAgICAgICAgcmVzdWx0ID0gZmlsZU5h
bWVzKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwotI2VuZGlmCiB9CiAKIGJv
b2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKQEAgLTIzMSwxNCArMjU3LDMw
IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUHJvbWlzZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZp
bGVzLnNpemUoKSA9PSAxOwogfQogCi0jaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotCiBi
b29sIERyYWdEYXRhOjpjb250YWluc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5h
bWVQb2xpY3kpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFhc1VSTChmaWxlbmFtZVBvbGljeSkuaXNF
bXB0eSgpOwotfQorI2lmIFBMQVRGT1JNKElPUykKKyAgICBVTlVTRURfUEFSQU0oZmlsZW5hbWVQ
b2xpY3kpOworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5h
bWUpOworICAgIGlmICghdHlwZXMuY29udGFpbnModXJsUGFzdGVib2FyZFR5cGUoKSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gdXJsU3RyaW5nID0gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKHVybFBhc3RlYm9hcmRU
eXBlKCksIG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKSB7
CisgICAgICAgIC8vIE9uIGlPUywgd2UgZG9uJ3QgZ2V0IGFjY2VzcyB0byB0aGUgY29udGVudHMg
b2YgVUlJdGVtUHJvdmlkZXJzIHVudGlsIHdlIHBlcmZvcm0gdGhlIGRyYWcgb3BlcmF0aW9uLgor
ICAgICAgICAvLyBUaHVzLCB3ZSBjb25zaWRlciBEcmFnRGF0YSB0byBjb250YWluIGFuIFVSTCBp
ZiBpdCBjb250YWlucyB0aGUgYHB1YmxpYy51cmxgIFVUSSB0eXBlLiBMYXRlciBkb3duIHRoZQor
ICAgICAgICAvLyByb2FkLCB3aGVuIHdlIHBlcmZvcm0gdGhlIGRyYWcgb3BlcmF0aW9uLCB3ZSBj
YW4gdGhlbiBjaGVjayBpZiB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgaHR0cCBvciBodHRwcywKKyAg
ICAgICAgLy8gYW5kIGlmIGl0IGlzbid0LCB3ZSBiYWlsIG91dCBvZiBwYWdlIG5hdmlnYXRpb24u
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAorICAgIFVSTCB3ZWJjb3JlVVJMID0gW05T
VVJMIFVSTFdpdGhTdHJpbmc6dXJsU3RyaW5nXTsKKyAgICByZXR1cm4gd2ViY29yZVVSTC5wcm90
b2NvbElzKCJodHRwIikgfHwgd2ViY29yZVVSTC5wcm90b2NvbElzKCJodHRwcyIpOworI2Vsc2UK
KyAgICByZXR1cm4gIWFzVVJMKGZpbGVuYW1lUG9saWN5KS5pc0VtcHR5KCk7CiAjZW5kaWYKK30K
IAogU3RyaW5nIERyYWdEYXRhOjphc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmlu
ZyogdGl0bGUpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1
NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVjMGQ1NTNlMTVkZTU0ZTY1NTM3M2Y4YTNhZDFiNzMx
ZjA2NzkxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDEwIEBAIEVOQUJMRV9W
QVJJQVRJT05fRk9OVFNfSUZfTk9UXyA9ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1Rf
Tk8pOwogRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8gPSBFTkFCTEVfVkFSSUFUSU9O
X0ZPTlRTOwogRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfWUVTID0gOwogCi1GRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFC
TEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAk
KEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9B
REFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9M
TF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlM
SU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
ICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUp
ICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykg
JChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZU
TF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FU
RUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09C
U0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZ
X0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykg
JChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRS
T0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FU
T1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9D
T01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VS
Q0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRS
T0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChF
TkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VO
VEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5B
QkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBM
QVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJf
VElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
QkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
ICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX0RSQUdfU1VQUE9SVCA9IEVOQUJMRV9EUkFHX1NVUFBP
UlQ7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfRFJBR19T
VVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVO
QUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lb3Mx
MSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltz
ZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworCitGRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChF
TkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVf
QVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hF
X1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9Y
WSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
KSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NT
U19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1ND
Uk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RS
QUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJ
VFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9O
UykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJF
Q0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9O
X09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRf
S0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQo
RU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FV
VE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNF
UlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQo
RU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9S
RVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9J
TlRFUkFDVElPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbQppbmRleCAxYmQ5YjM0MjE1ZDE1ZDUxMTcwZjczNTIxZmIzZGIwMjRjNjhi
YzA5Li4xMTVhODM3MzI5NWM3NjE2YzAyMDhjMTNhMzIwODk0ODY1ZDI1ZWRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KQEAgLTU5
LDEwICs1OSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdD
bGllbnRBZGRpdGlvbnNXZWJLaXQxLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJE
cmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0MS5tbT4KLSNlbmRpZgotCiBXZWJEcmFnQ2xpZW50OjpX
ZWJEcmFnQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykg
CiB7CkBAIC0yMjIsNiArMjE4LDU1IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdy
aXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50JiwgY29uc3QgVVJMCiAKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TKQorCitib29sIFdlYkRyYWdDbGllbnQ6OnVzZUxlZ2FjeURy
YWdDbGllbnQoKQoreworICAgIC8vIEZJWE1FOiBNb3ZlIHRoZSBpT1MgZHJhZyBhbmQgZHJvcCBp
bXBsZW1lbnRhdGlvbiBmb3IgV2ViS2l0MSBvZmYgb2YgdGhlIGxlZ2FjeSBkcmFnIGNsaWVudC4K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURy
YWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb24sIGNvbnN0IERyYWdEYXRh
JikKK3sKK30KKworV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikKK3sKKyAgICByZXR1cm4g
RHJhZ1NvdXJjZUFjdGlvbkFueTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9y
bURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9p
bnQmLCBEYXRhVHJhbnNmZXImKQoreworfQorCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJh
ZyhEcmFnSW1hZ2UgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBv
aW50JiBldmVudExvY2F0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3IsIERh
dGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIERyYWdTb3VyY2VBY3Rpb24g
ZHJhZ1NvdXJjZUFjdGlvbikKK3sKKyAgICBbbV93ZWJWaWV3IF9zZXREYXRhSW50ZXJhY3Rpb25E
YXRhOmRyYWdJbWFnZS5nZXQoKS5nZXQoKSB0ZXh0SW5kaWNhdG9yOmRyYWdJbWFnZS5pbmRpY2F0
b3JEYXRhKCkgYXRDbGllbnRQb3NpdGlvbjpldmVudExvY2F0aW9uIGFuY2hvclBvaW50OmRyYWdJ
bWFnZUFuY2hvciBhY3Rpb246ZHJhZ1NvdXJjZUFjdGlvbl07Cit9CisKK3ZvaWQgV2ViRHJhZ0Ns
aWVudDo6YmVnaW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNvbnN0IEludFBvaW50JiwgY29uc3Qg
SW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNlQWN0aW9uKQoreworfQorCit2b2lk
IFdlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgRnJhbWUqKQoreworICAgIGlmIChhdXRvKiBmcmFtZSA9IGVsZW1lbnQuZG9j
dW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkud3JpdGVJbWFnZVRvUGFz
dGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgZWxlbWVudCwgdXJs
LCBsYWJlbCk7Cit9CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQordm9pZCBXZWJE
cmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KGNvbnN0IFN0cmluZyYsIEVsZW1l
bnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCit7Cit9CisjZW5kaWYKKwor
dm9pZCBXZWJEcmFnQ2xpZW50OjpkaWRDb25jbHVkZUVkaXREcmFnKCkKK3sKKyAgICBbbV93ZWJW
aWV3IF9kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25dOworfQorCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQorCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmRyYWdDb250cm9sbGVyRGVzdHJveWVk
KCkgCiB7CiAgICAgZGVsZXRlIHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggNTRlM2RkMzJkNjNlN2ZhMzBhYzZjNTc1YmUwNDFiNWY1Mjg0ZDk4OC4uMzhhNDYwMTZm
OTIxYzVhYmIxMzdkMjBjZDg3M2I3ZTMwOGEwODMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtMTgyMCw3ICsxODIwLDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlh
bGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCiAtIChCT09MKV9yZXF1ZXN0U3RhcnREYXRh
SW50ZXJhY3Rpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENHUG9p
bnQpZ2xvYmFsUG9zaXRpb24KIHsKICAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPm1haW5GcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KEludFBv
aW50KGNsaWVudFBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pKTsKQEAgLTE4Mjks
OSArMTgzMCw5IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJ
Zk5lY2Vzc2FyeSgpCiAtICh2b2lkKV9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVm
KWltYWdlIHRleHRJbmRpY2F0b3I6KHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+KWlu
ZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNo
b3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgogewog
ICAgIGlmIChpbmRpY2F0b3JEYXRhKQotICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRh
dGEgPSBbW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdl
IHRleHRJbmRpY2F0b3JEYXRhOmluZGljYXRvckRhdGEudmFsdWUoKSBzY2FsZTpfcHJpdmF0ZS0+
cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0gcmV0YWluXTsKKyAgICAgICAgX3ByaXZhdGUtPnRl
eHRJbmRpY2F0b3JEYXRhID0gYWRvcHROUyhbW1dlYlVJVGV4dEluZGljYXRvckRhdGEgYWxsb2Nd
IGluaXRXaXRoSW1hZ2U6aW1hZ2UgdGV4dEluZGljYXRvckRhdGE6aW5kaWNhdG9yRGF0YS52YWx1
ZSgpIHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXSk7CiAgICAgZWxz
ZQotICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1tXZWJVSVRleHRJbmRp
Y2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdlIHNjYWxlOl9wcml2YXRlLT5wYWdl
LT5kZXZpY2VTY2FsZUZhY3RvcigpXSByZXRhaW5dOworICAgICAgICBfcHJpdmF0ZS0+dGV4dElu
ZGljYXRvckRhdGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5p
dFdpdGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KV0pOwogfQogCiAtIChDR1JlY3QpX2RhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdApAQCAtMTg0OSw1
MyArMTg1MCw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJ
Zk5lY2Vzc2FyeSgpCiAKIC0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVy
YWN0aW9uRGF0YQogewotICAgIHJldHVybiBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGE7Ci19
Ci0KLXN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXkoTlNB
cnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVzKQotewotICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJl
Y3RzOwotICAgIGZvciAoTlNWYWx1ZSAqcmVjdFZhbHVlIGluIHJlY3RWYWx1ZXMpCi0gICAgICAg
IHJlY3RzLmFwcGVuZChyZWN0VmFsdWUuQ0dSZWN0VmFsdWUpOwotICAgIHJldHVybiByZWN0czsK
LX0KLQotLSAoVUlJbWFnZSAqKV9jcmVhdGVJbWFnZVdpdGhQbGF0dGVyRm9ySW1hZ2U6KFVJSW1h
Z2UgKilpbWFnZSBib3VuZGluZ1JlY3Q6KENHUmVjdClib3VuZGluZ1JlY3QgY29udGVudFNjYWxl
RmFjdG9yOihDR0Zsb2F0KWNvbnRlbnRTY2FsZUZhY3RvciBjbGlwcGluZ1JlY3RzOihOU0FycmF5
PE5TVmFsdWUgKj4gKiljbGlwcGluZ1JlY3RzCi17Ci0gICAgaWYgKCFfcHJpdmF0ZS0+cGFnZSkK
LSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICBDR0Zsb2F0IGltYWdlU2NhbGVGYWN0b3IgPSBjb250ZW50U2NhbGVGYWN0b3Ig
LyBfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICBDR1JlY3QgaW1hZ2VQ
YWludEJvdW5kcyA9IENHUmVjdE1ha2UoMCwgMCwgQ0dSZWN0R2V0V2lkdGgoYm91bmRpbmdSZWN0
KSAqIGltYWdlU2NhbGVGYWN0b3IsIENHUmVjdEdldEhlaWdodChib3VuZGluZ1JlY3QpICogaW1h
Z2VTY2FsZUZhY3Rvcik7Ci0gICAgVUlHcmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0aE9wdGlv
bnMoaW1hZ2VQYWludEJvdW5kcy5zaXplLCBOTywgX3ByaXZhdGUtPnBhZ2UtPmRldmljZVNjYWxl
RmFjdG9yKCkpOwotICAgIENHQ29udGV4dFJlZiBuZXdDb250ZXh0ID0gVUlHcmFwaGljc0dldEN1
cnJlbnRDb250ZXh0KCk7Ci0KLSAgICBhdXRvIHNjYWxlZENsaXBwaW5nUmVjdHMgPSBmbG9hdFJl
Y3RzRm9yQ0dSZWN0QXJyYXkoY2xpcHBpbmdSZWN0cyk7Ci0gICAgZm9yIChhdXRvJiB0ZXh0Qm91
bmRpbmdSZWN0IDogc2NhbGVkQ2xpcHBpbmdSZWN0cykKLSAgICAgICAgdGV4dEJvdW5kaW5nUmVj
dC5zY2FsZShpbWFnZVNjYWxlRmFjdG9yKTsKLQotICAgIGlmICghc2NhbGVkQ2xpcHBpbmdSZWN0
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byB3ZWJjb3JlUGF0aCA9IFBhdGhVdGlsaXRpZXM6
OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzKHNjYWxlZENsaXBwaW5nUmVjdHMsIDYgKiBpbWFn
ZVNjYWxlRmFjdG9yKTsKLSAgICAgICAgW1tnZXRVSUJlemllclBhdGhDbGFzcygpIGJlemllclBh
dGhXaXRoQ0dQYXRoOndlYmNvcmVQYXRoLmVuc3VyZVBsYXRmb3JtUGF0aCgpXSBhZGRDbGlwXTsK
LSAgICB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgbWF0Y2ggdGhlIGJhY2tncm91bmQg
Y29sb3Igb2YgdGhlIHRleHQsIG9yIGlmIHRoZSBiYWNrZ3JvdW5kIGNhbm5vdCBiZSBjYXB0dXJl
ZCBhcyBhIHNpbmdsZSBjb2xvciwgd2Ugc2hvdWxkIGZhbGwgYmFjawotICAgIC8vIHRvIGEgZGVm
YXVsdCByZXByZXNlbnRhdGlvbiwgZS5nLiBibGFjayB0ZXh0IG9uIGEgd2hpdGUgYmFja2dyb3Vu
ZC4KLSAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IobmV3Q29udGV4dCwgWyhVSUNv
bG9yICopW2dldFVJQ29sb3JDbGFzcygpIHdoaXRlQ29sb3JdIENHQ29sb3JdKTsKLSAgICBmb3Ig
KGF1dG8gdGV4dEJvdW5kaW5nUmVjdCA6IHNjYWxlZENsaXBwaW5nUmVjdHMpCi0gICAgICAgIENH
Q29udGV4dEZpbGxSZWN0KG5ld0NvbnRleHQsIHRleHRCb3VuZGluZ1JlY3QpOwotCi0gICAgQ0dD
b250ZXh0VHJhbnNsYXRlQ1RNKG5ld0NvbnRleHQsIDAsIENHUmVjdEdldEhlaWdodChpbWFnZVBh
aW50Qm91bmRzKSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0obmV3Q29udGV4dCwgMSwgLTEpOwot
ICAgIENHQ29udGV4dERyYXdJbWFnZShuZXdDb250ZXh0LCBpbWFnZVBhaW50Qm91bmRzLCBpbWFn
ZS5DR0ltYWdlKTsKLQotICAgIFVJSW1hZ2UgKnByZXZpZXdJbWFnZSA9IFVJR3JhcGhpY3NHZXRJ
bWFnZUZyb21DdXJyZW50SW1hZ2VDb250ZXh0KCk7Ci0gICAgVUlHcmFwaGljc0VuZEltYWdlQ29u
dGV4dCgpOwotCi0gICAgcmV0dXJuIFtwcmV2aWV3SW1hZ2UgcmV0YWluXTsKKyAgICByZXR1cm4g
X3ByaXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhLmdldCgpOwogfQogCiAtIChXZWJEcmFnRGVzdGlu
YXRpb25BY3Rpb24pZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvclNlc3Npb246KGlkIDxVSURy
b3BTZXNzaW9uPilzZXNzaW9uCkBAIC0xOTAzLDY1ICsxODU4LDY3IEBAIHN0YXRpYyBWZWN0b3I8
RmxvYXRSZWN0PiBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXkoTlNBcnJheTxOU1ZhbHVlICo+ICpy
ZWN0VmFsdWVzCiAgICAgcmV0dXJuIFtzZWxmLl9VSURlbGVnYXRlRm9yd2FyZGVyIHdlYlZpZXc6
c2VsZiBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yU2Vzc2lvbjpzZXNzaW9uXTsKIH0KIAot
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0
aW9ucy9XZWJWaWV3QWRkaXRpb25zLm1tPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2Vi
Vmlld0FkZGl0aW9ucy5tbT4KLSNlbmRpZgotCi0jZWxzZQotLSAoQk9PTClfcmVxdWVzdFN0YXJ0
RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihD
R1BvaW50KWdsb2JhbFBvc2l0aW9uCi17Ci0gICAgcmV0dXJuIE5POwotfQotLSAodm9pZClfc2V0
RGF0YUludGVyYWN0aW9uRGF0YTooQ0dJbWFnZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9yOihUZXh0
SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9yRGF0YSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoodWlu
dDY0X3QpYWN0aW9uCi17Ci19Ci0tIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2dldERhdGFJ
bnRlcmFjdGlvbkRhdGEKKy0gKERyYWdEYXRhKWRyYWdEYXRhRm9yU2Vzc2lvbjooaWQgPFVJRHJv
cFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDoo
Q0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgogewot
ICAgIHJldHVybiBuaWw7CisgICAgYXV0byBkcmFnT3BlcmF0aW9uTWFzayA9IHN0YXRpY19jYXN0
PERyYWdPcGVyYXRpb24+KG9wZXJhdGlvbik7CisgICAgYXV0byBkcmFnRGVzdGluYXRpb25NYXNr
ID0gc3RhdGljX2Nhc3Q8RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uPihbc2VsZiBkcmFnRGVzdGluYXRp
b25BY3Rpb25NYXNrRm9yU2Vzc2lvbjpzZXNzaW9uXSk7CisgICAgcmV0dXJuIHsgc2Vzc2lvbiwg
cm91bmRlZEludFBvaW50KGNsaWVudFBvc2l0aW9uKSwgcm91bmRlZEludFBvaW50KGdsb2JhbFBv
c2l0aW9uKSwgZHJhZ09wZXJhdGlvbk1hc2ssIERyYWdBcHBsaWNhdGlvbk5vbmUsIGRyYWdEZXN0
aW5hdGlvbk1hc2sgfTsKIH0KLS0gKHVpbnQ2NF90KV9lbnRlcmVkRGF0YUludGVyYWN0aW9uOihp
ZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDoo
Q0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgorCist
ICh1aW50NjRfdClfZW50ZXJlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNl
c3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9i
YWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgogewotICAgIHJldHVybiAw
OworICAgIFdlYlRocmVhZExvY2soKTsKKyAgICBhdXRvIGRyYWdEYXRhID0gW3NlbGYgZHJhZ0Rh
dGFGb3JTZXNzaW9uOnNlc3Npb24gY2xpZW50OmNsaWVudFBvc2l0aW9uIGdsb2JhbDpnbG9iYWxQ
b3NpdGlvbiBvcGVyYXRpb246b3BlcmF0aW9uXTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2Ut
PmRyYWdDb250cm9sbGVyKCkuZHJhZ0VudGVyZWQoZHJhZ0RhdGEpOwogfQogCi0tICh1aW50NjRf
dClfdXBkYXRlZERhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQ
b2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0
aW9uOih1aW50NjRfdClvcGVyYXRpb24KKy0gKHVpbnQ2NF90KV91cGRhdGVkRGF0YUludGVyYWN0
aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9z
aXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qp
b3BlcmF0aW9uCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgV2ViVGhyZWFkTG9jaygpOworICAgIGF1
dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvclNlc3Npb246c2Vzc2lvbiBjbGllbnQ6Y2xp
ZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25dOwor
ICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnVXBkYXRlZChk
cmFnRGF0YSk7CiB9Ci0tICh2b2lkKV9leGl0ZWREYXRhSW50ZXJhY3Rpb246KGlkKWRhdGFJbnRl
cmFjdGlvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWds
b2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uCistICh2b2lkKV9leGl0
ZWREYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQ
b2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0
aW9uOih1aW50NjRfdClvcGVyYXRpb24KIHsKKyAgICBXZWJUaHJlYWRMb2NrKCk7CisgICAgYXV0
byBkcmFnRGF0YSA9IFtzZWxmIGRyYWdEYXRhRm9yU2Vzc2lvbjpzZXNzaW9uIGNsaWVudDpjbGll
bnRQb3NpdGlvbiBnbG9iYWw6Z2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOm9wZXJhdGlvbl07Cisg
ICAgX3ByaXZhdGUtPnBhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0V4aXRlZChkcmFnRGF0YSk7
CiB9Ci0tICh2b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24g
Y2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3Np
dGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgorLSAodm9pZClfcGVyZm9ybURhdGFJ
bnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVp
bnQ2NF90KW9wZXJhdGlvbgogeworICAgIFtzZWxmIF90cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rp
b246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9w
ZXJhdGlvbjpvcGVyYXRpb25dOwogfQogCi0tIChCT09MKV90cnlUb1BlcmZvcm1EYXRhSW50ZXJh
Y3Rpb246KGlkKWRhdGFJbnRlcmFjdGlvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24g
Z2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0
aW9uCistIChCT09MKV90cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNz
aW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9p
bnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb24KIHsKLSAgICBy
ZXR1cm4gTk87CisgICAgV2ViVGhyZWFkTG9jaygpOworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2Vs
ZiBkcmFnRGF0YUZvclNlc3Npb246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xvYmFs
Omdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25dOworICAgIHJldHVybiBfcHJpdmF0
ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnRGF0YSk7
CiB9CiAKIC0gKHZvaWQpX2VuZGVkRGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0
aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbgogeworICAgIFdlYlRocmVhZExvY2so
KTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW5kZWQoKTsKKyAg
ICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IgPSBudWxscHRyOwogfQogCi0t
IChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2RhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yCi17
Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotI2lmIFBMQVRGT1JNKElPUykKLS0gKFVJSW1hZ2UgKilf
Y3JlYXRlSW1hZ2VXaXRoUGxhdHRlckZvckltYWdlOihVSUltYWdlICopaW1hZ2UgYm91bmRpbmdS
ZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0IGNvbnRlbnRTY2FsZUZhY3RvcjooQ0dGbG9hdCljb250
ZW50U2NhbGVGYWN0b3IgY2xpcHBpbmdSZWN0czooTlNBcnJheTxOU1ZhbHVlICo+ICopY2xpcHBp
bmdSZWN0cworLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uCiB7Ci0gICAg
cmV0dXJuIG5pbDsKLX0KKyAgICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3Ig
PSBudWxscHRyOworICAgIGF1dG8qIHBhZ2UgPSBfcHJpdmF0ZS0+cGFnZTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybjsKIAotLSAoQ0dSZWN0KV9kYXRhSW50ZXJhY3Rpb25DYXJldFJl
Y3QKLXsKLSAgICByZXR1cm4gQ0dSZWN0TnVsbDsKKyAgICBzdGF0aWMgYXV0byBkZWZhdWx0RWRp
dERyYWdUZXh0SW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlU25h
cHNob3RPZkFsbFZpc2libGVDb250ZW50V2l0aG91dFNlbGVjdGlvbiB8IFRleHRJbmRpY2F0b3JP
cHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uUGFp
bnRBbGxDb250ZW50IHwgVGV4dEluZGljYXRvck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0
Y2hlc1NlbGVjdGlvbiB8IFRleHRJbmRpY2F0b3JPcHRpb25QYWludEJhY2tncm91bmRzIHwgVGV4
dEluZGljYXRvck9wdGlvblVzZVNlbGVjdGlvblJlY3RGb3JTaXppbmcgfCBUZXh0SW5kaWNhdG9y
T3B0aW9uSW5jbHVkZVNuYXBzaG90V2l0aFNlbGVjdGlvbkhpZ2hsaWdodCB8IFRleHRJbmRpY2F0
b3JPcHRpb25SZXNwZWN0VGV4dENvbG9yOworICAgIGF1dG8mIGZyYW1lID0gcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgaWYgKGF1dG8gcmFuZ2UgPSBm
cmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpKSB7CisgICAg
ICAgIGlmIChhdXRvIHRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFu
Z2UoKnJhbmdlLCBkZWZhdWx0RWRpdERyYWdUZXh0SW5kaWNhdG9yT3B0aW9ucywgVGV4dEluZGlj
YXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUsIEZsb2F0U2l6ZSgpKSkKKyAgICAgICAg
ICAgIF9wcml2YXRlLT5kYXRhT3BlcmF0aW9uVGV4dEluZGljYXRvciA9IGFkb3B0TlMoW1tXZWJV
SVRleHRJbmRpY2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOm5pbCB0ZXh0SW5kaWNhdG9y
RGF0YTp0ZXh0SW5kaWNhdG9yLT5kYXRhKCkgc2NhbGU6cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KV0pOworICAgIH0KIH0KLSNlbmRpZgogCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5URVJBQ1RJ
T04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQogCiBzdGF0aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdpbk1J
TUVUeXBlcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXgg
MjNkODM3ZDZkYTRiZjYyYmNmZTdhNWM3MmJhNDBjMTAzMWFhNzkzMS4uMGU2ZGYyN2FhYjAxZjU3
MTUyMTYzYjI3NjYwMmIyOGNhODg4OGE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaApAQCAtMjk4LDcgKzI5OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAKICNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICp0
ZXh0SW5kaWNhdG9yRGF0YTsKKyAgICBSZXRhaW5QdHI8V2ViVUlUZXh0SW5kaWNhdG9yRGF0YT4g
dGV4dEluZGljYXRvckRhdGE7CiAgICAgUmV0YWluUHRyPFdlYlVJVGV4dEluZGljYXRvckRhdGE+
IGRhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGIzNzRjYjNlYTViOTQ2YjZlYzA2YjliNGU2NTE1
MWUwMmJhOGI3ZGUuLjc3OTczNmExNmFmZjYwZTNmYTVhMGFjN2VhMzY0MDZkYzM2NGYyZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtMjEzLDkgKzIxMyw2
IEBAIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxl
cihMYXllckZsdXNoQ29udHJvbGxlciogZmx1CiAgICAgW19jYXJldENoYW5nZUxpc3RlbmVycyBy
ZWxlYXNlXTsKICAgICBbX2ZpeGVkUG9zaXRpb25Db250ZW50IHJlbGVhc2VdOwogI2VuZGlmCi0j
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW3RleHRJbmRpY2F0b3JEYXRhIHJlbGVh
c2VdOwotI2VuZGlmCiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNGZkMDc1YTNjMGJjYWVhNzhkMmExODA3
ZTdlYzU2NTlkNzliZmJlMC4uMDlhYTcwMjJjYTBkODVmYWVjMzFkZTk3OGZhZDczNGZiNmIzYTQx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtMTE4
LDYgKzExOCwxMCBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlF1aWNrTG9va0ZpbGVOYW1lS2V5Owog
ZXh0ZXJuIE5TU3RyaW5nICpXZWJRdWlja0xvb2tVVElLZXk7CiAjZW5kaWYKIAorI2lmIFRBUkdF
VF9PU19JUEhPTkUgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAw
CitAcHJvdG9jb2wgVUlEcm9wU2Vzc2lvbjsKKyNlbmRpZgorCiBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBXZWJWaWV3V2lsbENsb3NlTm90aWZpY2F0aW9uOwogCiAjaWYgRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUCkBAIC00NjQsMjEgKzQ2OCwyMSBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8g
dGhlIEFQSS4KICsgKHZvaWQpX3JlbGVhc2VNZW1vcnlOb3c7CiAKIC0gKHZvaWQpX3JlcGxhY2VD
dXJyZW50SGlzdG9yeUl0ZW06KFdlYkhpc3RvcnlJdGVtICopaXRlbTsKLSNlbmRpZiAvLyBUQVJH
RVRfT1NfSVBIT05FCiAKKyNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MTAwMDAKIC0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGll
bnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3NpdGlvbjsKIC0gKFdl
YlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nLCBnZXR0ZXI9X2RhdGFPcGVyYXRpb25UZXh0
SW5kaWNhdG9yKSBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICpkYXRhT3BlcmF0aW9uVGV4dEluZGlj
YXRvcjsKLS0gKHVpbnQ2NF90KV9lbnRlcmVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJh
Y3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9i
YWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKHVpbnQ2NF90KV91
cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50
KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246
KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKHZvaWQpX2V4aXRlZERhdGFJbnRlcmFjdGlvbjooaWQp
ZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENH
UG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247Ci0tICh2
b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihD
R1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVy
YXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKEJPT0wpX3RyeVRvUGVyZm9ybURhdGFJbnRl
cmFjdGlvbjooaWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVy
YXRpb247CistICh1aW50NjRfdClfZW50ZXJlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNl
c3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQ
b2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKKy0gKHVp
bnQ2NF90KV91cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lv
biBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBv
c2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uOworLSAodm9pZClfZXhpdGVkRGF0
YUludGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQp
Y2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoo
dWludDY0X3Qpb3BlcmF0aW9uOworLSAodm9pZClfcGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQg
PFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGds
b2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlv
bjsKKy0gKEJPT0wpX3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Np
b24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2lu
dClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKIC0gKHZvaWQp
X2VuZGVkRGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQ
b2ludCljbGllbnRQb3NpdGlvbjsKIAotI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QpIENH
UmVjdCBkYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q7Ci0tIChVSUltYWdlICopX2NyZWF0ZUltYWdl
V2l0aFBsYXR0ZXJGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGJvdW5kaW5nUmVjdDooQ0dSZWN0
KWJvdW5kaW5nUmVjdCBjb250ZW50U2NhbGVGYWN0b3I6KENHRmxvYXQpY29udGVudFNjYWxlRmFj
dG9yIGNsaXBwaW5nUmVjdHM6KE5TQXJyYXk8TlNWYWx1ZSAqPiAqKWNsaXBwaW5nUmVjdHM7Cisj
ZW5kaWYKKwogLy8gRGVwcmVjYXRlZC4gVXNlIC1bV2ViRGF0YVNvdXJjZSBfcXVpY2tMb29rQ29u
dGVudF0gaW5zdGVhZC4KIC0gKE5TRGljdGlvbmFyeSAqKXF1aWNrTG9va0NvbnRlbnRGb3JVUkw6
KE5TVVJMICopdXJsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNk
NWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVjMGQ1NTNlMTVkZTU0ZTY1NTM3M2Y4YTNhZDFiNzMxZjA2
NzkxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDEwIEBAIEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFNfSUZfTk9UXyA9ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8pOwogRU5B
QkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8gPSBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTOwog
RU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfWUVTID0gOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVf
UEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9D
U1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
ICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxF
X0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVf
RkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAk
KEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVU
RSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQ
VCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVS
X0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQo
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05D
VVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9YSU1J
VFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAk
KEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0Up
ICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VC
VExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQl9B
TklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5B
QkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChF
TkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxF
X1hTTFQpOworRU5BQkxFX0RSQUdfU1VQUE9SVCA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFC
TEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOwor
RU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFH
X1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25l
c2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQ
TEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVO
VF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElP
TklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQ
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dP
UkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFC
TEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lP
U19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJ
QlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1ND
UklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVU
RSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVf
U1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9O
X01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dF
Ql9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQo
RU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikg
JChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElP
Tik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KaW5kZXggOGYwNDQ1NGU3NjNhZGMzOWI5YWFlNjkwMWE5ZDAyNmQ2NjRkMzlmZC4u
ZTRlZDBiMzc3MzNiNmM4NTFmODFhOGJjMzJiZDZhOGVjYzJkZWM4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMjks
MTQgKzI5LDE0IEBACiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiRGF0YURldGVj
dGlvblJlc3VsdC5oIgogI2ltcG9ydCAiTG9hZFBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgIlBhZ2VD
bGllbnQuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDx3dGYvY2Yv
VHlwZUNhc3RzQ0YuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMubW0+KQotI2ltcG9y
dCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbT4KLSNlbmRpZgordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMDIsNCAr
MTAyLDM3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVl
ZGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywKICAgICB9CiB9CiAKKyNpZiBQTEFURk9S
TShJT1MpICYmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRE
cmFnSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0
b3JEYXRhPiB0ZXh0SW5kaWNhdG9yLCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3Is
IHVpbnQ2NF90IGFjdGlvbikKK3sKKyAgICBtX3BhZ2VDbGllbnQuc3RhcnREYXRhSW50ZXJhY3Rp
b25XaXRoSW1hZ2UoY2xpZW50UG9zaXRpb24sIGRyYWdJbWFnZUhhbmRsZSwgdGV4dEluZGljYXRv
ciwgZHJhZ0ltYWdlQW5jaG9yLCBhY3Rpb24pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmLCB1aW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmLCB1aW50NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKKwordm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21pc2Vk
RGF0YUZvckF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjZW5kaWYKKwordm9pZCBXZWJQYWdlUHJveHk6OnNl
dERyYWdDYXJldFJlY3QoY29uc3QgSW50UmVjdCYgZHJhZ0NhcmV0UmVjdCkKK3sKKyAgICBpZiAo
bV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9PSBkcmFnQ2FyZXRSZWN0KQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHByZXZpb3VzUmVjdCA9IG1fY3VycmVudERyYWdDYXJldFJlY3Q7CisgICAg
bV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9IGRyYWdDYXJldFJlY3Q7CisgICAgbV9wYWdlQ2xpZW50
LmRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChwcmV2aW91c1JlY3QsIGRyYWdDYXJl
dFJlY3QpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBmYzk0ZTUyNmEzMDUwNTJkYzQ4Y2RlODUwNzE5
NzlhNTU3NGNjOTdlLi4zMzRkNTgwNjQzYWNkOWIxMTZhMzA5NjI5ZTkzM2U3NmVmOGEzNmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKQEAgLTM5LDE2ICszOSwxMyBAQAogI2ltcG9ydCAiV0tTeW50aGV0aWND
bGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0IDxVSUtpdC9VSVZpZXcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYm
IF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25B
ZGRpdGlvbnMuaD4pCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uQWRkaXRpb25zLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPcGVu
UGFuZWxQYXJhbWV0ZXJzOwogfQpAQCAtNzYsNyArNzMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7
CiBAY2xhc3MgX1VJV2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAKICNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLUBjbGFzcyBXS0RhdGFJbnRlcmFjdGlvbkNhcmV0
VmlldzsKK0BjbGFzcyBfVUlUZXh0RHJhZ0NhcmV0VmlldzsKICNlbmRpZgogCiB0eXBlZGVmIHZv
aWQgKF5VSVdLQXV0b2NvcnJlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikoVUlXS0F1dG9jb3JyZWN0
aW9uUmVjdHMgKnJlY3RzRm9ySW5wdXQpOwpAQCAtMTExLDYgKzEwOCwzMiBAQCB0eXBlZGVmIHN0
ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisKK3N0cnVjdCBXS0RhdGFJbnRlcmFjdGlvblN0YXRlIHsKKyAgICBSZXRhaW5QdHI8
VUlJbWFnZT4gaW1hZ2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YT4gaW5kaWNhdG9yRGF0YTsKKyAgICBDR1BvaW50IGdlc3R1cmVPcmlnaW4geyBDR1BvaW50
WmVybyB9OworICAgIENHUG9pbnQgYWRqdXN0ZWRPcmlnaW4geyBDR1BvaW50WmVybyB9OworICAg
IENHUG9pbnQgbGFzdEdsb2JhbFBvc2l0aW9uIHsgQ0dQb2ludFplcm8gfTsKKyAgICBDR1JlY3Qg
ZWxlbWVudEJvdW5kcyB7IENHUmVjdFplcm8gfTsKKyAgICBCT09MIGRpZEJlZ2luRHJhZ2dpbmcg
eyBOTyB9OworICAgIEJPT0wgaXNQZXJmb3JtaW5nT3BlcmF0aW9uIHsgTk8gfTsKKyAgICBCT09M
IGlzQW5pbWF0aW5nQ29uY2x1ZGVFZGl0RHJhZyB7IE5PIH07CisgICAgUmV0YWluUHRyPGlkIDxV
SURyYWdTZXNzaW9uPj4gZHJhZ1Nlc3Npb247CisgICAgUmV0YWluUHRyPGlkIDxVSURyb3BTZXNz
aW9uPj4gZHJvcFNlc3Npb247CisgICAgQmxvY2tQdHI8dm9pZCgpPiBkcmFnU3RhcnRDb21wbGV0
aW9uQmxvY2s7CisgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBzb3VyY2VBY3Rpb24geyBX
ZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uTm9uZSB9OworCisgICAgU3RyaW5nIGxpbmtUaXRsZTsK
KyAgICBXZWJDb3JlOjpVUkwgbGlua1VSTDsKKworICAgIFJldGFpblB0cjxVSVZpZXc+IHZpc2li
bGVDb250ZW50Vmlld1NuYXBzaG90OworICAgIFJldGFpblB0cjxfVUlUZXh0RHJhZ0NhcmV0Vmll
dz4gY2FyZXRWaWV3OworfTsKKworI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKIHN0
cnVjdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIHsKICAgICBlbnVtIGNsYXNzIFNlbGVjdGlvblR5
cGUgeyBOb25lLCBQbHVnaW4sIFJhbmdlIH07CiAgICAgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbygp
OwpAQCAtMjIzLDggKzI0Niw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKICNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBXZWJLaXQ6OldLRGF0YUludGVyYWN0aW9u
U3RhdGUgX2RhdGFJbnRlcmFjdGlvblN0YXRlOwotICAgIFJldGFpblB0cjxXS0RhdGFJbnRlcmFj
dGlvbj4gX2RhdGFJbnRlcmFjdGlvbjsKLSAgICBSZXRhaW5QdHI8V0tEYXRhT3BlcmF0aW9uPiBf
ZGF0YU9wZXJhdGlvbjsKKyAgICBSZXRhaW5QdHI8VUlEcmFnSW50ZXJhY3Rpb24+IF9kYXRhSW50
ZXJhY3Rpb247CisgICAgUmV0YWluUHRyPFVJRHJvcEludGVyYWN0aW9uPiBfZGF0YU9wZXJhdGlv
bjsKICAgICBDR1BvaW50IF9kZWZlcnJlZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uOwogI2Vu
ZGlmCiB9CkBAIC0yMzMsNyArMjU2LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsK
IAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVj
b2duaXplckRlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXS0lu
dGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0FjdGlv
blNoZWV0QXNzaXN0YW50RGVsZWdhdGUKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAg
ICAsIFdLRGF0YUludGVyYWN0aW9uRGVsZWdhdGUsIFdLRGF0YU9wZXJhdGlvbkRlbGVnYXRlCisg
ICAgLCBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlLCBVSURyb3BJbnRlcmFjdGlvbkRlbGVnYXRl
CiAjZW5kaWYKID4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiNjRhYjM1YzkwOTlhNjBiZmI0NThm
MmQzZTU2M2Q2MmFhOGU1NDk3Li44OGUxYzJmNmU1N2FmYTNiYjMxMWE1YjFmMGRkMThiMGUzMDQ4
ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODMsMTMgKzgzLDI2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVjdGlvblJlY3QuaD4gLy8gRklYTUU6IFdLMiBzaG91bGQg
bm90IGluY2x1ZGUgV2ViS2l0IGhlYWRlcnMhCisjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCi0j
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKy8v
IEZJWE1FOiBNb3ZlIHByaXZhdGUgaGVhZGVycyB0byBVSUtpdFNQSS5oIGFuZCBhZGQgZGVjbGFy
YXRpb25zIGFzIG5lZWRlZCBmb3IgYnVpbGRpbmcgb24gT3BlblNvdXJjZSBhZ2FpbnN0IHRoZSBp
T1MgMTEgU0RLLgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnSW50ZXJhY3Rpb24uaD4KKyNpbXBvcnQg
PFVJS2l0L1VJRHJhZ0ludGVyYWN0aW9uX1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJh
Z1ByZXZpZXdQYXJhbWV0ZXJzLmg+CisjaW1wb3J0IDxVSUtpdC9VSURyYWdQcmV2aWV3X1ByaXZh
dGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ1Nlc3Npb24uaD4KKyNpbXBvcnQgPFVJS2l0L1VJ
RHJhZ2dpbmcuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJvcEludGVyYWN0aW9uLmg+CisjaW1wb3J0
IDxVSUtpdC9VSVByZXZpZXdJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlVUkxEcmFn
UHJldmlld1ZpZXcuaD4KKyNpbXBvcnQgPFVJS2l0L19VSVRleHREcmFnQ2FyZXRWaWV3Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFz
dGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmg+
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiBAaW50ZXJmYWNlIFVJ
RXZlbnQoVUlFdmVudEludGVybmFsKQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgVUlL
ZXlib2FyZElucHV0RmxhZ3MgX2lucHV0RmxhZ3M7CkBAIC00OTMsMTAgKzUwNiw2IEBAIGNvbnN0
IENHRmxvYXQgbWluaW11bVRhcEhpZ2hsaWdodFJhZGl1cyA9IDIuMDsKIAogQGltcGxlbWVudGF0
aW9uIFdLQ29udGVudFZpZXcgKFdLSW50ZXJhY3Rpb24pCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uQWRkaXRpb25zLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogLSAodm9pZClfY3JlYXRl
QW5kQ29uZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBfZG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxv
Y10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNvZ25p
emVkOildKTsKQEAgLTQxNTcsNiArNDE2Niw2NTQgQEAgc3RhdGljIGJvb2wgaXNBc3Npc3RhYmxl
SW5wdXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgICAgICBjb21wbGV0aW9uKG5pbCwgbmlsKTsK
IH0KIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK3N0YXRpYyBOU1RpbWVJbnRlcnZhbCBs
b25nUHJlc3NBY3Rpb25EZWxheUFmdGVyTGlmdCgpCit7CisgICAgcmV0dXJuIF9VSURyYWdJbnRl
cmFjdGlvbkRlZmF1bHRDb21wZXRpbmdMb25nUHJlc3NEZWxheSgpIC0gX1VJRHJhZ0ludGVyYWN0
aW9uRGVmYXVsdExpZnREZWxheSgpOworfQorCistIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
d2ViVmlld1VJRGVsZWdhdGUKK3sKKyAgICByZXR1cm4gKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilbX3dlYlZpZXcgVUlEZWxlZ2F0ZV07Cit9CisKKy0gKHZvaWQpc2V0dXBEYXRhSW50ZXJhY3Rp
b25EZWxlZ2F0ZXMKK3sKKyAgICBfZGF0YUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJRHJhZ0lu
dGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICBfZGF0YU9wZXJh
dGlvbiA9IGFkb3B0TlMoW1tVSURyb3BJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0
ZTpzZWxmXSk7CisgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2RhdGFJbnRlcmFjdGlvbi5nZXQo
KV07CisgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCldOworfQor
CistICh2b2lkKXRlYXJkb3duRGF0YUludGVyYWN0aW9uRGVsZWdhdGVzCit7CisgICAgaWYgKF9k
YXRhSW50ZXJhY3Rpb24pCisgICAgICAgIFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9kYXRhSW50
ZXJhY3Rpb24uZ2V0KCldOworCisgICAgaWYgKF9kYXRhT3BlcmF0aW9uKQorICAgICAgICBbc2Vs
ZiByZW1vdmVJbnRlcmFjdGlvbjpfZGF0YU9wZXJhdGlvbi5nZXQoKV07CisKKyAgICBfZGF0YUlu
dGVyYWN0aW9uID0gbmlsOworICAgIF9kYXRhT3BlcmF0aW9uID0gbmlsOworCisgICAgW3NlbGYg
Y2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworfQorCistICh2b2lkKV9zdGFydERhdGFJ
bnRlcmFjdGlvbldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIHdpdGhJbmRp
Y2F0b3JEYXRhOihzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0b3JEYXRhPilpbmRpY2F0b3JEYXRh
IGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6KENH
UG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9uOih1aW50NjRfdClhY3Rpb24KK3sKKyAgICBBU1NFUlQo
YWN0aW9uICE9IERyYWdTb3VyY2VBY3Rpb25Ob25lKTsKKyAgICBfZGF0YUludGVyYWN0aW9uU3Rh
dGUuaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmltYWdl
LmdldCgpIHNjYWxlOl9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpIG9yaWVudGF0aW9uOlVJSW1h
Z2VPcmllbnRhdGlvblVwXSk7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmluZGljYXRvckRh
dGEgPSBpbmRpY2F0b3JEYXRhOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rp
b24gPSBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihhY3Rpb24pOworCisgICAgLy8gQXMg
dGhlIGRyYWcgaXMgYmVpbmcgcmVjb2duaXplZCwgc2NoZWR1bGUgdGhlIGFjdGlvbiBzaGVldCB0
byBzaG93IGluIDUwMCBtcywgaWYgdGhlcmUgaXMgYW4gYWN0aW9uIHNoZWV0IHRvIGJlIHNob3du
LgorICAgIC8vIFdlIHdpbGwgaGFuZGxlIHNob3dpbmcgdGhlIGFjdGlvbiBzaGVldCBoZXJlLCBp
bnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggdGhlIGxvbmcgcHJlc3MgZ2VzdHVyZSByZWNvZ25pemVy
LgorICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAg
W19sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOllFU107CisgICAgW3NlbGYg
Y2FuY2VsRGVmZXJyZWRBY3Rpb25BdERyYWdPcmlnaW5dOworICAgIFtzZWxmIHBlcmZvcm1TZWxl
Y3RvcjpAc2VsZWN0b3IocGVyZm9ybURlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luKSB3aXRoT2Jq
ZWN0Om5pbCBhZnRlckRlbGF5OmxvbmdQcmVzc0FjdGlvbkRlbGF5QWZ0ZXJMaWZ0KCldOworICAg
IF9kZWZlcnJlZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uID0gX2RhdGFJbnRlcmFjdGlvblN0
YXRlLmdlc3R1cmVPcmlnaW47Cit9CisKKy0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVy
YWN0aW9uUmVxdWVzdDooQk9PTClzdGFydGVkCit7CisgICAgQmxvY2tQdHI8dm9pZCgpPiBzYXZl
ZENvbXBsZXRpb25CbG9jayA9IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcmFnU3RhcnRDb21wbGV0
aW9uQmxvY2s7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTdGFydENvbXBsZXRpb25C
bG9jayA9IG5pbDsKKyAgICBBU1NFUlQoc2F2ZWRDb21wbGV0aW9uQmxvY2spOworCisgICAgaWYg
KHN0YXJ0ZWQpIHsKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgZ29pbmcgdGhyb3VnaCB3aXRoIHRo
ZSBkcmFnLCBkb24ndCBhbGxvdyB0aGUgaGlnaGxpZ2h0IGxvbmcgcHJlc3MgZ2VzdHVyZSByZWNv
Z25pemVyIHRvIGZpcmUgYSBzeW50aGV0aWMgY2xpY2suCisgICAgICAgIFtzZWxmIF9jYW5jZWxM
b25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhl
IHdlYiBwcm9jZXNzIHJlamVjdGVkIHRoZSBkcmFnIHN0YXJ0IHJlcXVlc3QsIHNvIGRvbid0IGdv
IHRocm91Z2ggd2l0aCB0aGUgZHJhZy4KKyAgICAgICAgLy8gQnkgY2xlYXJpbmcgb3V0IHRoZSBz
b3VyY2Ugc2Vzc2lvbiBzdGF0ZSwgd2UgZm9yY2UgLWl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uOnNl
c3Npb246IHRvIHJldHVybiBhbiBlbXB0eSBhcnJheSwgd2hpY2gKKyAgICAgICAgLy8gY2F1c2Vz
IFVJS2l0IHRvIGJhaWwgYmVmb3JlIGJlZ2lubmluZyB0aGUgbGlmdCBhbmltYXRpb24uCisgICAg
ICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKKyAgICB9CisKKyAgICBp
ZiAoc2F2ZWRDb21wbGV0aW9uQmxvY2spCisgICAgICAgIHNhdmVkQ29tcGxldGlvbkJsb2NrKCk7
Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8VUlJbWFnZT4gdWlJbWFnZUZvckltYWdlKFJlZlB0cjxJ
bWFnZT4gaW1hZ2UpCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICBpZiAoIWNn
SW1hZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tV
SUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOworfQorCitzdGF0
aWMgQk9PTCBzaG91bGRVc2VUZXh0SW5kaWNhdG9yVG9DcmVhdGVQcmV2aWV3Rm9yRHJhZ0FjdGlv
bihEcmFnU291cmNlQWN0aW9uIGFjdGlvbikKK3sKKyAgICBpZiAoYWN0aW9uICYgKERyYWdTb3Vy
Y2VBY3Rpb25MaW5rIHwgRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbikpCisgICAgICAgIHJldHVy
biBZRVM7CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorICAgIGlmIChhY3Rpb24g
JiBEcmFnU291cmNlQWN0aW9uQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRp
ZgorCisgICAgcmV0dXJuIE5POworfQorCistIChSZXRhaW5QdHI8VUlUYXJnZXRlZERyYWdQcmV2
aWV3PilkcmFnUHJldmlld0ZvckltYWdlOihVSUltYWdlICopaW1hZ2UgZnJhbWVJblJvb3RWaWV3
Q29vcmRpbmF0ZXM6KGNvbnN0IEZsb2F0UmVjdCYpZnJhbWUgY2xpcHBpbmdSZWN0c0luRnJhbWVD
b29yZGluYXRlczooY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mKWNsaXBwaW5nUmVjdHMgYmFja2dy
b3VuZENvbG9yOihVSUNvbG9yICopYmFja2dyb3VuZENvbG9yCit7CisgICAgaWYgKGZyYW1lLmlz
RW1wdHkoKSB8fCAhaW1hZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVUlWaWV3
ICpjb250YWluZXIgPSBbc2VsZiB1bnNjYWxlZFZpZXddOworICAgIEZsb2F0UmVjdCBmcmFtZUlu
Q29udGFpbmVyQ29vcmRpbmF0ZXM7CisgICAgTlNNdXRhYmxlQXJyYXkgKmNsaXBwaW5nUmVjdFZh
bHVlc0luRnJhbWVDb29yZGluYXRlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTpjbGlwcGluZ1JlY3RzLnNpemUoKV07CisKKyAgICBmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0
ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmcmFtZSB0b1ZpZXc6Y29udGFpbmVyXTsKKyAgICBpZiAo
ZnJhbWVJbkNvbnRhaW5lckNvb3JkaW5hdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBmbG9hdCB3aWR0aFNjYWxpbmdSYXRpbyA9IGZyYW1lSW5Db250YWluZXJD
b29yZGluYXRlcy53aWR0aCgpIC8gZnJhbWUud2lkdGgoKTsKKyAgICBmbG9hdCBoZWlnaHRTY2Fs
aW5nUmF0aW8gPSBmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXMuaGVpZ2h0KCkgLyBmcmFtZS5o
ZWlnaHQoKTsKKyAgICBmb3IgKGF1dG8gcmVjdCA6IGNsaXBwaW5nUmVjdHMpIHsKKyAgICAgICAg
cmVjdC5zY2FsZSh3aWR0aFNjYWxpbmdSYXRpbywgaGVpZ2h0U2NhbGluZ1JhdGlvKTsKKyAgICAg
ICAgW2NsaXBwaW5nUmVjdFZhbHVlc0luRnJhbWVDb29yZGluYXRlcyBhZGRPYmplY3Q6W05TVmFs
dWUgdmFsdWVXaXRoQ0dSZWN0OnJlY3RdXTsKKyAgICB9CisKKyAgICBhdXRvIGltYWdlVmlldyA9
IGFkb3B0TlMoW1tVSUltYWdlVmlldyBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZV0pOworICAg
IFtpbWFnZVZpZXcgc2V0RnJhbWU6ZnJhbWVJbkNvbnRhaW5lckNvb3JkaW5hdGVzXTsKKworICAg
IFJldGFpblB0cjxVSURyYWdQcmV2aWV3UGFyYW1ldGVycz4gcGFyYW1ldGVyczsKKyAgICBpZiAo
Y2xpcHBpbmdSZWN0VmFsdWVzSW5GcmFtZUNvb3JkaW5hdGVzLmNvdW50KQorICAgICAgICBwYXJh
bWV0ZXJzID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0V2l0
aFRleHRMaW5lUmVjdHM6Y2xpcHBpbmdSZWN0VmFsdWVzSW5GcmFtZUNvb3JkaW5hdGVzXSk7Cisg
ICAgZWxzZQorICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdQYXJh
bWV0ZXJzIGFsbG9jXSBpbml0XSk7CisKKyAgICBpZiAoYmFja2dyb3VuZENvbG9yKQorICAgICAg
ICBbcGFyYW1ldGVycyBzZXRCYWNrZ3JvdW5kQ29sb3I6YmFja2dyb3VuZENvbG9yXTsKKworICAg
IENHUG9pbnQgY2VudGVySW5Db250YWluZXJDb29yZGluYXRlcyA9IHsgQ0dSZWN0R2V0TWlkWChm
cmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXMpLCBDR1JlY3RHZXRNaWRZKGZyYW1lSW5Db250YWlu
ZXJDb29yZGluYXRlcykgfTsKKyAgICBhdXRvIHRhcmdldCA9IGFkb3B0TlMoW1tVSURyYWdQcmV2
aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpjb250YWluZXIgY2VudGVyOmNlbnRl
ckluQ29udGFpbmVyQ29vcmRpbmF0ZXNdKTsKKyAgICBhdXRvIGRyYWdQcmV2aWV3ID0gYWRvcHRO
UyhbW1VJVGFyZ2V0ZWREcmFnUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3OmltYWdlVmlldy5n
ZXQoKSBwYXJhbWV0ZXJzOnBhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnRhcmdldC5nZXQoKV0pOwor
ICAgIHJldHVybiBkcmFnUHJldmlldzsKK30KKworLSAoUmV0YWluUHRyPFVJVGFyZ2V0ZWREcmFn
UHJldmlldz4pZHJhZ1ByZXZpZXdGb3JDdXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGUKK3sKKyAg
ICBhdXRvIGFjdGlvbiA9IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb247CisgICAg
aWYgKGFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSAmJiBfZGF0YUludGVyYWN0aW9uU3Rh
dGUuaW1hZ2UpIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4gZW1wdHlDbGlwcGluZ1JlY3Rz
OworICAgICAgICByZXR1cm4gW3NlbGYgZHJhZ1ByZXZpZXdGb3JJbWFnZTpfZGF0YUludGVyYWN0
aW9uU3RhdGUuaW1hZ2UuZ2V0KCkgZnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6X2RhdGFJbnRl
cmFjdGlvblN0YXRlLmVsZW1lbnRCb3VuZHMgY2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGluYXRl
czplbXB0eUNsaXBwaW5nUmVjdHMgYmFja2dyb3VuZENvbG9yOm5pbF07CisgICAgfQorCisgICAg
aWYgKHNob3VsZFVzZVRleHRJbmRpY2F0b3JUb0NyZWF0ZVByZXZpZXdGb3JEcmFnQWN0aW9uKGFj
dGlvbikgJiYgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmluZGljYXRvckRhdGEpIHsKKyAgICAgICAg
YXV0byBpbmRpY2F0b3IgPSBfZGF0YUludGVyYWN0aW9uU3RhdGUuaW5kaWNhdG9yRGF0YS52YWx1
ZSgpOworICAgICAgICByZXR1cm4gW3NlbGYgZHJhZ1ByZXZpZXdGb3JJbWFnZTp1aUltYWdlRm9y
SW1hZ2UoaW5kaWNhdG9yLmNvbnRlbnRJbWFnZSkuZ2V0KCkgZnJhbWVJblJvb3RWaWV3Q29vcmRp
bmF0ZXM6aW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgY2xp
cHBpbmdSZWN0c0luRnJhbWVDb29yZGluYXRlczppbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGlu
Z1JlY3RDb29yZGluYXRlcyBiYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgY29sb3JXaXRoQ0dDb2xv
cjpjYWNoZWRDR0NvbG9yKGluZGljYXRvci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXV07Cisg
ICAgfQorCisgICAgcmV0dXJuIG5pbDsKK30KKworLSAodm9pZClwZXJmb3JtRGVmZXJyZWRBY3Rp
b25BdERyYWdPcmlnaW4KK3sKKyAgICBhdXRvIGRlZmVycmVkQWN0aW9uUG9zaXRpb24gPSByb3Vu
ZGVkSW50UG9pbnQoX2RlZmVycmVkQWN0aW9uU2hlZXRSZXF1ZXN0TG9jYXRpb24pOworICAgIFtz
ZWxmIGNhbmNlbERlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luXTsKKyAgICBbc2VsZiBfY2FuY2Vs
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOworCisgICAgUmV0YWluUHRyPFdLQ29udGVudFZp
ZXc+IHJldGFpbmVkU2VsZihzZWxmKTsKKyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1h
dGlvblVwZGF0ZTpbcmV0YWluZWRTZWxmXSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24gcG9zaXRpb25JbmZvcm1hdGlvbikgeworICAgICAgICBpZiAoYXV0byBhY3Rpb24gPSBbcmV0
YWluZWRTZWxmIF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpwb3Np
dGlvbkluZm9ybWF0aW9uXSkKKyAgICAgICAgICAgIFtyZXRhaW5lZFNlbGYgcGVyZm9ybVNlbGVj
dG9yOmFjdGlvbl07CisgICAgfSBmb3JSZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0KGRlZmVycmVkQWN0aW9uUG9zaXRpb24pXTsKK30KKworLSAodm9pZCljYW5jZWxEZWZlcnJl
ZEFjdGlvbkF0RHJhZ09yaWdpbgoreworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZv
cm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybURlZmVy
cmVkQWN0aW9uQXREcmFnT3JpZ2luKSBvYmplY3Q6bmlsXTsKKyAgICBfZGVmZXJyZWRBY3Rpb25T
aGVldFJlcXVlc3RMb2NhdGlvbiA9IENHUG9pbnRaZXJvOworfQorCistICh2b2lkKWNvbXB1dGVD
bGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNl
c3Npb24gb3V0Q2xpZW50UG9pbnQ6KENHUG9pbnQgKilvdXRDbGllbnRQb2ludCBvdXRHbG9iYWxQ
b2ludDooQ0dQb2ludCAqKW91dEdsb2JhbFBvaW50Cit7CisgICAgaWYgKG91dENsaWVudFBvaW50
KQorICAgICAgICAqb3V0Q2xpZW50UG9pbnQgPSBbc2Vzc2lvbiBsb2NhdGlvbkluVmlldzpzZWxm
XTsKKworICAgIGlmIChvdXRHbG9iYWxQb2ludCkgeworICAgICAgICBVSVdpbmRvdyAqd2luZG93
ID0gc2VsZi53aW5kb3c7CisgICAgICAgICpvdXRHbG9iYWxQb2ludCA9IHdpbmRvdyA/IFtzZXNz
aW9uIGxvY2F0aW9uSW5WaWV3OndpbmRvd10gOiBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFzdEds
b2JhbFBvc2l0aW9uOworICAgIH0KK30KKworc3RhdGljIFVJRHJvcE9wZXJhdGlvbiBkcm9wT3Bl
cmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7
CisgICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Nb3ZlKQorICAgICAgICByZXR1cm4g
VUlEcm9wT3BlcmF0aW9uTW92ZTsKKworICAgIGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9u
Q29weSkKKyAgICAgICAgcmV0dXJuIFVJRHJvcE9wZXJhdGlvbkNvcHk7CisKKyAgICByZXR1cm4g
VUlEcm9wT3BlcmF0aW9uQ2FuY2VsOworfQorCistIChEcmFnRGF0YSlkcmFnRGF0YUZvckRyb3BT
ZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBkcmFnRGVzdGluYXRpb25BY3Rpb246
KFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKWRyYWdEZXN0aW5hdGlvbkFjdGlvbgoreworICAgIENH
UG9pbnQgZ2xvYmFsOworICAgIENHUG9pbnQgY2xpZW50OworICAgIFtzZWxmIGNvbXB1dGVDbGll
bnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIG91dENsaWVudFBvaW50OiZj
bGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisKKyAgICBEcmFnT3BlcmF0aW9uIGRyYWdP
cGVyYXRpb25NYXNrID0gc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oc2Vzc2lvbi5hbGxvd3NN
b3ZlT3BlcmF0aW9uID8gRHJhZ09wZXJhdGlvbkV2ZXJ5IDogKERyYWdPcGVyYXRpb25FdmVyeSAm
IH5EcmFnT3BlcmF0aW9uTW92ZSkpOworICAgIHJldHVybiB7IHNlc3Npb24sIHJvdW5kZWRJbnRQ
b2ludChjbGllbnQpLCByb3VuZGVkSW50UG9pbnQoZ2xvYmFsKSwgZHJhZ09wZXJhdGlvbk1hc2ss
IERyYWdBcHBsaWNhdGlvbk5vbmUsIHN0YXRpY19jYXN0PERyYWdEZXN0aW5hdGlvbkFjdGlvbj4o
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKSB9OworfQorCistICh2b2lkKWNsZWFuVXBEcmFnU291cmNl
U2Vzc2lvblN0YXRlCit7CisgICAgaWYgKCFbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hh
cmVkSW5zdGFuY2VdIGhhc1BlbmRpbmdPcGVyYXRpb25dKSB7CisgICAgICAgIC8vIElmIHdlJ3Jl
IHBlcmZvcm1pbmcgYSBkcmFnIG9wZXJhdGlvbiwgZG9uJ3QgY2xlYXIgb3V0IHRoZSBwYXN0ZWJv
YXJkIHlldCwgc2luY2UgYW5vdGhlciB3ZWIgdmlldyBtYXkgc3RpbGwgcmVxdWlyZSBhY2Nlc3Mg
dG8gaXQuCisgICAgICAgIC8vIFRoZSBwYXN0ZWJvYXJkIHdpbGwgYmUgY2xlYXJlZCBhZnRlciB0
aGUgbGFzdCBjbGllbnQgaXMgZmluaXNoZWQgcGVyZm9ybWluZyBhIGRyYWcgb3BlcmF0aW9uIHVz
aW5nIHRoZSBpdGVtIHByb3ZpZGVycy4KKyAgICAgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOm5pbF07CisgICAgfQorCisgICAg
aWYgKGF1dG8gY29tcGxldGlvbkJsb2NrID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTdGFy
dENvbXBsZXRpb25CbG9jaykgeworICAgICAgICAvLyBJZiB0aGUgcHJldmlvdXMgZHJhZyBzZXNz
aW9uIGlzIHN0aWxsIGluaXRpYWxpemluZywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCBpdHMgY29t
cGxldGlvbiBibG9jayBpcyBjYWxsZWQgdG8gcHJldmVudCBVSUtpdCBmcm9tIGdldHRpbmcgb3V0
IG9mIHN0YXRlLgorICAgICAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJhZ1N0YXJ0Q29tcGxl
dGlvbkJsb2NrID0gbmlsOworICAgICAgICBjb21wbGV0aW9uQmxvY2soKTsKKyAgICB9CisKKyAg
ICBbX2RhdGFJbnRlcmFjdGlvblN0YXRlLmNhcmV0VmlldyByZW1vdmVdOworICAgIFtfZGF0YUlu
dGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3QgcmVtb3ZlRnJvbVN1cGVy
dmlld107CisKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUgPSB7IH07Cit9CisKK3N0YXRpYyBO
U0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICpleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21EcmFnSXRl
bXMoTlNBcnJheTxVSURyYWdJdGVtICo+ICpkcmFnSXRlbXMpCit7CisgICAgX19ibG9jayBOU011
dGFibGVBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqcHJvdmlkZXJzID0gW05TTXV0YWJsZUFycmF5
IGFycmF5XTsKKyAgICBmb3IgKFVJRHJhZ0l0ZW0gKml0ZW0gaW4gZHJhZ0l0ZW1zKSB7CisgICAg
ICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gcHJvdmlkZXIgPSBpdGVtLml0ZW1Qcm92aWRl
cjsKKyAgICAgICAgaWYgKHByb3ZpZGVyKQorICAgICAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmpl
Y3Q6cHJvdmlkZXIuZ2V0KCldOworICAgIH0KKyAgICByZXR1cm4gcHJvdmlkZXJzOworfQorCitz
dGF0aWMgTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqZXh0cmFjdEl0ZW1Qcm92aWRlcnNGcm9t
RHJvcFNlc3Npb24oaWQgPFVJRHJvcFNlc3Npb24+IHNlc3Npb24pCit7CisgICAgcmV0dXJuIGV4
dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyYWdJdGVtcyhzZXNzaW9uLml0ZW1zKTsKK30KKworLSAo
dm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFRleHRJ
bmRpY2F0b3JEYXRhPilkYXRhCit7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIHNuYXBzaG90V2l0aG91dFNlbGVjdGlvbiA9IGRhdGEtPmNvbnRlbnRJbWFnZVdp
dGhvdXRTZWxlY3Rpb247CisgICAgaWYgKCFzbmFwc2hvdFdpdGhvdXRTZWxlY3Rpb24pCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8gdW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UgPSBzbmFwc2hv
dFdpdGhvdXRTZWxlY3Rpb24tPm5hdGl2ZUltYWdlKCk7CisgICAgaWYgKCF1bnNlbGVjdGVkU25h
cHNob3RJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25V
bnNlbGVjdGVkQ29udGVudEltYWdlID0gYWRvcHROUyhbW1VJSW1hZ2UgYWxsb2NdIGluaXRXaXRo
Q0dJbWFnZTp1bnNlbGVjdGVkU25hcHNob3RJbWFnZS5nZXQoKSBzY2FsZTpfcGFnZS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25VcF0pOworICAgIFJl
dGFpblB0cjxVSUltYWdlVmlldz4gdW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdCA9IGFkb3B0TlMo
W1tVSUltYWdlVmlldyBhbGxvY10gaW5pdFdpdGhJbWFnZTpkYXRhSW50ZXJhY3Rpb25VbnNlbGVj
dGVkQ29udGVudEltYWdlLmdldCgpXSk7CisgICAgW3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3Qg
c2V0RnJhbWU6ZGF0YS0+Y29udGVudEltYWdlV2l0aG91dFNlbGVjdGlvblJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXNdOworCisgICAgUmV0YWluUHRyPFdLQ29udGVudFZpZXc+IHByb3RlY3RlZFNl
bGYgPSBzZWxmOworICAgIFJldGFpblB0cjxVSVZpZXc+IHZpc2libGVDb250ZW50Vmlld1NuYXBz
aG90ID0gYWRvcHROUyhfZGF0YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3U25h
cHNob3QubGVha1JlZigpKTsKKworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc0FuaW1hdGlu
Z0NvbmNsdWRlRWRpdERyYWcgPSBZRVM7CisgICAgW3NlbGYgaW5zZXJ0U3Vidmlldzp1bnNlbGVj
dGVkQ29udGVudFNuYXBzaG90LmdldCgpIGJlbG93U3Vidmlldzp2aXNpYmxlQ29udGVudFZpZXdT
bmFwc2hvdC5nZXQoKV07CisgICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOjAuMjUgYW5p
bWF0aW9uczpeKCkgeworICAgICAgICBbdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Qgc2V0QWxw
aGE6MF07CisgICAgfSBjb21wbGV0aW9uOl4oQk9PTCBjb21wbGV0ZWQpIHsKKyAgICAgICAgW3Zp
c2libGVDb250ZW50Vmlld1NuYXBzaG90IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgICAgICBb
VUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246MC4yNSBhbmltYXRpb25zOl4oKSB7CisgICAgICAg
ICAgICBbcHJvdGVjdGVkU2VsZiBzZXRTdXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXc6Tk9d
OworICAgICAgICAgICAgW3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3Qgc2V0QWxwaGE6MF07Cisg
ICAgICAgIH0gY29tcGxldGlvbjpeKEJPT0wgY29tcGxldGVkKSB7CisgICAgICAgICAgICBbdW5z
ZWxlY3RlZENvbnRlbnRTbmFwc2hvdCByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgfV07
CisgICAgfV07Cit9CisKKy0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9s
bGVyT3BlcmF0aW9uOihCT09MKWhhbmRsZWQKK3sKKyAgICBbW1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQgc2hhcmVkSW5zdGFuY2VdIGRlY3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudF07Cisg
ICAgUmV0YWluUHRyPGlkIDxVSURyb3BTZXNzaW9uPj4gZHJvcFNlc3Npb24gPSBfZGF0YUludGVy
YWN0aW9uU3RhdGUuZHJvcFNlc3Npb247CisgICAgaWYgKFtzZWxmLndlYlZpZXdVSURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGF0YUludGVyYWN0aW9uT3Bl
cmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOml0ZW1Qcm92aWRlcnM6KV0pCisgICAgICAgIFtz
ZWxmLndlYlZpZXdVSURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9w
ZXJhdGlvbldhc0hhbmRsZWQ6aGFuZGxlZCBmb3JTZXNzaW9uOmRyb3BTZXNzaW9uLmdldCgpIGl0
ZW1Qcm92aWRlcnM6W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdLml0
ZW1Qcm92aWRlcnNdOworCisgICAgaWYgKCFfZGF0YUludGVyYWN0aW9uU3RhdGUuaXNBbmltYXRp
bmdDb25jbHVkZUVkaXREcmFnKQorICAgICAgICBzZWxmLnN1cHByZXNzQXNzaXN0YW50U2VsZWN0
aW9uVmlldyA9IE5POworCisgICAgQ0dQb2ludCBnbG9iYWw7CisgICAgQ0dQb2ludCBjbGllbnQ7
CisgICAgW3NlbGYgY29tcHV0ZUNsaWVudEFuZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOmRy
b3BTZXNzaW9uLmdldCgpIG91dENsaWVudFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmds
b2JhbF07CisgICAgW3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworICAgIF9w
YWdlLT5kcmFnRW5kZWQocm91bmRlZEludFBvaW50KGNsaWVudCksIHJvdW5kZWRJbnRQb2ludChn
bG9iYWwpLCBfcGFnZS0+Y3VycmVudERyYWdPcGVyYXRpb24oKSk7Cit9CisKKy0gKHZvaWQpX3Ry
YW5zaXRpb25EcmFnUHJldmlld1RvSW1hZ2VJZk5lY2Vzc2FyeTooaWQgPFVJRHJhZ1Nlc3Npb24+
KXNlc3Npb24KK3sKKyAgICBpZiAoX2RhdGFJbnRlcmFjdGlvblN0YXRlLnNvdXJjZUFjdGlvbiAm
IERyYWdTb3VyY2VBY3Rpb25JbWFnZSB8fCAhKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VB
Y3Rpb24gJiBEcmFnU291cmNlQWN0aW9uTGluaykpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gbGlua0RyYWdnaW5nQ2VudGVyID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmFkanVzdGVkT3Jp
Z2luOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gdGl0bGUgPSAoTlNTdHJpbmcgKilfZGF0YUlu
dGVyYWN0aW9uU3RhdGUubGlua1RpdGxlOworICAgIFJldGFpblB0cjxOU1VSTD4gdXJsID0gKE5T
VVJMICopX2RhdGFJbnRlcmFjdGlvblN0YXRlLmxpbmtVUkw7CisgICAgc2Vzc2lvbi5pdGVtcy5m
aXJzdE9iamVjdC5wcmV2aWV3UHJvdmlkZXIgPSBbdGl0bGUsIHVybCwgbGlua0RyYWdnaW5nQ2Vu
dGVyXSAoKSAtPiBVSURyYWdQcmV2aWV3ICogeworICAgICAgICBVSVVSTERyYWdQcmV2aWV3Vmll
dyAqcHJldmlld1ZpZXcgPSBbVUlVUkxEcmFnUHJldmlld1ZpZXcgdmlld1dpdGhUaXRsZTp0aXRs
ZS5nZXQoKSBVUkw6dXJsLmdldCgpXTsKKyAgICAgICAgcHJldmlld1ZpZXcuY2VudGVyID0gbGlu
a0RyYWdnaW5nQ2VudGVyOworCisgICAgICAgIFVJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzICpwYXJh
bWV0ZXJzID0gW1tbVUlEcmFnUHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRXaXRoVGV4dExp
bmVSZWN0czpAWyBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6cHJldmlld1ZpZXcuYm91bmRzXSBd
XSBhdXRvcmVsZWFzZV07CisgICAgICAgIHJldHVybiBbW1tVSURyYWdQcmV2aWV3IGFsbG9jXSBp
bml0V2l0aFZpZXc6cHJldmlld1ZpZXcgcGFyYW1ldGVyczpwYXJhbWV0ZXJzXSBhdXRvcmVsZWFz
ZV07CisgICAgfTsKK30KKworLSAodm9pZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRS
ZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdAoreworICAg
IEJPT0wgcHJldmlvdXNSZWN0SXNFbXB0eSA9IENHUmVjdElzRW1wdHkocHJldmlvdXNSZWN0KTsK
KyAgICBCT09MIGN1cnJlbnRSZWN0SXNFbXB0eSA9IENHUmVjdElzRW1wdHkocmVjdCk7CisgICAg
aWYgKHByZXZpb3VzUmVjdElzRW1wdHkgJiYgY3VycmVudFJlY3RJc0VtcHR5KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAocHJldmlvdXNSZWN0SXNFbXB0eSkgeworICAgICAgICBfZGF0YUlu
dGVyYWN0aW9uU3RhdGUuY2FyZXRWaWV3ID0gYWRvcHROUyhbW19VSVRleHREcmFnQ2FyZXRWaWV3
IGFsbG9jXSBpbml0V2l0aFRleHRJbnB1dFZpZXc6c2VsZl0pOworICAgICAgICBbX2RhdGFJbnRl
cmFjdGlvblN0YXRlLmNhcmV0VmlldyBpbnNlcnRBdFBvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0
ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoY3VycmVudFJlY3RJc0VtcHR5KSB7CisgICAgICAgIFtfZGF0YUludGVyYWN0aW9uU3Rh
dGUuY2FyZXRWaWV3IHJlbW92ZV07CisgICAgICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5jYXJl
dFZpZXcgPSBuaWw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbX2RhdGFJbnRlcmFj
dGlvblN0YXRlLmNhcmV0VmlldyB1cGRhdGVUb1Bvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0ZXh0
UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07Cit9CisKKy0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
KV9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+
KXNlc3Npb24KK3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNl
bGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdn
aW5nSW5mbzopXSkKKyAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3
IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86c2Vzc2lvbl07CisKKyAg
ICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V0tEcmFnRGVzdGluYXRpb25B
Y3Rpb25Mb2FkOworfQorCitzdGF0aWMgQk9PTCBwb3NpdGlvbkluZm9ybWF0aW9uTWF5U3RhcnRE
YXRhSW50ZXJhY3Rpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBv
c2l0aW9uSW5mb3JtYXRpb24pCit7CisgICAgcmV0dXJuIHBvc2l0aW9uSW5mb3JtYXRpb24uaXNJ
bWFnZSB8fCBwb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayB8fCBwb3NpdGlvbkluZm9ybWF0aW9u
LmlzQXR0YWNobWVudCB8fCBwb3NpdGlvbkluZm9ybWF0aW9uLmhhc1NlbGVjdGlvbkF0UG9zaXRp
b247Cit9CisKKy0gKGlkIDxVSURyYWdEcm9wU2Vzc2lvbj4pY3VycmVudERyYWdPckRyb3BTZXNz
aW9uCit7CisgICAgaWYgKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcm9wU2Vzc2lvbikKKyAgICAg
ICAgcmV0dXJuIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcm9wU2Vzc2lvbi5nZXQoKTsKKyAgICBy
ZXR1cm4gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTZXNzaW9uLmdldCgpOworfQorCisjcHJh
Z21hIG1hcmsgLSBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlCisKKy0gKHZvaWQpX2RyYWdJbnRl
cmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lv
bjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tf
dCljb21wbGV0aW9uCit7CisgICAgaWYgKHNlbGYuY3VycmVudERyYWdPckRyb3BTZXNzaW9uKSB7
CisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG11bHRpcGxlIHNpbXVsdGFuZW91cyBkcmFnIHNl
c3Npb25zIGluIHRoZSBmdXR1cmUuCisgICAgICAgIGNvbXBsZXRpb24oKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsK
KworICAgIENHUG9pbnQgZHJhZ09yaWdpbiA9IFtzZXNzaW9uIGxvY2F0aW9uSW5WaWV3OnNlbGZd
OworICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiByZXRhaW5lZFNlbGYoc2VsZik7CisKKyAg
ICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxmLCBz
ZXNzaW9uLCBkcmFnT3JpZ2luLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b24pXSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1hdGlv
bikgeworICAgICAgICBpZiAoIXBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFj
dGlvbihwb3NpdGlvbkluZm9ybWF0aW9uKSkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9jaygp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byYgc3RhdGUg
PSByZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25TdGF0ZTsKKyAgICAgICAgc3RhdGUuZHJh
Z1N0YXJ0Q29tcGxldGlvbkJsb2NrID0gY2FwdHVyZWRCbG9jazsKKyAgICAgICAgc3RhdGUuZ2Vz
dHVyZU9yaWdpbiA9IGRyYWdPcmlnaW47CisgICAgICAgIHN0YXRlLmFkanVzdGVkT3JpZ2luID0g
cmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5hZGp1c3RlZFBvaW50Rm9yTm9kZVJl
c3BvbmRpbmdUb0NsaWNrRXZlbnRzOworICAgICAgICBzdGF0ZS5lbGVtZW50Qm91bmRzID0gcmV0
YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHM7CisgICAgICAgIHN0YXRlLmxp
bmtUaXRsZSA9IHJldGFpbmVkU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGU7CisgICAg
ICAgIHN0YXRlLmxpbmtVUkwgPSByZXRhaW5lZFNlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9uLnVy
bDsKKyAgICAgICAgc3RhdGUuZHJhZ1Nlc3Npb24gPSBzZXNzaW9uOworICAgICAgICByZXRhaW5l
ZFNlbGYtPl9wYWdlLT5yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24ocm91bmRlZEludFBvaW50
KHN0YXRlLmFkanVzdGVkT3JpZ2luKSwgcm91bmRlZEludFBvaW50KFtyZXRhaW5lZFNlbGYgY29u
dmVydFBvaW50OnN0YXRlLmFkanVzdGVkT3JpZ2luIHRvVmlldzpbcmV0YWluZWRTZWxmIHdpbmRv
d11dKSk7CisgICAgfSBmb3JSZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KHJv
dW5kZWRJbnRQb2ludChkcmFnT3JpZ2luKSldOworfQorCistIChOU0FycmF5PFVJRHJhZ0l0ZW0g
Kj4gKilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gaXRl
bXNGb3JCZWdpbm5pbmdTZXNzaW9uOihpZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbgoreworICAg
IGlmIChfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJhZ1Nlc3Npb24gIT0gc2Vzc2lvbikKKyAgICAg
ICAgcmV0dXJuIEBbIF07CisKKyAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICpkcmFnZ2lu
Z1Bhc3RlYm9hcmQgPSBbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5jZV07
CisgICAgQVNTRVJUKGludGVyYWN0aW9uID09IF9kYXRhSW50ZXJhY3Rpb24pOworICAgIE5TVUlu
dGVnZXIgbnVtYmVyT2ZJdGVtcyA9IGRyYWdnaW5nUGFzdGVib2FyZC5udW1iZXJPZkl0ZW1zOwor
ICAgIGlmICghbnVtYmVyT2ZJdGVtcykgeworICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgp
OworICAgICAgICByZXR1cm4gQFsgXTsKKyAgICB9CisKKyAgICBbVUlDYWxsb3V0QmFyIGZhZGVT
aGFyZWRDYWxsb3V0QmFyXTsKKworICAgIC8vIEdpdmUgaW50ZXJuYWwgY2xpZW50cyBzdWNoIGFz
IE1haWwgb25lIGZpbmFsIGNoYW5jZSB0byBhdWdtZW50IHRoZSBjb250ZW50cyBvZiBlYWNoIFVJ
SXRlbVByb3ZpZGVyIGJlZm9yZSBzZW5kaW5nIHRoZSBkcmFnIGl0ZW1zIG9mZiB0byBVSUtpdC4K
KyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJ
RGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6YWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVBy
b3ZpZGVyOnJlcHJlc2VudGluZ09iamVjdHM6YWRkaXRpb25hbERhdGE6KV0pIHsKKyAgICAgICAg
TlNNdXRhYmxlQXJyYXkgKmFkanVzdGVkSXRlbVByb3ZpZGVycyA9IFtOU011dGFibGVBcnJheSBh
cnJheV07CisgICAgICAgIGZvciAoTlNVSW50ZWdlciBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXgg
PCBudW1iZXJPZkl0ZW1zOyArK2l0ZW1JbmRleCkgeworICAgICAgICAgICAgV2ViSXRlbVByb3Zp
ZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgKmluZm9MaXN0ID0gW2RyYWdnaW5nUGFzdGVib2FyZCBy
ZWdpc3RyYXRpb25JbmZvQXRJbmRleDppdGVtSW5kZXhdOworICAgICAgICAgICAgYXV0byByZXBy
ZXNlbnRpbmdPYmplY3RzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
CisgICAgICAgICAgICBhdXRvIGFkZGl0aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgICAgIFtpbmZvTGlzdCBlbnVtZXJhdGVJ
dGVtczpbcmVwcmVzZW50aW5nT2JqZWN0cywgYWRkaXRpb25hbERhdGFdIChXZWJJdGVtUHJvdmlk
ZXJSZWdpc3RyYXRpb25JbmZvICppdGVtLCBOU1VJbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAg
aWYgKGl0ZW0ucmVwcmVzZW50aW5nT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBbcmVwcmVz
ZW50aW5nT2JqZWN0cyBhZGRPYmplY3Q6aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOworICAgICAg
ICAgICAgICAgIGlmIChpdGVtLnR5cGVJZGVudGlmaWVyICYmIGl0ZW0uZGF0YSkKKyAgICAgICAg
ICAgICAgICAgICAgW2FkZGl0aW9uYWxEYXRhIHNldE9iamVjdDppdGVtLmRhdGEgZm9yS2V5Oml0
ZW0udHlwZUlkZW50aWZpZXJdOworICAgICAgICAgICAgfV07CisgICAgICAgICAgICBpZiAoTlNB
cnJheSAqcmVwbGFjZW1lbnRJdGVtUHJvdmlkZXJzID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dl
YlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3ZpZGVy
OltkcmFnZ2luZ1Bhc3RlYm9hcmQgaXRlbVByb3ZpZGVyQXRJbmRleDppdGVtSW5kZXhdIHJlcHJl
c2VudGluZ09iamVjdHM6cmVwcmVzZW50aW5nT2JqZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTph
ZGRpdGlvbmFsRGF0YS5nZXQoKV0pCisgICAgICAgICAgICAgICAgW2FkanVzdGVkSXRlbVByb3Zp
ZGVycyBhZGRPYmplY3RzRnJvbUFycmF5OnJlcGxhY2VtZW50SXRlbVByb3ZpZGVyc107CisgICAg
ICAgIH0KKyAgICAgICAgZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBhZGp1c3Rl
ZEl0ZW1Qcm92aWRlcnM7CisgICAgfSBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVByb3Zp
ZGVyczopXSkKKyAgICAgICAgZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBbdWlE
ZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92
aWRlcnM6ZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnNdOworCisgICAgX19ibG9jayBS
ZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uID0gW05TTXV0
YWJsZUFycmF5IGFycmF5XTsKKyAgICBbZHJhZ2dpbmdQYXN0ZWJvYXJkIGVudW1lcmF0ZUl0ZW1Q
cm92aWRlcnNXaXRoQmxvY2s6XihVSUl0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyLCBOU1VJbnRl
Z2VyIGluZGV4LCBCT09MICpzdG9wKSB7CisgICAgICAgIFtpdGVtc0ZvckRyYWdJbnRlcmFjdGlv
biBhZGRPYmplY3Q6W1tbVUlEcmFnSXRlbSBhbGxvY10gaW5pdFdpdGhJdGVtUHJvdmlkZXI6aXRl
bVByb3ZpZGVyXSBhdXRvcmVsZWFzZV1dOworICAgIH1dOworCisgICAgaWYgKCFbaXRlbXNGb3JE
cmFnSW50ZXJhY3Rpb24gY291bnRdKQorICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOwor
CisgICAgcmV0dXJuIGl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uLmdldCgpOworfQorCistIChVSVRh
cmdldGVkRHJhZ1ByZXZpZXcgKilfYXBpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0ZW0gKilpdGVt
IHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uCit7CisgICAgaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlm
IChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZp
ZXdGb3JMaWZ0aW5nSXRlbTpzZXNzaW9uOildKSB7CisgICAgICAgIFVJVGFyZ2V0ZWREcmFnUHJl
dmlldyAqb3ZlcnJpZGVuUHJldmlldyA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHBy
ZXZpZXdGb3JMaWZ0aW5nSXRlbTppdGVtIHNlc3Npb246c2Vzc2lvbl07CisgICAgICAgIGlmIChv
dmVycmlkZW5QcmV2aWV3KQorICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlblByZXZpZXc7Cisg
ICAgfQorICAgIHJldHVybiBzZWxmLmRyYWdQcmV2aWV3Rm9yQ3VycmVudERhdGFJbnRlcmFjdGlv
blN0YXRlLmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpZHJhZ0ludGVyYWN0aW9uOihVSURy
YWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25XaWxsQmVnaW46KGlkIDxVSURyYWdT
ZXNzaW9uPilzZXNzaW9uCit7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdh
dGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbjpzZXNzaW9uV2ls
bEJlZ2luOildKQorICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBkYXRhSW50
ZXJhY3Rpb246aW50ZXJhY3Rpb24gc2Vzc2lvbldpbGxCZWdpbjpzZXNzaW9uXTsKKworICAgIFtz
ZWxmIGNhbmNlbERlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luXTsKKyAgICBbX2FjdGlvblNoZWV0
QXNzaXN0YW50IGNsZWFudXBTaGVldF07CisKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZGlk
QmVnaW5EcmFnZ2luZyA9IFlFUzsKKyAgICBbc2VsZiBfdHJhbnNpdGlvbkRyYWdQcmV2aWV3VG9J
bWFnZUlmTmVjZXNzYXJ5OnNlc3Npb25dOworCisgICAgX3BhZ2UtPmRpZFN0YXJ0RHJhZygpOwor
fQorCistICh2b2lkKV9hcGlfZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWlu
dGVyYWN0aW9uIHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uIGRpZEVuZFdpdGhP
cGVyYXRpb246KFVJRHJvcE9wZXJhdGlvbilvcGVyYXRpb24KK3sKKyAgICBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYg
KFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGF0YUlu
dGVyYWN0aW9uOnNlc3Npb246ZGlkRW5kV2l0aE9wZXJhdGlvbjopXSkKKyAgICAgICAgW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGF0YUludGVyYWN0aW9uOmludGVyYWN0aW9uIHNlc3Np
b246c2Vzc2lvbiBkaWRFbmRXaXRoT3BlcmF0aW9uOm9wZXJhdGlvbl07CisKKyAgICBpZiAoX2Rh
dGFJbnRlcmFjdGlvblN0YXRlLmlzUGVyZm9ybWluZ09wZXJhdGlvbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgW3NlbGYgY2FuY2VsRGVmZXJyZWRBY3Rpb25BdERyYWdPcmlnaW5dOworICAgIFtz
ZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKKworICAgIF9wYWdlLT5kcmFnRW5k
ZWQocm91bmRlZEludFBvaW50KF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5hZGp1c3RlZE9yaWdpbiks
IHJvdW5kZWRJbnRQb2ludChbc2VsZiBjb252ZXJ0UG9pbnQ6X2RhdGFJbnRlcmFjdGlvblN0YXRl
LmFkanVzdGVkT3JpZ2luIHRvVmlldzpzZWxmLndpbmRvd10pLCBvcGVyYXRpb24pOworfQorCist
IChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVtICop
aXRlbSB3aXRoRGVmYXVsdDooVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcK
K3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmll
d1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6cHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOndpdGhEZWZhdWx0OildKSB7
CisgICAgICAgIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqb3ZlcnJpZGVuUHJldmlldyA9IFt1aURl
bGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTppdGVtIHdp
dGhEZWZhdWx0OmRlZmF1bHRQcmV2aWV3XTsKKyAgICAgICAgaWYgKG92ZXJyaWRlblByZXZpZXcp
CisgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVuUHJldmlldzsKKyAgICB9CisgICAgcmV0dXJu
IHNlbGYuZHJhZ1ByZXZpZXdGb3JDdXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGUuYXV0b3JlbGVh
c2UoKTsKK30KKworLSAodm9pZClfYXBpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBpdGVtOihVSURyYWdJdGVtICopaXRlbSB3aWxsQW5pbWF0ZUNhbmNl
bFdpdGhBbmltYXRvcjooaWQgPFVJRHJhZ0FuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBbYW5p
bWF0b3IgYWRkQ29tcGxldGlvbjpbcGFnZSA9IF9wYWdlXSAoVUlWaWV3QW5pbWF0aW5nUG9zaXRp
b24gZmluYWxQb3NpdGlvbikgeworICAgICAgICBwYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CisgICAg
fV07Cit9CisKKyNwcmFnbWEgbWFyayAtIFVJRHJvcEludGVyYWN0aW9uRGVsZWdhdGUKKworLSAo
Qk9PTClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY2Fu
SGFuZGxlU2Vzc2lvbjooaWQ8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgoreworICAgIC8vIEZJWE1F
OiBTdXBwb3J0IG11bHRpcGxlIHNpbXVsdGFuZW91cyBkcm9wIHNlc3Npb25zIGluIHRoZSBmdXR1
cmUuCisgICAgaWQgPFVJRHJhZ0Ryb3BTZXNzaW9uPiBkcmFnT3JEcm9wU2Vzc2lvbiA9IHNlbGYu
Y3VycmVudERyYWdPckRyb3BTZXNzaW9uOworICAgIHJldHVybiAhZHJhZ09yRHJvcFNlc3Npb24g
fHwgc2Vzc2lvbi5sb2NhbERyYWdTZXNzaW9uID09IGRyYWdPckRyb3BTZXNzaW9uOworfQorCist
ICh2b2lkKV9hcGlfZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHNlc3Npb25EaWRFbnRlcjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24KK3sKKyAgICBf
ZGF0YUludGVyYWN0aW9uU3RhdGUuZHJvcFNlc3Npb24gPSBzZXNzaW9uOworCisgICAgW1tXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOmV4
dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9uKHNlc3Npb24pXTsKKworICAgIGF1dG8g
ZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvckRyb3BTZXNzaW9uOnNlc3Npb24gZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uOltzZWxmIF9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lvbjpz
ZXNzaW9uXV07CisKKyAgICBfcGFnZS0+ZHJhZ0VudGVyZWQoZHJhZ0RhdGEsICJkYXRhIGludGVy
YWN0aW9uIHBhc3RlYm9hcmQiKTsKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFzdEdsb2Jh
bFBvc2l0aW9uID0gZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKTsKK30KKworLSAoVUlEcm9wUHJv
cG9zYWwgKilfYXBpX2Ryb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFj
dGlvbiBzZXNzaW9uRGlkVXBkYXRlOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgoreworICAg
IFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5jZV0gc2V0SXRlbVByb3Zp
ZGVyczpleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbihzZXNzaW9uKV07CisKKyAg
ICBhdXRvIGRyYWdEYXRhID0gW3NlbGYgZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIGRy
YWdEZXN0aW5hdGlvbkFjdGlvbjpbc2VsZiBfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJvcFNl
c3Npb246c2Vzc2lvbl1dOworICAgIF9wYWdlLT5kcmFnVXBkYXRlZChkcmFnRGF0YSwgImRhdGEg
aW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5sYXN0
R2xvYmFsUG9zaXRpb24gPSBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOworCisgICAgTlNVSW50
ZWdlciBvcGVyYXRpb24gPSBkcm9wT3BlcmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24oX3Bh
Z2UtPmN1cnJlbnREcmFnT3BlcmF0aW9uKCkpOworICAgIGlmIChbc2VsZi53ZWJWaWV3VUlEZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxVcGRhdGVEYXRh
SW50ZXJhY3Rpb25PcGVyYXRpb25Ub09wZXJhdGlvbjpmb3JTZXNzaW9uOildKQorICAgICAgICBv
cGVyYXRpb24gPSBbc2VsZi53ZWJWaWV3VUlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxs
VXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uVG9PcGVyYXRpb246b3BlcmF0aW9uIGZvclNl
c3Npb246c2Vzc2lvbl07CisKKyAgICByZXR1cm4gW1tbVUlEcm9wUHJvcG9zYWwgYWxsb2NdIGlu
aXRXaXRoRHJvcE9wZXJhdGlvbjpzdGF0aWNfY2FzdDxVSURyb3BPcGVyYXRpb24+KG9wZXJhdGlv
bildIGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcElu
dGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc2Vzc2lvbkRpZEV4aXQ6KGlkIDxVSURyb3BTZXNzaW9u
PilzZXNzaW9uCit7CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3Rh
bmNlXSBzZXRJdGVtUHJvdmlkZXJzOmV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9u
KHNlc3Npb24pXTsKKworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvckRyb3BT
ZXNzaW9uOnNlc3Npb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOldLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uQW55XTsKKyAgICBfcGFnZS0+ZHJhZ0V4aXRlZChkcmFnRGF0YSwgImRhdGEgaW50ZXJhY3Rp
b24gcGFzdGVib2FyZCIpOworICAgIF9wYWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24o
KTsKK30KKworLSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50
ZXJhY3Rpb24gcGVyZm9ybURyb3A6KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCit7CisgICAg
TlNBcnJheSA8VUlJdGVtUHJvdmlkZXIgKj4gKml0ZW1Qcm92aWRlcnMgPSBleHRyYWN0SXRlbVBy
b3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cGVyZm9ybURhdGFJ
bnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJdGVtUHJvdmlkZXJzOildKSB7CisgICAgICAgIGlmIChb
dWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwZXJmb3JtRGF0YUludGVyYWN0aW9uT3BlcmF0
aW9uV2l0aEl0ZW1Qcm92aWRlcnM6aXRlbVByb3ZpZGVyc10pCisgICAgICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6d2lsbFBlcmZvcm1Ecm9wV2l0aFNlc3Npb246KV0pIHsKKyAgICAgICAgaXRl
bVByb3ZpZGVycyA9IGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyYWdJdGVtcyhbdWlEZWxlZ2F0
ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxsUGVyZm9ybURyb3BXaXRoU2Vzc2lvbjpzZXNzaW9uXSk7
CisgICAgICAgIGlmICghaXRlbVByb3ZpZGVycy5jb3VudCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2Vd
IHNldEl0ZW1Qcm92aWRlcnM6aXRlbVByb3ZpZGVyc107CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBpbmNyZW1lbnRQZW5kaW5nT3BlcmF0aW9uQ291bnRd
OworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdPcGVyYXRpb24gPSBZRVM7
CisgICAgYXV0byBkcmFnRGF0YSA9IFtzZWxmIGRyYWdEYXRhRm9yRHJvcFNlc3Npb246c2Vzc2lv
biBkcmFnRGVzdGluYXRpb25BY3Rpb246V0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnldOworCisg
ICAgLy8gQWx3YXlzIGxvYWRpbmcgY29udGVudCBmcm9tIHRoZSBpdGVtIHByb3ZpZGVyIGVuc3Vy
ZXMgdGhhdCB0aGUgd2ViIHByb2Nlc3Mgd2lsbCBiZSBhbGxvd2VkIHRvIGNhbGwgYmFjayBpbiB0
byB0aGUgVUkKKyAgICAvLyBwcm9jZXNzIHRvIGFjY2VzcyBwYXN0ZWJvYXJkIGNvbnRlbnRzIGF0
IGEgbGF0ZXIgdGltZS4gSWRlYWxseSwgd2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgd29yayBpZiB3
ZSdyZSBvdmVyIGEgZmlsZSBpbnB1dAorICAgIC8vIG9yIHRoZSBwYWdlIHByZXZlbnRlZCBkZWZh
dWx0IG9uIGBkcmFnb3ZlcmAsIGJ1dCB3aXRob3V0IHRoaXMsIGRyb3BwaW5nIGludG8gYSBub3Jt
YWwgZWRpdGFibGUgYXJlYXMgd2lsbCBmYWlsIGR1ZSB0bworICAgIC8vIGl0ZW0gcHJvdmlkZXJz
IG5vdCBsb2FkaW5nIGFueSBkYXRhLgorICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiByZXRh
aW5lZFNlbGYoc2VsZik7CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZElu
c3RhbmNlXSBkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpbcmV0YWlu
ZWRTZWxmLCBjYXB0dXJlZERyYWdEYXRhID0gV1RGTW92ZShkcmFnRGF0YSldIChOU0FycmF5ICpm
aWxlVVJMcykgbXV0YWJsZSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAg
ICAgICAgZm9yIChOU1VSTCAqZmlsZVVSTCBpbiBmaWxlVVJMcykKKyAgICAgICAgICAgIGZpbGVu
YW1lcy5hcHBlbmQoW2ZpbGVVUkwgcGF0aF0pOworICAgICAgICBjYXB0dXJlZERyYWdEYXRhLnNl
dEZpbGVOYW1lcyhmaWxlbmFtZXMpOworCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkOworICAgICAgICByZXRhaW5lZFNlbGYt
Pl9wYWdlLT5jcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGZpbGVuYW1lcywgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCk7CisgICAgICAgIHJl
dGFpbmVkU2VsZi0+X3BhZ2UtPnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNhcHR1cmVkRHJhZ0RhdGEs
ICJkYXRhIGludGVyYWN0aW9uIHBhc3RlYm9hcmQiLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBz
YW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkKTsKKworICAgICAgICByZXRhaW5lZFNlbGYtPl9kYXRh
SW50ZXJhY3Rpb25TdGF0ZS52aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdCA9IFtyZXRhaW5lZFNl
bGYgc25hcHNob3RWaWV3QWZ0ZXJTY3JlZW5VcGRhdGVzOk5PXTsKKyAgICAgICAgW3JldGFpbmVk
U2VsZiBzZXRTdXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXc6WUVTXTsKKyAgICAgICAgW1VJ
VmlldyBwZXJmb3JtV2l0aG91dEFuaW1hdGlvbjpbcmV0YWluZWRTZWxmXSB7CisgICAgICAgICAg
ICBbcmV0YWluZWRTZWxmLT5fZGF0YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3
U25hcHNob3Qgc2V0RnJhbWU6W3JldGFpbmVkU2VsZiBib3VuZHNdXTsKKyAgICAgICAgICAgIFty
ZXRhaW5lZFNlbGYgYWRkU3VidmlldzpyZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25TdGF0
ZS52aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdC5nZXQoKV07CisgICAgICAgIH1dOworICAgIH1d
OworfQorCistIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilkcm9wSW50ZXJhY3Rpb246KFVJRHJv
cEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckRyb3BwaW5nSXRlbTooVUlEcmFn
SXRlbSAqKWl0ZW0gd2l0aERlZmF1bHQ6KFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKWRlZmF1bHRQ
cmV2aWV3Cit7CisgICAgQ0dSZWN0IGNhcmV0UmVjdCA9IF9wYWdlLT5jdXJyZW50RHJhZ0NhcmV0
UmVjdCgpOworICAgIGlmIChDR1JlY3RJc0VtcHR5KGNhcmV0UmVjdCkpCisgICAgICAgIHJldHVy
biBuaWw7CisKKyAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzMxMDc0Mzc2PiBbV0syXSBQ
ZXJmb3JtaW5nIGFuIGVkaXQgZHJhZyBzaG91bGQgdHJhbnNpdGlvbiBmcm9tIHRoZSBpbml0aWFs
IGRyYWcgcHJldmlldyB0byB0aGUgZmluYWwgZHJvcCBwcmV2aWV3CisgICAgLy8gVGhpcyBpcyBi
bG9ja2VkIG9uIFVJS2l0IHN1cHBvcnQsIHNpbmNlIHdlIGFyZW4ndCBhYmxlIHRvIHVwZGF0ZSB0
aGUgdGV4dCBjbGlwcGluZyByZWN0cyBvZiBhIFVJVGFyZ2V0ZWREcmFnUHJldmlldyBtaWQtZmxp
Z2h0LiBGb3Igbm93LAorICAgIC8vIGp1c3Qgem9vbSB0byB0aGUgY2VudGVyIG9mIHRoZSBjYXJl
dCByZWN0IHdoaWxlIHNocmlua2luZyB0aGUgZHJvcCBwcmV2aWV3LgorICAgIGF1dG8gY2FyZXRS
ZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OmNhcmV0UmVjdCB0b1Zp
ZXc6W1VJVGV4dEVmZmVjdHNXaW5kb3cgc2hhcmVkVGV4dEVmZmVjdHNXaW5kb3ddXTsKKyAgICBh
dXRvIGNhcmV0Q2VudGVySW5XaW5kb3dDb29yZGluYXRlcyA9IENHUG9pbnRNYWtlKENHUmVjdEdl
dE1pZFgoY2FyZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyksIENHUmVjdEdldE1pZFkoY2FyZXRS
ZWN0SW5XaW5kb3dDb29yZGluYXRlcykpOworICAgIGF1dG8gdGFyZ2V0ID0gYWRvcHROUyhbW1VJ
RHJhZ1ByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOltVSVRleHRFZmZlY3Rz
V2luZG93IHNoYXJlZFRleHRFZmZlY3RzV2luZG93XSBjZW50ZXI6Y2FyZXRDZW50ZXJJbldpbmRv
d0Nvb3JkaW5hdGVzIHRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgwLCAwKV0p
OworICAgIHJldHVybiBbZGVmYXVsdFByZXZpZXcgcmV0YXJnZXRlZFByZXZpZXdXaXRoVGFyZ2V0
OnRhcmdldC5nZXQoKV07Cit9CisKKy0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRl
cmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25EaWRFbmQ6KGlkIDxVSURyb3BTZXNzaW9uPilz
ZXNzaW9uCit7CisgICAgaWYgKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdPcGVy
YXRpb24gfHwgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRpZEJlZ2luRHJhZ2dpbmcpCisgICAgICAg
IHJldHVybjsKKworICAgIENHUG9pbnQgZ2xvYmFsOworICAgIENHUG9pbnQgY2xpZW50OworICAg
IFtzZWxmIGNvbXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpzZXNzaW9u
IG91dENsaWVudFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisgICAgW3Nl
bGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworICAgIF9wYWdlLT5kcmFnRW5kZWQo
cm91bmRlZEludFBvaW50KGNsaWVudCksIHJvdW5kZWRJbnRQb2ludChnbG9iYWwpLCBVSURyYWdP
cGVyYXRpb25Ob25lKTsKK30KKworI3ByYWdtYSBtYXJrIC0gVW5pdCB0ZXN0aW5nIHN1cHBvcnQK
KworLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClzZXNzaW9uCit7
CisgICAgW3NlbGYgX2FwaV9kcm9wSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkgc2Vz
c2lvbkRpZEVudGVyOnNlc3Npb25dOworfQorCistIChCT09MKV9zaW11bGF0ZURhdGFJbnRlcmFj
dGlvblVwZGF0ZWQ6KGlkKXNlc3Npb24KK3sKKyAgICByZXR1cm4gW3NlbGYgX2FwaV9kcm9wSW50
ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9uXS5v
cGVyYXRpb24gIT0gVUlEcm9wT3BlcmF0aW9uQ2FuY2VsOworfQorCistICh2b2lkKV9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihpZClzZXNzaW9uCit7CisgICAgW3NlbGYgZHJvcEludGVy
YWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdldCgpIHNlc3Npb25EaWRFbmQ6c2Vzc2lvbl07Cit9CisK
Ky0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbjooaWQpc2Vz
c2lvbgoreworICAgIFtzZWxmIGRyb3BJbnRlcmFjdGlvbjpfZGF0YU9wZXJhdGlvbi5nZXQoKSBw
ZXJmb3JtRHJvcDpzZXNzaW9uXTsKK30KKworLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uCit7CisgICAgW3NlbGYgX2FwaV9kcmFnSW50ZXJh
Y3Rpb246X2RhdGFJbnRlcmFjdGlvbi5nZXQoKSBzZXNzaW9uOnNlc3Npb24gZGlkRW5kV2l0aE9w
ZXJhdGlvbjpVSURyb3BPcGVyYXRpb25Db3B5XTsKK30KKworLSAodm9pZClfc2ltdWxhdGVXaWxs
QmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoU2Vzc2lvbjooaWQpc2Vzc2lvbgoreworICAgIFtzZWxm
IGRyYWdJbnRlcmFjdGlvbjpfZGF0YUludGVyYWN0aW9uLmdldCgpIHNlc3Npb25XaWxsQmVnaW46
c2Vzc2lvbl07Cit9CisKKy0gKE5TQXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihp
ZClzZXNzaW9uCit7CisgICAgcmV0dXJuIFtzZWxmIGRyYWdJbnRlcmFjdGlvbjpfZGF0YUludGVy
YWN0aW9uLmdldCgpIGl0ZW1zRm9yQmVnaW5uaW5nU2Vzc2lvbjpzZXNzaW9uXTsKK30KKworLSAo
dm9pZClfc2ltdWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjooaWQpc2Vzc2lv
biBjb21wbGV0aW9uOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24KK3sKKyAgICBbc2VsZiBf
ZHJhZ0ludGVyYWN0aW9uOl9kYXRhSW50ZXJhY3Rpb24uZ2V0KCkgcHJlcGFyZUZvclNlc3Npb246
c2Vzc2lvbiBjb21wbGV0aW9uOmNvbXBsZXRpb25dOworfQorCisjZW5kaWYKKwogQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyAoV0tUZXN0aW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRy
YWdDbGllbnRNYWMubW0KaW5kZXggYzdjMjY4OWViMjM0NzUyMDQ2ZTgwNzQ4NDk3NDkyYWZjZWFh
MjUyNC4uN2E5ODI1YmE2MzUzZGNhNGYyNTI3ZDFjNDI2MWE4YTQxZDcxNzQ1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC0zNCwzMSArMzQsMzcgQEAKICNpbXBvcnQgIldl
YlBhZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0NhY2hlZEltYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgor
I2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFp
bkZyYW1lLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1h
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU3RyaW5nVHJ1bmNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJh
cy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJVSUtpdFNQSS5oIgor
I2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktp
dEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5tbT4pCi0jaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDIubW0+Ci0jZW5kaWYK
K25hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZPUk0oTUFDKQogCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQogc3RhdGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0
bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCiB7
CiAgICAgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFncyA9IFNoYXJlYWJsZUJpdG1hcDo6U3Vw
cG9ydHNBbHBoYTsKQEAgLTE4NCw4ICsxOTAsNTcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNs
YXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUK
ICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0UHJvbWlzZWREYXRh
Rm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIGltYWdlSGFuZGxlLCBpbWFnZVNpemUsIGZpbGVuYW1l
LCBleHRlbnNpb24sIHRpdGxlLCBTdHJpbmcoW1tyZXNwb25zZSBVUkxdIGFic29sdXRlU3RyaW5n
XSksIHVzZXJWaXNpYmxlU3RyaW5nKChOU1VSTCAqKXVybCksIGFyY2hpdmVIYW5kbGUsIGFyY2hp
dmVTaXplKSk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCisjaWYgUExBVEZPUk0oSU9TKQorCitzdGF0aWMgUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4gY29udmVydENHSW1hZ2VUb0JpdG1hcChDR0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRT
aXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCit7CisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVC
aXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShzaXplLCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxw
aGEgfCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzRXh0ZW5kZWRDb2xvcik7CisgICAgaWYgKCFi
aXRtYXApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncmFwaGljc0NvbnRl
eHQgPSBiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOworICAgIFVJR3JhcGhpY3NQdXNo
Q29udGV4dChncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBDR0NvbnRl
eHREcmF3SW1hZ2UoZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFr
ZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpLCBpbWFnZSk7CisgICAgVUlHcmFw
aGljc1BvcENvbnRleHQoKTsKKyAgICByZXR1cm4gYml0bWFwOworfQorCit2b2lkIFdlYkRyYWdD
bGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwg
Y29uc3QgSW50UG9pbnQmIGV2ZW50TG9jYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJbWFn
ZUFuY2hvciwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgRHJhZ1Nv
dXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uKQoreworICAgIEludFNpemUgYml0bWFwU2l6ZShD
R0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdl
LmdldCgpLmdldCgpKSk7CisgICAgYXV0byBiaXRtYXAgPSBjb252ZXJ0Q0dJbWFnZVRvQml0bWFw
KGltYWdlLmdldCgpLmdldCgpLCBiaXRtYXBTaXplLCBmcmFtZSk7CisgICAgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgaGFuZGxlOworICAgIGlmICghYml0bWFwIHx8ICFiaXRtYXAtPmNyZWF0ZUhh
bmRsZShoYW5kbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UtPndpbGxTdGFydERy
YWcoKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0RHJhZ0lt
YWdlKGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwb2ludCksIGhhbmRsZSwgaW1hZ2Uu
aW5kaWNhdG9yRGF0YSgpLCBkcmFnSW1hZ2VBbmNob3IsIGRyYWdTb3VyY2VBY3Rpb24pKTsKK30K
Kwordm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKK3sKKyAgICBpZiAoYXV0byBmcmFtZSA9IGVsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkud3JpdGVJbWFn
ZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgZWxlbWVu
dCwgdXJsLCBsYWJlbCk7Cit9CisKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6ZGlkQ29uY2x1ZGVFZGl0
RHJhZygpCit7CisgICAgbV9wYWdlLT5kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oKTsK
K30KKworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKK3ZvaWQgV2ViRHJhZ0NsaWVu
dDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJkOTE5NDVjNTc2ZTc1ODY2
N2Q1MzY1MmJmYjg0ZDkyMzdlY2U2ZS4uMjQyYjBkZjQ5Y2U2OWY0YTljZmY3MTk2YmNmZGM2N2Fk
YjZlOTA1NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQg
ZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgdGVzdCBwYWdlcyBhbmQgcGllY2VzIG9mIERhdGFJbnRlcmFjdGlv
blNpbXVsYXRvciBoaWRkZW4gYmVoaW5kIFdlYktpdEFkZGl0aW9ucyBpbnRvIFRlc3RXZWJLaXRB
UEkuIE5vCisgICAgICAgIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNvbnRl
bnRlZGl0YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NvbnRlbnRlZGl0YWJs
ZS1hbmQtdGV4dGFyZWEuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9maWxlLXVwbG9hZGluZy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbWFnZS1h
bmQtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5r
LWFuZC10YXJnZXQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtc3RhcnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFyZWEt
dG8taW5wdXQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGlu
aXRXaXRoSXRlbXM6bG9jYXRpb246d2luZG93Ol0pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BT
ZXNzaW9uIGFsbG93c01vdmVPcGVyYXRpb25dKToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9wU2Vz
c2lvbiBpc1Jlc3RyaWN0ZWRUb0RyYWdnaW5nQXBwbGljYXRpb25dKToKKyAgICAgICAgKC1bTW9j
a0RyYWdEcm9wU2Vzc2lvbiBoYXNJdGVtc0NvbmZvcm1pbmdUb1R5cGVJZGVudGlmaWVyczpdKToK
KyAgICAgICAgKC1bTW9ja0RyYWdEcm9wU2Vzc2lvbiBjYW5Mb2FkT2JqZWN0c09mQ2xhc3M6XSk6
CisgICAgICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gY2FuTG9hZE9iamVjdHNPZkNsYXNzZXM6
XSk6CisgICAgICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gaXRlbXNdKToKKyAgICAgICAgKC1b
TW9ja0RyYWdEcm9wU2Vzc2lvbiBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9w
U2Vzc2lvbiBsb2NhdGlvbkluVmlldzpdKToKKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25T
ZXNzaW9uIGluaXRXaXRoUHJvdmlkZXJzOmxvY2F0aW9uOndpbmRvdzpdKToKKyAgICAgICAgKC1b
TW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIHNlc3Npb25dKToKKyAgICAgICAgKC1bTW9ja0RhdGFP
cGVyYXRpb25TZXNzaW9uIGlzTG9jYWxdKToKKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25T
ZXNzaW9uIHByb2dyZXNzXSk6CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBz
ZXRQcm9ncmVzc0luZGljYXRvclN0eWxlOl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlv
blNlc3Npb24gcHJvZ3Jlc3NJbmRpY2F0b3JTdHlsZV0pOgorICAgICAgICAoLVtNb2NrRGF0YU9w
ZXJhdGlvblNlc3Npb24gb3BlcmF0aW9uTWFza10pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJh
dGlvblNlc3Npb24gbG9jYWxEcmFnU2Vzc2lvbl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJh
dGlvblNlc3Npb24gaGFzSXRlbXNDb25mb3JtaW5nVG9UeXBlSWRlbnRpZmllcjpdKToKKyAgICAg
ICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGNhbkNyZWF0ZUl0ZW1zT2ZDbGFzczpdKToK
KyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGxvYWRPYmplY3RzT2ZDbGFzczpj
b21wbGV0aW9uOl0pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBpbml0
V2l0aFdpbmRvdzpdKToKKyAgICAgICAgKC1bTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24gbG9j
YWxPcGVyYXRpb25NYXNrXSk6CisgICAgICAgICgtW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9u
IGV4dGVybmFsT3BlcmF0aW9uTWFza10pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9u
U2Vzc2lvbiBzZXNzaW9uXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBf
YWR2YW5jZVByb2dyZXNzXSk6CisKIDIwMTctMDYtMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ10gUmVtb3ZpbmcgYSBNZWRpYVN0cmVhbVRyYWNr
IGZyb20gYSBNZWRpYVN0cmVhbSByZXBvcnRzIG5vIHJlY29yZGluZyB0byBXZWJLaXQgY2xpZW50
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNzg0NzY1NzQ5YmQwZTZmNTU0Y2Q1ZmJlOTEzZjRl
MTliOTgwY2RkMC4uZWMwZDU1M2UxNWRlNTRlNjU1MzczZjhhM2FkMWI3MzFmMDY3OTExYyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDEwIEBAIEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFNfSUZfTk9UXyA9ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8pOwogRU5B
QkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8gPSBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTOwog
RU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfWUVTID0gOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVf
UEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9D
U1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
ICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxF
X0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVf
RkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAk
KEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVU
RSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQ
VCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVS
X0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQo
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05D
VVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9YSU1J
VFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAk
KEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0Up
ICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VC
VExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQl9B
TklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5B
QkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChF
TkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxF
X1hTTFQpOworRU5BQkxFX0RSQUdfU1VQUE9SVCA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFC
TEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOwor
RU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFH
X1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25l
c2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQ
TEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVO
VF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElP
TklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQ
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dP
UkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFC
TEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lP
U19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJ
QlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1ND
UklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVU
RSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVf
U1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9O
X01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dF
Ql9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQo
RU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikg
JChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElP
Tik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhZmU3YTI2NGE2Mjk2YzE4NmQ5MWFiMzBl
YjQyZDdiYTEzMWVhNDEuLjc1ZmNkMjdmZjUwMmEwNjhkOTY2ODA5OWNiZmE2YTg0Zjc0YjRjZDAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjIsNiArNjIyLDE4IEBACiAJCUUxOTRFMUJE
MTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3Bv
bnNlLmh0bWwgKi87IH07CiAJCUVDQTY4MENFMUU2OENDMDkwMDczMUQyMCAvKiBTdHJpbmdVdGls
aXRpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Q0E2ODBDRDFFNjhDQzA5MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLm1tICovOyB9OwogCQlG
NDE1MDg2RDFEQTA0MEM1MDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MTUwODZD
MURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi87IH07CisJCUY0
MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQx
QUI5OTgxRUY0NjkyQzAwODNGQTA4IC8qIGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAq
LzsgfTsKKwkJRjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGlu
ay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDFBQjk5NzFFRjQ2OTJDMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFn
ZS1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OworCQlGNDFBQjlBMTFFRjQ2OTZCMDA4M0ZBMDgg
LyogY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MUFCOTlDMUVGNDY5MkMwMDgzRkEw
OCAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwgKi87IH07CisJCUY0MUFCOUEy
MUVGNDY5NkIwMDgzRkEwOCAvKiBkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUUxRUY0Njky
QzAwODNGQTA4IC8qIGRpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTMx
RUY0Njk2QjAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUIxRUY0NjkyQzAwODNG
QTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgKi87IH07CisJCUY0MUFCOUE0MUVGNDY5NkIwMDgz
RkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTkxRUY0NjkyQzAwODNG
QTA4IC8qIGltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTUx
RUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MUFCOTkzMUVGNDY5MkMw
MDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTYxRUY0
Njk2QjAwODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTYxRUY0NjkyQzAwODNGQTA4
IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi87IH07CisJCUY0MUFCOUE3MUVGNDY5NkIwMDgzRkEw
OCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUQxRUY0NjkyQzAwODNGQTA4IC8qIGxp
bmstYW5kLXRhcmdldC1kaXYuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4
IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHByZXZl
bnQtb3BlcmF0aW9uLmh0bWwgKi87IH07CisJCUY0MUFCOUE5MUVGNDY5NkIwMDgzRkEwOCAvKiBw
cmV2ZW50LXN0YXJ0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQxQUI5OUExRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQu
aHRtbCAqLzsgfTsKKwkJRjQxQUI5QUExRUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlu
cHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQxQUI5OTUxRUY0NjkyQzAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwg
Ki87IH07CiAJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1m
b2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmll
bGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJCUY0NDUxQzc2MUVCOEZEODkwMDIwQzVEQSAv
KiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDUxQzc1MUVCOEZEN0MwMDIwQzVE
QSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICovOyB9OwogCQlGNDUzOEVG
NzFFODQ3M0U2MDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MzhFRjAxRTg0NkI0MTAw
QjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICovOyB9OwpAQCAtNzExLDYgKzcyMywxOCBA
QAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVy
U3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlGNDFBQjk5RjFFRjQ2OTZCMDA4M0ZBMDggLyog
YXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CUY0MUFCOUEwMUVGNDY5NkIwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlu
cHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTExRUY0Njk2QjAwODNG
QTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNDFBQjlBMjFFRjQ2OTZCMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFn
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUEzMUVGNDY5NkIwMDgzRkEw
OCAvKiBmaWxlLXVwbG9hZGluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFC
OUE0MUVGNDY5NkIwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdl
LWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUE2MUVG
NDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAorCQkJCUY0MUFCOUE3MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4IC8q
IHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5
QTkxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNDFBQjlBQTFFRjQ2OTZCMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5wdXQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQg
LyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9m
ZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKQEAgLTE1NjAsNiArMTU4NCwxOCBAQAogCQlFQ0E2ODBDRDFFNjhDQzA5MDA3MzFEMjAgLyog
U3RyaW5nVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU3RyaW5nVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZD
M0VFMjEzNjc4QjczMDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJndGVzdC5h
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGNDE1MDg2QzFEQTA0MEMx
MDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gInBsYXktYXVkaW8tb24tY2xpY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4dGFyZWEu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0MUFCOTk0MUVGNDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LW9wZXJh
dGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gInByZXZlbnQtb3BlcmF0aW9uLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5NTFFRjQ2OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEt
dG8taW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0ZXh0YXJlYS10by1pbnB1dC5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OTYxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmst
YW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3Jv
dW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmFja2dyb3VuZC1pbWFn
ZS1saW5rLWFuZC1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQx
QUI5OTgxRUY0NjkyQzAwODNGQTA4IC8qIGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNDFBQjk5OTFFRjQ2OTJDMDA4M0ZBMDggLyogaW1hZ2UtYW5kLWNv
bnRlbnRlZGl0YWJsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTlBMUVGNDY5MkMwMDgz
RkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicHJldmVudC1zdGFydC5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OUIxRUY0NjkyQzAwODNGQTA4
IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZmlsZS11cGxvYWRpbmcuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTlDMUVGNDY5MkMwMDgzRkEwOCAv
KiBjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGVudGVk
aXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjQxQUI5OUQxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLXRhcmdldC1kaXYuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImRpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1m
aWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJn
ZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHBhdGggPSAiVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwogCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFw
aC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0d28t
cGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gImxhcmdlLXJlZC1zcXVhcmUucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5NTksNiArMTk5NSwxOCBAQAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyog
UmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQlGNDFBQjk5ODFFRjQ2OTJDMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5o
dG1sICovLAorCQkJCUY0MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdl
LWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8q
IGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAqLywKKwkJCQlGNDFBQjk5RTFFRjQ2
OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sICovLAorCQkJCUY0MUFCOTlC
MUVGNDY5MkMwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1sICovLAorCQkJCUY0MUFCOTk5
MUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgKi8sCisJ
CQkJRjQxQUI5OTMxRUY0NjkyQzAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sICov
LAorCQkJCUY0MUFCOTk2MUVGNDY5MkMwMDgzRkEwOCAvKiBsaW5rLWFuZC1pbnB1dC5odG1sICov
LAorCQkJCUY0MUFCOTlEMUVGNDY5MkMwMDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0
bWwgKi8sCisJCQkJRjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9u
Lmh0bWwgKi8sCisJCQkJRjQxQUI5OUExRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQu
aHRtbCAqLywKKwkJCQlGNDFBQjk5NTFFRjQ2OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5w
dXQuaHRtbCAqLywKIAkJCQlGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICov
LAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAvKiBBbGxBaGVtLnN2ZyAqLywKIAkJCQk1
QzlFNTkzRTFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYiAqLywKQEAgLTI2
NzQsNyArMjcyMiw2IEBACiAJCQkJOERENzZGOUIwNDg2QUE3NjAwRDk2QjVFIC8qIEZyYW1ld29y
a3MgKi8sCiAJCQkJOERENzZGOUUwNDg2QUE3NjAwRDk2QjVFIC8qIENvcHlGaWxlcyAqLywKIAkJ
CQlCQ0I5RjRGQjExMjM4NEMwMDBBMTM3RTAgLyogQ29weSBSZXNvdXJjZXMgKi8sCi0JCQkJRjQ3
MUNCOEIxRTU2NUMwRjAwMjgwNTVDIC8qIENvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CkBAIC0yNzg1LDIzICsyODMyLDYgQEAKIAkJ
fTsKIC8qIEVuZCBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAotLyogQmVnaW4g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJRjQ3MUNCOEIxRTU2NUMwRjAw
MjgwNTVDIC8qIENvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owot
CQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQluYW1lID0g
IkNvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMiOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwot
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGgg
PSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiQURESVRJT05BTF9SRVNPVVJDRVNfUEFUSD1c
InVzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy9SZXNvdXJjZXMvVGVzdFdlYktpdEFQ
SVwiXG5ERVNUSU5BVElPTl9QQVRIPVwiJFRBUkdFVF9CVUlMRF9ESVIvVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXNcIlxuaWYgWyAtZCAkVEFSR0VUX0JVSUxEX0RJUi8kQURESVRJT05BTF9SRVNPVVJD
RVNfUEFUSCBdOyB0aGVuXG4gICAgY3AgJFRBUkdFVF9CVUlMRF9ESVIvJEFERElUSU9OQUxfUkVT
T1VSQ0VTX1BBVEgvKiAkREVTVElOQVRJT05fUEFUSFxuZWxpZiBbIC1kICRTREtST09ULyRBRERJ
VElPTkFMX1JFU09VUkNFU19QQVRIIF07IHRoZW5cbiAgICBjcCAkU0RLUk9PVC8kQURESVRJT05B
TF9SRVNPVVJDRVNfUEFUSC8qICRERVNUSU5BVElPTl9QQVRIXG5maSI7Ci0JCX07Ci0vKiBFbmQg
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQogLyogQmVnaW4gUEJYU291cmNl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCQk3QzgzREU5NjFEMEE1OTBDMDBGRUJDRjMgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNvbnRlbnRl
ZGl0YWJsZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0
b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMzYzNWY5NGUzMGJkN2Y5
ZmUzNDQyM2MwN2U4NTgxMWM0ZWRiOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwK
QEAgLTAsMCArMSw0MCBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAg
ICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgICNzb3VyY2UsICNlZGl0
b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4
OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNl
OiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJv
cmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hl
YWQ+CisKKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJzb3VyY2UiPkhlbGxv
IHdvcmxkPC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9ImVkaXRvciI+PC9kaXY+
CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAg
ICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50
eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RF
dmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0
RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0
RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgcG9z
dEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIHBv
c3RFdmVudFR5cGUpOworCisgICAgbGV0IHRleHQgPSBzb3VyY2UuY2hpbGROb2Rlc1swXTsKKyAg
ICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRleHQsIDAsIHRleHQsIHRleHQuZGF0
YS5sZW5ndGgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1p
bnB1dC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dy
b3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljOTg5ODQ1Y2I5N2M1
NGE1ZDBmZGI5ZTNkMzdkYjM5YTE0ZjgyZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlu
cHV0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAg
ICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgIGEsICNl
ZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNw
YWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICBhIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybChpY29uLnBuZyk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVh
dDogbm8tcmVwZWF0OworICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIH0KKwor
ICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOwor
ICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+
PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUuY29tIj48L2E+PC9kaXY+CisgICAgPGRpdj48aW5w
dXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9u
IHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUpOworICAgIH0KKworICAgIGVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRF
dmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQxNDg5ZmMzOTQ2NDc1ZmY5NDhmYWZmZDUzODJkMDcyNmYzOGIyYzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jb250
ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cisg
ICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAg
ICAgfQorCisgICAgICAgICNzb3VyY2UsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEw
MCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAy
MDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAg
ICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgY29u
dGVudGVkaXRhYmxlIGlkPSJzb3VyY2UiPkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPHRleHRhcmVh
IGNvbnRlbnRlZGl0YWJsZSBpZD0iZWRpdG9yIj48L3RleHRhcmVhPgorICAgIDxzY3JpcHQ+Cisg
ICAgZnVuY3Rpb24gcG9zdEV2ZW50VHlwZShldmVudCkgeworICAgICAgIHdlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQorCisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBl
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAg
ZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAg
ZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAg
IGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKwor
ICAgIGxldCB0ZXh0ID0gc291cmNlLmNoaWxkTm9kZXNbMF07CisgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAwLCB0ZXh0LCB0ZXh0LmRhdGEubGVuZ3RoKTsKKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2Rpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2Rpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40Y2EwMTllMmFiNmYzMTY3NjhhMTMxM2Q2MDZiMmRiNGY2NDU3NjcyCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZGl2LWFuZC1sYXJn
ZS1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KKzxzdHlsZT4KK2h0
bWwsIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgICBmb250LXNpemU6IDEuMmVtOworICAgIG92
ZXJmbG93OiBzY3JvbGw7CisgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwor
fQorCisjdGFyZ2V0IHsKKyAgICB3aWR0aDogMjAwMHB4OworICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKK30KKworY29kZSB7CisgICAgY29sb3I6IGdyZWVu
OworfQorPC9zdHlsZT4KKworPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxpbWcgc3JjPSJsYXJn
ZS1yZWQtc3F1YXJlLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+Cit0YXJnZXQuYWRkRXZlbnRMaXN0
ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7Cit0YXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVm
YXVsdCgpKTsKK3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZXZlbnQgPT4geworICAg
IHRhcmdldC5pbm5lckhUTUwgPSAiPGNvZGU+UEFTUzwvY29kZT4iOworICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZmlsZS11cGxvYWRpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ZpbGUtdXBsb2FkaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjc3NDk1ODcxMzBmNzlkZWMwYmNmYjNjNmJmMzAwODVlZTNmNDg4MwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ZpbGUtdXBsb2Fk
aW5nLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAgICA8
c3R5bGU+CisgICAgYm9keSwgaHRtbCB7CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICBo
ZWlnaHQ6IDEwMCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgZm9udC1mYW1pbHk6IC1h
cHBsZS1zeXN0ZW07CisgICAgfQorCisgICAgI2lucHV0LCAjdXBsb2FkIHsKKyAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IGJs
dWUgZGFzaGVkOworICAgIH0KKworICAgICNvdXRwdXQgeworICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZm9udC1zaXplOiAxZW07CisgICAgfQor
ICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGlucHV0IHR5cGU9ImZp
bGUiIGlkPSJpbnB1dCI+PC9pbnB1dD48L2Rpdj4KKyAgICA8ZGl2IGlkPSJ1cGxvYWQiPjwvZGl2
PgorICAgIDxkaXY+PGgzPlVwbG9hZGVkIGZpbGUgdHlwZXM6IDwvaDM+PHRleHRhcmVhIGRpc2Fi
bGVkIGlkPSJvdXRwdXQiPjwvdGV4dGFyZWE+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBpbnB1
dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgIHNlbmRVcGxvYWRl
ZEZpbGVUeXBlc1RvQXBwKGlucHV0LmZpbGVzKTsKKyAgICB9KTsKKworICAgIHVwbG9hZC5hZGRF
dmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgp
KTsKKyAgICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpKTsKKyAgICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIs
IGV2ZW50ID0+IHsKKyAgICAgICAgc2VuZFVwbG9hZGVkRmlsZVR5cGVzVG9BcHAoZXZlbnQuZGF0
YVRyYW5zZmVyLmZpbGVzKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9
KTsKKworICAgIGZ1bmN0aW9uIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1RvQXBwKGZpbGVzKQorICAg
IHsKKyAgICAgICAgb3V0cHV0LnZhbHVlID0gQXJyYXkuZnJvbShmaWxlcykubWFwKGZpbGUgPT4g
ZmlsZS50eXBlKS5zb3J0KCkuam9pbigiLCAiKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9p
bWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9pbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2M3ZGU3M2I4YjFhY2UyMTA5MTRkMDFiZDM4ZWFlNjljZGQzNDFkYQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC1jb250
ZW50ZWRpdGFibGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aGVhZD4KKyAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAg
aGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisKKyAgICAg
ICAgI3NvdXJjZSwgI2VkaXRvciB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7CisgICAg
ICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0
eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxpbWcgaWQ9InNvdXJjZSIgc3JjPSJp
Y29uLnBuZyI+PC9pbWc+PC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9ImVkaXRv
ciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50
KSB7CisgICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRy
b3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2Vu
dGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdv
dmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWds
ZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFn
c3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0
YXJlYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW1hZ2Ut
YW5kLXRleHRhcmVhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdlNmZhYTU5NTQzNWRjMTBkYWMzYzkwZWNh
OTU2ZGEwYjk1OTk1OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sCkBAIC0wLDAgKzEsMzUgQEAK
KzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46
IDA7CisgICAgICAgIH0KKworICAgICAgICAjc291cmNlLCAjZWRpdG9yIHsKKyAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIH0KKwor
ICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOwor
ICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+
PGltZyBpZD0ic291cmNlIiBzcmM9Imljb24ucG5nIj48L2ltZz48L2Rpdj4KKyAgICA8dGV4dGFy
ZWEgY29udGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvdGV4dGFyZWE+CisgICAgPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQor
CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAg
ICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsK
KyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
YjkzMWRhMDEzYmE0NDU4Yjg0OWI5MDk0ZWI3NzVlMTZiNjUzY2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5o
dG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJv
ZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7
CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9y
IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3Jk
ZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFk
PgorCis8Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwcGxlLmNvbSI+SGVs
bG8gd29ybGQ8L2E+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48
L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsK
KyAgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShl
dmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIs
IHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIi
LCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIi
LCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZl
IiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFy
dCIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGluay1hbmQtdGFyZ2V0LWRp
di5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGluay1hbmQt
dGFyZ2V0LWRpdi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmYWQ2NjkxYWMxMTg3MjMyN2RkZTIwMWNmMWU4
Yjk0ZTkxZjBlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9saW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLjAiPgorPHN0eWxlPgorYm9keSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVp
Z2h0OiAxMDAlOworICAgIG1hcmdpbjogMDsKK30KKworYSwgI3RhcmdldCB7CisgICAgd2lkdGg6
IDEwMCU7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBmb250LXNpemU6IDIwMHB4OworICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKyN0YXJnZXQgeworICAgIGJvcmRlcjogYmxhY2sgMXB4
IHNvbGlkOworfQorCitjb2RlIHsKKyAgICBjb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPGRp
dj48YSBocmVmPSJodHRwczovL3d3dy5hcHBsZS5jb20iPkhlbGxvIHdvcmxkPC9hPjwvZGl2Pgor
PGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxzY3JpcHQ+Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5l
cigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7Cit0YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVs
dCgpKTsKK3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZXZlbnQgPT4geworICAgIHRh
cmdldC5pbm5lckhUTUwgPSAiPGNvZGU+UEFTUzwvY29kZT4iOworICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1vcGVyYXRpb24uaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjM3NmU2Nzc0NTdlZDFhMDY4NTJhZDNjNTcyMGRhMWI1ZTBmNTljMAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQt
b3BlcmF0aW9uLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4K
KyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAg
IGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWln
aHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAg
ICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBw
bGUuY29tIj5IZWxsbyB3b3JsZDwvYT48L2Rpdj4KKyAgICA8ZGl2Pjx0ZXh0YXJlYSBvbmRyb3A9
InJldHVybiBmYWxzZSIgaWQ9ImVkaXRvciI+PC90ZXh0YXJlYT48L2Rpdj4KKyAgICA8c2NyaXB0
PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICAgd2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9
CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsK
KyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsK
KyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7
CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUp
OworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1zdGFydC5odG1sIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0
MDUyMDEyZDUyMzg5ZWIwNzVkZmRiZDUzZjBjNGEzZjIwMjQzNGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wcmV2ZW50LXN0YXJ0Lmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsK
KyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgIGEsICNlZGl0b3Ig
eworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBu
b3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRl
cjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+
CisKKzxib2R5PgorICAgIDxkaXY+PGEgb25kcmFnc3RhcnQ9InJldHVybiBmYWxzZSIgaHJlZj0i
aHR0cHM6Ly93d3cuYXBwbGUuY29tIj5IZWxsbyB3b3JsZDwvYT48L2Rpdj4KKyAgICA8ZGl2Pjx0
ZXh0YXJlYSBpZD0iZWRpdG9yIj48L3RleHRhcmVhPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAg
ZnVuY3Rpb24gcG9zdEV2ZW50VHlwZShldmVudCkgeworICAgICAgICB3ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUpOworICAgIH0KKworICAg
IGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRp
dG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVk
aXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVk
aXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBl
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgcG9zdEV2ZW50VHlwZSk7CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS90ZXh0YXJlYS10by1pbnB1dC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFyZWEtdG8taW5wdXQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
M2I4ZjljYzJkY2FjNjhhMGYwYzE2NWE5YjU2YWIzNGM1ZjY4MjFmCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFyZWEtdG8taW5w
dXQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CisgICAg
ICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAg
fQorCisgICAgICAgICNzb3VyY2UsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBw
eDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAg
ICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAg
ICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDx0ZXh0YXJlYSBp
ZD0ic291cmNlIj5IZWxsbyB3b3JsZDwvdGV4dGFyZWE+CisgICAgPGlucHV0IGlkPSJlZGl0b3Ii
PjwvaW5wdXQ+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50
KSB7CisgICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRy
b3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2Vu
dGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdv
dmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWds
ZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFn
c3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBzb3VyY2Uuc2VsZWN0aW9uU3RhcnQgPSAwOwor
ICAgIHNvdXJjZS5zZWxlY3Rpb25FbmQgPSBzb3VyY2UudmFsdWUubGVuZ3RoOworICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4IDcwOTBmN2I4OTk0OGRjN2I2ZjE2M2I2YmY0Njg0ZjFi
NTYzOTAwYjEuLjljOWJlNDdlMTIxYTMzOTRkYTM3MzM3YzliYTNjYzEzYTFlYzdjNWIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
bW0KQEAgLTMwLDYgKzMwLDEwIEBACiAKICNpbXBvcnQgIkluc3RhbmNlTWV0aG9kU3dpenpsZXIu
aCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxVSUtpdC9VSURyYWdJ
bnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnSXRlbS5oPgorI2ltcG9ydCA8VUlL
aXQvVUlEcmFnU2Vzc2lvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnZ2luZy5oPgogI2ltcG9y
dCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0
TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQyLDkg
KzQ2LDE5MSBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJQXBwbGljYXRpb25JbnN0YW50aWF0ZVNpbmds
ZXRvbiwgdm9pZCwgKENsYXNzIHNpbmdsZXRvbkNsYXNzKQogCiB1c2luZyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSTsKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1
ZGUoPFdlYktpdEFkZGl0aW9ucy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3JBZGRpdGlvbnMubW0+
KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3JBZGRp
dGlvbnMubW0+Ci0jZW5kaWYKK0BpbnRlcmZhY2UgTW9ja0RyYWdEcm9wU2Vzc2lvbiA6IE5TT2Jq
ZWN0IDxVSURyYWdEcm9wU2Vzc2lvbj4geworQHByaXZhdGUKKyAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gX21vY2tJdGVtczsKKyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IF93aW5kb3c7Cit9CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBtb2NrTG9jYXRpb25JbldpbmRvdzsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIE1vY2tEcmFnRHJvcFNlc3Npb24KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoSXRlbXM6KE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4qKWl0ZW1zIGxvY2F0aW9uOihDR1Bv
aW50KWxvY2F0aW9uSW5XaW5kb3cgd2luZG93OihVSVdpbmRvdyAqKXdpbmRvdworeworICAgIGlm
IChzZWxmID0gW3N1cGVyIGluaXRdKSB7CisgICAgICAgIF9tb2NrSXRlbXMgPSBpdGVtczsKKyAg
ICAgICAgX21vY2tMb2NhdGlvbkluV2luZG93ID0gbG9jYXRpb25JbldpbmRvdzsKKyAgICAgICAg
X3dpbmRvdyA9IHdpbmRvdzsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wp
YWxsb3dzTW92ZU9wZXJhdGlvbgoreworICAgIHJldHVybiBZRVM7Cit9CisKKy0gKEJPT0wpaXNS
ZXN0cmljdGVkVG9EcmFnZ2luZ0FwcGxpY2F0aW9uCit7CisgICAgcmV0dXJuIE5POworfQorCist
IChCT09MKWhhc0l0ZW1zQ29uZm9ybWluZ1RvVHlwZUlkZW50aWZpZXJzOihOU0FycmF5PE5TU3Ry
aW5nICo+ICopdHlwZUlkZW50aWZpZXJzCit7CisgICAgZm9yIChOU1N0cmluZyAqdHlwZUlkZW50
aWZpZXIgaW4gdHlwZUlkZW50aWZpZXJzKSB7CisgICAgICAgIEJPT0wgaGFzSXRlbUNvbmZvcm1p
bmdUb1R5cGUgPSBOTzsKKyAgICAgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRl
bXMpCisgICAgICAgICAgICBoYXNJdGVtQ29uZm9ybWluZ1RvVHlwZSB8PSBbW2l0ZW0uaXRlbVBy
b3ZpZGVyIHJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllcnNdIGNvbnRhaW5zT2JqZWN0OnR5cGVJZGVu
dGlmaWVyXTsKKyAgICAgICAgaWYgKCFoYXNJdGVtQ29uZm9ybWluZ1RvVHlwZSkKKyAgICAgICAg
ICAgIHJldHVybiBOTzsKKyAgICB9CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAoQk9PTCljYW5M
b2FkT2JqZWN0c09mQ2xhc3M6KENsYXNzPFVJSXRlbVByb3ZpZGVyUmVhZGluZz4pYUNsYXNzCit7
CisgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRlbXMpIHsKKyAgICAgICAgaWYg
KFtpdGVtLml0ZW1Qcm92aWRlciBjYW5Mb2FkT2JqZWN0T2ZDbGFzczphQ2xhc3NdKQorICAgICAg
ICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJuIE5POworfQorCistIChCT09MKWNh
bkxvYWRPYmplY3RzT2ZDbGFzc2VzOihOU0FycmF5PENsYXNzPFVJSXRlbVByb3ZpZGVyUmVhZGlu
Zz4+ICopY2xhc3NlcworeworICAgIGZvciAoQ2xhc3M8VUlJdGVtUHJvdmlkZXJSZWFkaW5nPiBh
Q2xhc3MgaW4gY2xhc3NlcykgeworICAgICAgICBCT09MIGNhbkxvYWQgPSBOTzsKKyAgICAgICAg
Zm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRlbXMpCisgICAgICAgICAgICBjYW5Mb2Fk
IHw9IFtpdGVtLml0ZW1Qcm92aWRlciBjYW5Mb2FkT2JqZWN0T2ZDbGFzczphQ2xhc3NdOworICAg
ICAgICBpZiAoIWNhbkxvYWQpCisgICAgICAgICAgICByZXR1cm4gTk87CisgICAgfQorICAgIHJl
dHVybiBZRVM7Cit9CisKKy0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7CisgICAg
cmV0dXJuIF9tb2NrSXRlbXMuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXk8
VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7CisgICAgX21vY2tJdGVtcyA9IGl0ZW1zOworfQorCist
IChDR1BvaW50KWxvY2F0aW9uSW5WaWV3OihVSVZpZXcgKil2aWV3Cit7CisgICAgcmV0dXJuIFtf
d2luZG93IGNvbnZlcnRQb2ludDpfbW9ja0xvY2F0aW9uSW5XaW5kb3cgdG9WaWV3OnZpZXddOwor
fQorCitAZW5kCisKK05TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9uRW50ZXJFdmVudE5h
bWUgPSBAImRyYWdlbnRlciI7CitOU1N0cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvbk92ZXJF
dmVudE5hbWUgPSBAImRyYWdvdmVyIjsKK05TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9u
UGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFtZSA9IEAiZHJvcCI7CitOU1N0cmluZyAqIGNvbnN0IERh
dGFJbnRlcmFjdGlvbkxlYXZlRXZlbnROYW1lID0gQCJkcmFnbGVhdmUiOworTlNTdHJpbmcgKiBj
b25zdCBEYXRhSW50ZXJhY3Rpb25TdGFydEV2ZW50TmFtZSA9IEAiZHJhZ3N0YXJ0IjsKKworQGlu
dGVyZmFjZSBNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gOiBNb2NrRHJhZ0Ryb3BTZXNzaW9uIDxV
SURyb3BTZXNzaW9uPgorQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgaWQgbG9jYWxDb250
ZXh0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uCisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiAqKXByb3ZpZGVycyBsb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbkluV2luZG93IHdpbmRv
dzooVUlXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBhdXRvIGl0ZW1zID0gYWRvcHROUyhbW05TTXV0
YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChVSUl0ZW1Qcm92aWRlciAqaXRlbVBy
b3ZpZGVyIGluIHByb3ZpZGVycykKKyAgICAgICAgW2l0ZW1zIGFkZE9iamVjdDpbW1tVSURyYWdJ
dGVtIGFsbG9jXSBpbml0V2l0aEl0ZW1Qcm92aWRlcjppdGVtUHJvdmlkZXJdIGF1dG9yZWxlYXNl
XV07CisKKyAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoSXRlbXM6aXRlbXMuZ2V0KCkgbG9jYXRp
b246bG9jYXRpb25JbldpbmRvdyB3aW5kb3c6d2luZG93XTsKK30KKworLSAoVUlEcmFnZ2luZ1Nl
c3Npb24gKilzZXNzaW9uCit7CisgICAgcmV0dXJuIG5pbDsKK30KKworLSAoQk9PTClpc0xvY2Fs
Cit7CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAoTlNQcm9ncmVzcyAqKXByb2dyZXNzCit7Cisg
ICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jlc3NXaXRoVG90YWxVbml0Q291bnQ6
MTAwXTsKK30KKworLSAodm9pZClzZXRQcm9ncmVzc0luZGljYXRvclN0eWxlOihVSURyb3BTZXNz
aW9uUHJvZ3Jlc3NJbmRpY2F0b3JTdHlsZSlwcm9ncmVzc0luZGljYXRvclN0eWxlCit7Cit9CisK
Ky0gKFVJRHJvcFNlc3Npb25Qcm9ncmVzc0luZGljYXRvclN0eWxlKXByb2dyZXNzSW5kaWNhdG9y
U3R5bGUKK3sKKyAgICByZXR1cm4gVUlEcm9wU2Vzc2lvblByb2dyZXNzSW5kaWNhdG9yU3R5bGVO
b25lOworfQorCistIChOU1VJbnRlZ2VyKW9wZXJhdGlvbk1hc2sKK3sKKyAgICByZXR1cm4gMDsK
K30KKworLSAoaWQgPFVJRHJhZ1Nlc3Npb24+KWxvY2FsRHJhZ1Nlc3Npb24KK3sKKyAgICByZXR1
cm4gbmlsOworfQorCistIChCT09MKWhhc0l0ZW1zQ29uZm9ybWluZ1RvVHlwZUlkZW50aWZpZXI6
KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpY2FuQ3JlYXRlSXRlbXNPZkNsYXNzOihDbGFz
czxVSUl0ZW1Qcm92aWRlclJlYWRpbmc+KWFDbGFzcworeworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBOTzsKK30KKworLSAoTlNQcm9ncmVzcyAqKWxvYWRPYmplY3RzT2ZD
bGFzczooQ2xhc3M8TlNJdGVtUHJvdmlkZXJSZWFkaW5nPilhQ2xhc3MgY29tcGxldGlvbjoodm9p
ZCheKShOU0FycmF5PF9fa2luZG9mIGlkIDxOU0l0ZW1Qcm92aWRlclJlYWRpbmc+PiAqb2JqZWN0
cykpY29tcGxldGlvbgoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBu
aWw7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiA6
IE1vY2tEcmFnRHJvcFNlc3Npb24gPFVJRHJhZ1Nlc3Npb24+CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBpZCBsb2NhbENvbnRleHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25n
KSBpZCBjb250ZXh0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTW9ja0RhdGFJbnRlcmFjdGlv
blNlc3Npb24KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2luZG93OihVSVdpbmRvdyAqKXdp
bmRvdworeworICAgIHJldHVybiBbc3VwZXIgaW5pdFdpdGhJdGVtczpAWyBdIGxvY2F0aW9uOkNH
UG9pbnRaZXJvIHdpbmRvdzp3aW5kb3ddOworfQorCistIChOU1VJbnRlZ2VyKWxvY2FsT3BlcmF0
aW9uTWFzaworeworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQor
CistIChOU1VJbnRlZ2VyKWV4dGVybmFsT3BlcmF0aW9uTWFzaworeworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCistIChpZClzZXNzaW9uCit7CisgICAgcmV0
dXJuIG5pbDsKK30KKworQGVuZAogCiBzdGF0aWMgZG91YmxlIHByb2dyZXNzSW5jcmVtZW50U3Rl
cCA9IDAuMDMzOwogc3RhdGljIGRvdWJsZSBwcm9ncmVzc1RpbWVTdGVwID0gMC4wMTY7CkBAIC0y
MTIsNyArMzk4LDcgQEAgc3RhdGljIE5TQXJyYXkgKmRhdGFJbnRlcmFjdGlvbkV2ZW50TmFtZXMo
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZm9yIChXS0RhdGFJ
bnRlcmFjdGlvbkl0ZW0gKml0ZW0gaW4gaXRlbXMpCisgICAgICAgIGZvciAoVUlEcmFnSXRlbSAq
aXRlbSBpbiBpdGVtcykKICAgICAgICAgICAgIFtpdGVtUHJvdmlkZXJzIGFkZE9iamVjdDppdGVt
Lml0ZW1Qcm92aWRlcl07CiAKICAgICAgICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gYWRvcHRO
UyhbW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhQcm92aWRlcnM6aXRl
bVByb3ZpZGVycyBsb2NhdGlvbjpzZWxmLl9jdXJyZW50TG9jYXRpb24gd2luZG93Oltfd2ViVmll
dyB3aW5kb3ddXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313143</attachid>
            <date>2017-06-16 15:09:45 -0700</date>
            <delta_ts>2017-06-16 15:20:37 -0700</delta_ts>
            <desc>Attempt to fix iOS build</desc>
            <filename>bug-173366-20170616150944.patch</filename>
            <type>text/plain</type>
            <size>169432</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ODEwNmFhYmY0YjUzMDg5NTRjZjhiMzFlOTI3NzViNzNjNzI3ZDE5Li5lMTYyZjA3MGVkNTc0NjQ4
MWU5NWI0M2QzNDI5YWJmZjM3N2NkNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TIERuRF0gVXBzdHJlYW0gaU9TIGRyYWcgYW5kIGRyb3AgaW1w
bGVtZW50YXRpb24gaW50byBPcGVuU291cmNlIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMjc2NzAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2UgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gYW5kIEVOQUJMRV9EUkFHX1NV
UFBPUlQgdG8gRmVhdHVyZURlZmluZXMueGNjb25maWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNy0wNi0xNSAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgSlNSdW5Mb29wVGltZXIgcmVnaXN0
cnkgaW4gVk0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IDc4ODRlMDNiZWU4ZDNmMDdjM2Y4NWExMTYyNzc3ZWJiOTUzMzE2NWIu
LjExNWYzNmEyZjA4YTAxOTIwZDgwMWQ0NzQ3YTllYzA4ZDQ2ZWRiNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBkcmFnIGFuZCBkcm9wIGltcGxlbWVu
dGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI3
NjcwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgYXMgMSBieSBkZWZhdWx0IGFuZCAwIGZvciBpT1Ms
IGFuZCBkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gYXMgMCBieSBkZWZhdWx0LgorICAg
ICAgICBUaGVzZSBhcmUgb3ZlcnJpZGRlbiB0byBib3RoIGJlIDEgZm9yIGlPUyAxMSsgaW4gdGhl
IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIHdpdGhpbiBlYWNoIGluZGl2aWR1YWwgcHJvamVjdC4K
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA2LTE1ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHR5cG8gaW4gWFBDU1BJLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkNzI0MmVlMWNiYjRhYjg4YmUwMzFiM2RhNjI3NzdkMzZjNDk0Yjg0Li4zZTU5NWM3
OGUyMDFjYTczNGJmOWE1ODA3NWMwMDIzN2Y4OTcxNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjEgQEAKKzIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBkcmFnIGFuZCBkcm9wIGltcGxlbWVu
dGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI3
NjcwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZXMgYWxsIGRyYWcgYW5kIGRyb3AgbG9naWMgcHJldmlvdXNseSBoaWRkZW4gYmVoaW5kIFdl
YktpdEFkZGl0aW9ucyBpbnRvIHRoZSBvcGVuIHNvdXJjZSByZXBvc2l0b3J5LCBhbG9uZworICAg
ICAgICB3aXRoIHVuaXQgdGVzdCBwYWdlcyBpbiBUZXN0V2ViS2l0QVBJLiBBbHNvIHJlbW92ZXMg
YWxsICNpbmNsdWRlcyBhbmQgI2ltcG9ydHMgb2YgZHJhZ2dpbmctcmVsYXRlZCBmaWxlcyBpbgor
ICAgICAgICBXZWJLaXRBZGRpdGlvbnMgZnJvbSB0aGUgb3BlbiBzb3VyY2UgcmVwb3NpdG9yeS4K
KworICAgICAgICBUaGlzIGluaXRpYWwgdXBzdHJlYW1pbmcgcGhhc2UgaXMgb25seSBjb25jZXJu
ZWQgd2l0aCBtb3ZpbmcgY29kZSBvdXQgb2YgV2ViS2l0QWRkaXRpb25zLCBhbmQgYXR0ZW1wdHMg
dG8KKyAgICAgICAgcHJlc2VydmUgdGhlIGNvZGUgYXMtaXMsIHdpdGggdGhlIGV4Y2VwdGlvbiBv
ZiB0cml2aWFsIHN0eWxlIGNoYW5nZXMgc28gdGhhdCB0aGUgb3BlbiBzb3VyY2UgbGludGVyIHBh
c3Nlcy4KKyAgICAgICAgRnV0dXJlIHBhdGNoZXMgd2lsbCByZW1vdmUgdGhlIERBVEFfSU5URVJB
Q1RJT04gZmVhdHVyZSBmbGFnIGFsdG9nZXRoZXIgYW5kIHVub2JzY3VyZSBhbGwgdmFyaWFibGUg
YW5kIGZ1bmN0aW9uCisgICAgICAgIG5hbWVzIHJlZmVyZW5jaW5nICJkYXRhIGludGVyYWN0aW9u
Ii4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IgZnJvbSB0aGUgaW50ZXJuYWwgYnVp
bGQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9p
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW06CisgICAgICAgIChX
ZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJh
Z0ltYWdlRm9yTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VJY29uRm9y
Q2FjaGVkSW1hZ2VGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUFkanVzdERy
YWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURy
YWdJbWFnZUZvclNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXNzb2x2ZURyYWdJbWFn
ZVRvRnJhY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6UGFzdGVib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFn
RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJ0ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJp
bmdQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp1cmxQYXN0ZWJvYXJkVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpodG1sUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZQYXN0ZWJvYXJk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdE
YXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChydGZQYXN0ZWJvYXJkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgIChydGZkUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoc3RyaW5n
UGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAodXJsUGFzdGVib2FyZFR5cGUpOiBE
ZWxldGVkLgorICAgICAgICAoaHRtbFBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAg
KGNvbG9yUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAocGRmUGFzdGVib2FyZFR5
cGUpOiBEZWxldGVkLgorICAgICAgICAodGlmZlBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKwog
MjAxNy0wNi0xNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViS2l0IGRvZXMgbm90IGhvbm9yIGNsb3NlZCBjYXB0aW9uIHN0cm9rZSB3aWR0aC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDU3YTI4ZTQxZWExNTkyY2NkZjljZTUyNDMzNDEzNGIxYWIzYWY3
MTQuLmY4ZjE5NjIwMjM1ZjEzMzQ0ZGRmZTEzZmUzYzBlYmIwOWE1NWMxNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJh
ZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiBhbmQg
RU5BQkxFX0RSQUdfU1VQUE9SVCB0byBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE3LTA2LTEw
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0ZWQgcjIx
ODA1NiBiZWNhdXNlIGl0IG1hZGUgdGhlIElERSByZWluZGV4IGNvbnN0YW50bHkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMWUwMWNhMmQwNzgxYjkzYzA3ZGY2ZmZiMzFjMmZiMDhhYTIzZTRjZS4uZDcz
MWU0ZGZmYzU0YWQ2M2Q5MmYzOTcxMTlkOGRkODFlNjViMmVhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJv
cCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgcGllY2VzIG9mIGlPUyBXZWJLaXQxIGRyYWcgYW5kIGRyb3AgaW1wbGVt
ZW50YXRpb24gaW50byBPcGVuU291cmNlLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6
dXNlTGVnYWN5RHJhZ0NsaWVudCk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9y
bURyYWdEZXN0aW5hdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpkcmFnU291
cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OndpbGxQZXJm
b3JtRHJhZ1NvdXJjZUFjdGlvbik6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcp
OgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6YmVnaW5EcmFnKToKKyAgICAgICAgKFdlYkRyYWdD
bGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50
OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OmRp
ZENvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfc2V0RGF0YUludGVyYWN0aW9uRGF0YTp0ZXh0SW5kaWNhdG9yOmF0Q2xp
ZW50UG9zaXRpb246YW5jaG9yUG9pbnQ6YWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9n
ZXREYXRhSW50ZXJhY3Rpb25EYXRhXSk6CisgICAgICAgICgtW1dlYlZpZXcgZHJhZ0RhdGFGb3JT
ZXNzaW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9l
bnRlcmVkRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF91cGRhdGVkRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0
aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9leGl0ZWREYXRhSW50ZXJhY3Rpb246Y2xpZW50
Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3BlcmZvcm1EYXRhSW50
ZXJhY3Rpb246Y2xpZW50Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjpjbGllbnQ6Z2xvYmFsOm9wZXJhdGlvbjpdKToK
KyAgICAgICAgKC1bV2ViVmlldyBfZW5kZWREYXRhSW50ZXJhY3Rpb246Z2xvYmFsOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF9kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25dKToKKyAgICAg
ICAgKGZsb2F0UmVjdHNGb3JDR1JlY3RBcnJheSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlZp
ZXcgX2NyZWF0ZUltYWdlV2l0aFBsYXR0ZXJGb3JJbWFnZTpib3VuZGluZ1JlY3Q6Y29udGVudFNj
YWxlRmFjdG9yOmNsaXBwaW5nUmVjdHM6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAg
ICgtW1dlYlZpZXdQcml2YXRlIGRlYWxsb2NdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmg6CisKIDIwMTctMDYtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPUyBEbkRdIFtXSzFdIERyb3BwaW5nIGxpbmtzIG9udG8gVUlX
ZWJWaWV3cyBzaG91bGQgbm90IHRyaWdnZXIgbmF2aWdhdGlvbiBieSBkZWZhdWx0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNWU5NjU3NzBhMzg0N2Y2NGY2YzRhNjkwOGI3YjViMTcyOWVmMmU1Zi4uNTg3YjljOTVm
ODA0ZDYzZTNlMDdmMGUyYmZiZTk2MGM0Nzk3NWI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1
IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRh
dGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzY3
MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgcGllY2VzIG9mIGlPUyBXZWJLaXQyIGRyYWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gaW50
byBPcGVuU291cmNlLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNl
ZERhdGFGb3JJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJvbWlz
ZWREYXRhRm9yQXR0YWNobWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
RHJhZ0NhcmV0UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbToKKyAgICAgICAgKGxvbmdQcmVzc0FjdGlvbkRlbGF5QWZ0ZXJMaWZ0KToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyB3ZWJWaWV3VUlEZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHNldHVwRGF0YUludGVyYWN0aW9uRGVsZWdhdGVzXSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgdGVhcmRvd25EYXRhSW50ZXJhY3Rpb25EZWxlZ2F0ZXNdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6d2l0aEluZGlj
YXRvckRhdGE6YXRDbGllbnRQb3NpdGlvbjphbmNob3JQb2ludDphY3Rpb246XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDpd
KToKKyAgICAgICAgKHVpSW1hZ2VGb3JJbWFnZSk6CisgICAgICAgIChzaG91bGRVc2VUZXh0SW5k
aWNhdG9yVG9DcmVhdGVQcmV2aWV3Rm9yRHJhZ0FjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZHJhZ1ByZXZpZXdGb3JJbWFnZTpmcmFtZUluUm9vdFZpZXdDb29yZGluYXRlczpjbGlw
cGluZ1JlY3RzSW5GcmFtZUNvb3JkaW5hdGVzOmJhY2tncm91bmRDb2xvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBkcmFnUHJldmlld0ZvckN1cnJlbnREYXRhSW50ZXJhY3Rpb25TdGF0
ZV0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1EZWZlcnJlZEFjdGlvbkF0RHJh
Z09yaWdpbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhbmNlbERlZmVycmVkQWN0aW9u
QXREcmFnT3JpZ2luXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29tcHV0ZUNsaWVudEFu
ZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOm91dENsaWVudFBvaW50Om91dEdsb2JhbFBvaW50
Ol0pOgorICAgICAgICAoZHJvcE9wZXJhdGlvbkZvcldlYkNvcmVEcmFnT3BlcmF0aW9uKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnRGF0YUZvckRyb3BTZXNzaW9uOmRyYWdEZXN0aW5h
dGlvbkFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwRHJhZ1NvdXJj
ZVNlc3Npb25TdGF0ZV0pOgorICAgICAgICAoZXh0cmFjdEl0ZW1Qcm92aWRlcnNGcm9tRHJhZ0l0
ZW1zKToKKyAgICAgICAgKGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9uKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29u
dHJvbGxlck9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfdHJhbnNpdGlv
bkRyYWdQcmV2aWV3VG9JbWFnZUlmTmVjZXNzYXJ5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9kaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q6Y3VycmVudFJlY3Q6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RyYWdEZXN0aW5hdGlvbkFjdGlvbkZvckRyb3BTZXNz
aW9uOl0pOgorICAgICAgICAocG9zaXRpb25JbmZvcm1hdGlvbk1heVN0YXJ0RGF0YUludGVyYWN0
aW9uKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50RHJhZ09yRHJvcFNlc3Npb25d
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVGb3JT
ZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJhZ0ludGVy
YWN0aW9uOml0ZW1zRm9yQmVnaW5uaW5nU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjpwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06c2Vzc2lvbjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246c2Vzc2lvbldpbGxC
ZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjpz
ZXNzaW9uOmRpZEVuZFdpdGhPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
ZHJhZ0ludGVyYWN0aW9uOnByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTp3aXRoRGVmYXVsdDpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYXBpX2RyYWdJbnRlcmFjdGlvbjppdGVtOndpbGxB
bmltYXRlQ2FuY2VsV2l0aEFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRy
b3BJbnRlcmFjdGlvbjpjYW5IYW5kbGVTZXNzaW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hcGlfZHJvcEludGVyYWN0aW9uOnNlc3Npb25EaWRFbnRlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfYXBpX2Ryb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkVXBkYXRlOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkRXhpdDpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcm9wSW50ZXJhY3Rpb246cGVyZm9ybURyb3A6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJvcEludGVyYWN0aW9uOnByZXZpZXdGb3JE
cm9wcGluZ0l0ZW06d2l0aERlZmF1bHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJv
cEludGVyYWN0aW9uOnNlc3Npb25EaWRFbmQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lv
bkRpZEVuZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2ltdWxhdGVXaWxsQmVnaW5E
YXRhSW50ZXJhY3Rpb25XaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9z
aW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOmNvbXBsZXRpb246XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydENHSW1hZ2VUb0JpdG1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRy
YWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRyYWdDbGllbnQ6OmRpZENvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJE
cmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KToKKwogMjAxNy0wNi0xNiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11b
V1BFXSBSZW1vdmUgV0tDb29raWVNYW5hZ2VyU291cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmY1YTkxNGJmYTRh
Y2E0NGI2OTUwYTc2OTIzMjkxZTUxZjk4YmI5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTI0OCw0ICsyNDgsOSBAQCBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF8gPSAkKEVO
QUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX05PKTsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNf
SUZfTk9UX05PID0gRU5BQkxFX1ZBUklBVElPTl9GT05UUzsKIEVOQUJMRV9WQVJJQVRJT05fRk9O
VFNfSUZfTk9UX1lFUyA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19Q
QVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NT
X1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lU
RU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVf
RklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExF
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFC
TEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJE
X0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVG
SVhFUykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9D
QVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NF
U1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05P
U05JRkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQo
RU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVf
UFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFO
RElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxF
X1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9J
Q09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklE
RU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJM
RV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9EUkFH
X1NVUFBPUlRbc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVf
RFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9S
VDsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFU
QV9JTlRFUkFDVElPTjsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0
b3IxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkp
ICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19B
TklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQo
RU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJ
T04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChF
TkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRD
SF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFC
TEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5B
QkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAk
KEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xF
R0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAk
KEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFC
TEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJF
TkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9Q
REZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9F
VkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVO
QUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChF
TkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxF
X1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVf
Q1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVU
RUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChF
TkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkg
JChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1B
VElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVf
V0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJM
RV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNM
VCkgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IDE3MTdjMzZmYzRjODgxMzEzYzliZWMxNGU3ZjBmYWI0OGZiZjRhZjIuLjUw
MDQwNzdhNTZhMmYyYWUzNTA3YzU0ZGY1ZTgyODBjZWFiODEwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAt
NzExLDEwICs3MTEsNiBAQAogLyogSW5jbHVkZSBmZWF0dXJlIG1hY3JvcyAqLwogI2luY2x1ZGUg
PHd0Zi9GZWF0dXJlRGVmaW5lcy5oPgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYg
X19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5o
PikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+
Ci0jZW5kaWYKLQogI2lmIE9TKFdJTkRPV1MpCiAjZGVmaW5lIFVTRV9TWVNURU1fTUFMTE9DIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA3ODQ3NjU3NDliZDBlNmY1NTRjZDVmYmU5MTNmNGUxOWI5
ODBjZGQwLi5mNWE5MTRiZmE0YWNhNDRiNjk1MGE3NjkyMzI5MWU1MWY5OGJiOTcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpAQCAtMjQ4LDQgKzI0OCw5IEBAIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UXyA9
ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8pOwogRU5BQkxFX1ZBUklBVElPTl9G
T05UU19JRl9OT1RfTk8gPSBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTOwogRU5BQkxFX1ZBUklBVElP
Tl9GT05UU19JRl9OT1RfWUVTID0gOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9U
UkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJM
RV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FO
VkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19M
RVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19D
T01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
SU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNf
VEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1F
TlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVO
QUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5D
T01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAk
KEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZ
Qk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVE
SUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5B
QkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRP
Ul9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFC
TEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVO
QUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJF
Ul9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklB
VElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01B
Q19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQo
RU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NF
TUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAk
KEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRU5BQkxF
X0RSQUdfU1VQUE9SVFtzZGs9aXBob25lb3MxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VO
QUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfRFJBR19T
VVBQT1JUOworRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05bc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OOworRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05bc2RrPWlwaG9uZXNp
bXVsYXRvcjExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKKworRkVBVFVSRV9ERUZJTkVT
ID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRf
RUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05J
TkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVf
Q1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElP
TikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVT
T0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkg
JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JE
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxF
X0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikg
JChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJV
VEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJ
UFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAk
KEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09O
Q1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUp
ICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdF
KSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NV
QlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJF
Ul9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxM
KSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJf
QU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVO
QUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQo
RU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJM
RV9YU0xUKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5
Yjk4MGNkZDAuLmY1YTkxNGJmYTRhY2E0NGI2OTUwYTc2OTIzMjkxZTUxZjk4YmI5NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTI0OCw0ICsyNDgsOSBAQCBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRT
X0lGX05PVF8gPSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX05PKTsKIEVOQUJMRV9W
QVJJQVRJT05fRk9OVFNfSUZfTk9UX05PID0gRU5BQkxFX1ZBUklBVElPTl9GT05UUzsKIEVOQUJM
RV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX1lFUyA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFC
TEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENI
X0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9H
QU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFC
TEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hf
RVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQo
RU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVH
QUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVN
RU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJM
RV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVO
Q1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BE
RktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VW
RU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFC
TEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5B
QkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVO
QUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVf
U1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9D
UllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVO
QUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAk
KEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFU
SU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9X
RUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFC
TEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxF
X1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xU
KTsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EUkFHX1NV
UFBPUlQ7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5B
QkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVvczEx
Kl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nk
az1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CisKK0ZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVO
QUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZ
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcp
ICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNF
X0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NS
T0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJB
SUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxV
RSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05T
KSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVf
RlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVD
QVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05f
T0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9L
RVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNT
KSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09O
VFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChF
TkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNP
Ul9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklH
QVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5B
QkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFC
TEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVU
T0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNP
VVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09O
VFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAk
KEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VS
U0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVT
RU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVP
X1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChF
TkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JF
UExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dF
Ql9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFu
ZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpp
bmRleCBiMDlmOWU5MGZlMDRhOWRlODkxODkzZTYxMDM0YWY1ZWJlM2MzMjEwLi45NjczYmM1ZTkw
ZWMwYjU4NmFkYjNmZmNmYjQ2ZTg0NzAwNWRmZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0yOSwxMiArMjksMTUgQEAKICNpbXBvcnQgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9tZS5oIgogI2ltcG9ydCAiQ2hyb21lQ2xpZW50Lmgi
CisjaW1wb3J0ICJEYXRhVHJhbnNmZXIuaCIKKyNpbXBvcnQgIkRyYWdTdGF0ZS5oIgogI2ltcG9y
dCAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVW
aWV3LmgiCiAjaW1wb3J0ICJLZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJQYXN0ZWJvYXJk
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIgogI2ltcG9ydCAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTQ0LDE1ICs0
NywxMiBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW1wb3J0
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlcklPU1RvdWNoLmNwcD4KICNlbmRpZgog
Ci0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9F
dmVudEhhbmRsZXJBZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBzdGF0aWMgUmV0YWluUHRyPFdlYkV2ZW50PiYgY3VycmVudEV2ZW50U2xvdCgpCkBAIC01NTks
NCArNTU5LDQ5IEBAIFBsYXRmb3JtTW91c2VFdmVudCBFdmVudEhhbmRsZXI6OmN1cnJlbnRQbGF0
Zm9ybU1vdXNlRXZlbnQoKSBjb25zdAogICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6
Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50KGN1cnJlbnRFdmVudCgpKTsKIH0KIAorI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAoreworICAgIFBhc3RlYm9hcmQoImRhdGEgaW50
ZXJhY3Rpb24gcGFzdGVib2FyZCIpLmNsZWFyKCk7CisgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6
Y3JlYXRlRm9yRHJhZygpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxl
TW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50
ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uKQoreworICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUo
bV9mcmFtZSk7CisKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VQcmVzc0V2
ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVu
dFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3Vz
ZU1vdmVFdmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhp
dFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRT
aGFkb3dDb250ZW50KTsKKyAgICBhdXRvIGRvY3VtZW50UG9pbnQgPSBwcm90ZWN0ZWRGcmFtZS0+
dmlldygpID8gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhzeW50aGV0
aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigpKSA6IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBv
c2l0aW9uKCk7CisgICAgYXV0byBoaXRUZXN0ZWRNb3VzZUV2ZW50ID0gbV9mcmFtZS5kb2N1bWVu
dCgpLT5wcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0LCBkb2N1bWVudFBvaW50LCBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudCk7CisKKyAgICBSZWZQdHI8RnJhbWU+IHN1YmZyYW1lID0gc3ViZnJhbWVG
b3JIaXRUZXN0UmVzdWx0KGhpdFRlc3RlZE1vdXNlRXZlbnQpOworICAgIGlmIChzdWJmcmFtZSAm
JiBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkudHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9p
bnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBiZSByZWZhY3RvcmVkLCBhbG9uZyB3aXRo
IGhhbmRsZU1vdXNlUHJlc3NFdmVudCBhbmQgaGFuZGxlTW91c2VNb3ZlRXZlbnQsIHNvIHRoYXQg
c3RhdGUgYXNzb2NpYXRlZCBvbmx5IHdpdGggZHJhZ2dpbmcKKyAgICAvLyBsaXZlcyBzb2xlbHkg
aW4gdGhlIERyYWdDb250cm9sbGVyLCBhbmQgc28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHByZXRl
bmQgdGhhdCBhIG1vdXNlIHByZXNzIGFuZCBtb3VzZSBtb3ZlIGhhdmUgYWxyZWFkeSBvY2N1cnJl
ZCBoZXJlLgorICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZXZlbnRNYXlTdGFydERyYWco
c3ludGhldGljTW91c2VQcmVzc0V2ZW50KTsKKyAgICBpZiAoIW1fbW91c2VEb3duTWF5U3RhcnRE
cmFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBtb3Vz
ZVByZXNzZWQobV9tb3VzZVByZXNzZWQsIHRydWUpOworICAgIGRyYWdTdGF0ZSgpLnNvdXJjZSA9
IG51bGxwdHI7CisgICAgZHJhZ1N0YXRlKCkuZHJhZ2dlZENvbnRlbnRSYW5nZSA9IG51bGxwdHI7
CisgICAgbV9tb3VzZURvd25Qb3MgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0Nv
bnRlbnRzKHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCkpOworICAgIHByb3RlY3Rl
ZEZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisKKyAgICByZXR1cm4g
aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQoaGl0VGVzdGVkTW91c2VFdmVudCwgRG9udENoZWNrRHJh
Z0h5c3RlcmVzaXMpOworfQorCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggMjJhYmNhYmFiMzUxZDZmOTM1OTg0NTcwM2ZkMThk
ZGZjYzZjMmQ0MS4uMDIwNzI0NzcxMTQxZDJhOWViMDY2ZjZlZGFmMGQ4NzJmNTUyYTFkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC0yNiwxNiAr
MjYsMTk0IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkRyYWdJbWFnZS5oIgogCisj
aWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJEb2N1bWVudC5oIgorI2ltcG9ydCAiRWxlbWVu
dC5oIgorI2ltcG9ydCAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2ltcG9ydCAiRm9udENhc2NhZGUu
aCIKKyNpbXBvcnQgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNpbXBvcnQgIkZyYW1lLmgiCisjaW1w
b3J0ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbXBvcnQgIkltYWdlLmgiCisjaW1wb3J0ICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAiUmFuZ2UuaCIKKyNpbXBv
cnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKKyNpbXBvcnQg
IlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPENvcmVHcmFw
aGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW1w
b3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KKyNpbXBvcnQg
PFVJS2l0L1VJR3JhcGhpY3NJbWFnZVJlbmRlcmVyLmg+CisjaW1wb3J0IDxVSUtpdC9VSUltYWdl
Lmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIgogCi0jaW1wb3J0
IDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0ltYWdlQWRkaXRpb25zLm1tPgorU09GVF9MSU5LX0ZSQU1F
V09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlGb250KQorU09GVF9MSU5LX0NM
QVNTKFVJS2l0LCBVSUdyYXBoaWNzSW1hZ2VSZW5kZXJlcikKK1NPRlRfTElOSyhVSUtpdCwgVUlH
cmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0aE9wdGlvbnMsIHZvaWQsIChDR1NpemUgc2l6ZSwg
Qk9PTCBvcGFxdWUsIENHRmxvYXQgc2NhbGUpLCAoc2l6ZSwgb3BhcXVlLCBzY2FsZSkpCitTT0ZU
X0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAo
dm9pZCksICgpKQorU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVu
dEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQorU09GVF9MSU5LKFVJS2l0LCBV
SUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCksICgpKQogCi0jZWxzZQorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQorCitJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVm
IGltYWdlKQoreworICAgIHJldHVybiBJbnRTaXplKENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQo
KSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpKTsKK30KKworRHJhZ0ltYWdlUmVmIHNj
YWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQoreworICAg
IENHU2l6ZSBpbWFnZVNpemUgPSBDR1NpemVNYWtlKHNjYWxlLndpZHRoKCkgKiBDR0ltYWdlR2V0
V2lkdGgoaW1hZ2UuZ2V0KCkpLCBzY2FsZS5oZWlnaHQoKSAqIENHSW1hZ2VHZXRIZWlnaHQoaW1h
Z2UuZ2V0KCkpKTsKKyAgICBDR1JlY3QgaW1hZ2VSZWN0ID0geyBDR1BvaW50WmVybywgaW1hZ2VT
aXplIH07CisKKyAgICBSZXRhaW5QdHI8VUlHcmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9
IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0ltYWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRo
U2l6ZTppbWFnZVNpemVdKTsKKyAgICBVSUltYWdlICppbWFnZUNvcHkgPSBbcmVuZGVyLmdldCgp
IGltYWdlV2l0aEFjdGlvbnM6XihVSUdyYXBoaWNzSW1hZ2VSZW5kZXJlckNvbnRleHQgKnJlbmRl
cmVyQ29udGV4dCkgeworICAgICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHJlbmRlcmVyQ29u
dGV4dC5DR0NvbnRleHQ7CisgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAw
LCBpbWFnZVNpemUuaGVpZ2h0KTsKKyAgICAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwg
MSwgLTEpOworICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dCwgaW1hZ2VSZWN0LCBp
bWFnZS5nZXQoKSk7CisgICAgfV07CisgICAgcmV0dXJuIGltYWdlQ29weS5DR0ltYWdlOworfQor
CitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlICogX051bGxhYmxl
IGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gb3JpZW50YXRpb24pCit7CisgICAg
aWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIENHU2l6ZSBpbWFnZVNpemUo
aW1hZ2UtPnNpemUoKSk7CisKKyAgICBSZXRhaW5QdHI8VUlHcmFwaGljc0ltYWdlUmVuZGVyZXI+
IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0ltYWdlUmVuZGVyZXJJbnN0YW5jZSgp
IGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKKyAgICBVSUltYWdlICppbWFnZUNvcHkgPSBbcmVu
ZGVyLmdldCgpIGltYWdlV2l0aEFjdGlvbnM6XihVSUdyYXBoaWNzSW1hZ2VSZW5kZXJlckNvbnRl
eHQgKnJlbmRlcmVyQ29udGV4dCkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dChy
ZW5kZXJlckNvbnRleHQuQ0dDb250ZXh0KTsKKyAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwg
aW1hZ2VTaXplLmhlaWdodCk7CisgICAgICAgIGNvbnRleHQuc2NhbGUoeyAxLCAtMSB9KTsKKyAg
ICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRpb25zOworICAgICAgICBwYWlu
dGluZ09wdGlvbnMubV9vcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gb3JpZW50YXRpb247CisgICAg
ICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2ludCgpLCBwYWludGluZ09wdGlv
bnMpOworICAgIH1dOworICAgIHJldHVybiBpbWFnZUNvcHkuQ0dJbWFnZTsKK30KKwordm9pZCBk
ZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKQoreworfQorCitzdGF0aWMgVGV4dEluZGljYXRv
ck9wdGlvbnMgZGVmYXVsdExpbmtJbmRpY2F0b3JPcHRpb25zID0gVGV4dEluZGljYXRvck9wdGlv
blRpZ2h0bHlGaXRDb250ZW50IHwgVGV4dEluZGljYXRvck9wdGlvblJlc3BlY3RUZXh0Q29sb3Ig
fCBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9y
Q29tcGxleFJhbmdlcyB8IFRleHRJbmRpY2F0b3JPcHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJs
ZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uQ29tcHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xv
cjsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYgbGlua0Vs
ZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBUZXh0SW5kaWNhdG9yRGF0YSYg
aW5kaWNhdG9yRGF0YSwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQoreworICAgIC8vIEZJWE1F
OiBNb3N0IG9mIHRoaXMgY2FuIGdvIGF3YXkgb25jZSB3ZSBjYW4gdXNlIFVJVVJMRHJhZ1ByZXZp
ZXdWaWV3IHVuY29uZGl0aW9uYWxseS4KKyAgICBzdGF0aWMgQ0dGbG9hdCBkcmFnSW1hZ2VQYWRk
aW5nID0gMTA7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxGb250Q2FzY2FkZT4gdGl0
bGVGb250Q2FzY2FkZTsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRl
PiB1cmxGb250Q2FzY2FkZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsK
KyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF4geworICAgICAgICBVSUZvbnQgKnRpdGxl
Rm9udCA9IFtnZXRVSUZvbnRDbGFzcygpIHN5c3RlbUZvbnRPZlNpemU6MTZdOworICAgICAgICBV
SUZvbnQgKnVybEZvbnQgPSBbZ2V0VUlGb250Q2xhc3MoKSBzeXN0ZW1Gb250T2ZTaXplOjE0XTsK
KyAgICAgICAgdGl0bGVGb250Q2FzY2FkZS5jb25zdHJ1Y3QoRm9udFBsYXRmb3JtRGF0YShDVEZv
bnRDcmVhdGVXaXRoTmFtZSgoQ0ZTdHJpbmdSZWYpdGl0bGVGb250LmZvbnROYW1lLCB0aXRsZUZv
bnQucG9pbnRTaXplLCBuaWwpLCB0aXRsZUZvbnQucG9pbnRTaXplKSwgQXV0b1Ntb290aGluZyk7
CisgICAgICAgIHVybEZvbnRDYXNjYWRlLmNvbnN0cnVjdChGb250UGxhdGZvcm1EYXRhKENURm9u
dENyZWF0ZVdpdGhOYW1lKChDRlN0cmluZ1JlZil1cmxGb250LmZvbnROYW1lLCB1cmxGb250LnBv
aW50U2l6ZSwgbmlsKSwgdXJsRm9udC5wb2ludFNpemUpLCBBdXRvU21vb3RoaW5nKTsKKyAgICB9
KTsKKworICAgIFN0cmluZyB0b3BTdHJpbmcodGl0bGUuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAg
IFN0cmluZyBib3R0b21TdHJpbmcoWyhOU1VSTCAqKXVybCBhYnNvbHV0ZVN0cmluZ10pOworICAg
IGlmICh0b3BTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgIHRvcFN0cmluZyA9IGJvdHRvbVN0
cmluZzsKKyAgICAgICAgYm90dG9tU3RyaW5nID0gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgQ0dGbG9hdCBtYXhUZXh0V2lkdGggPSAzMjA7CisgICAgYXV0byB0cnVuY2F0ZWRU
b3BTdHJpbmcgPSBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUodG9wU3RyaW5nLCBtYXhU
ZXh0V2lkdGgsIHRpdGxlRm9udENhc2NhZGUpOworICAgIGF1dG8gdHJ1bmNhdGVkQm90dG9tU3Ry
aW5nID0gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZShib3R0b21TdHJpbmcsIG1heFRl
eHRXaWR0aCwgdXJsRm9udENhc2NhZGUpOworICAgIENHRmxvYXQgdGV4dFdpZHRoID0gc3RkOjpt
YXgoU3RyaW5nVHJ1bmNhdG9yOjp3aWR0aCh0cnVuY2F0ZWRUb3BTdHJpbmcsIHRpdGxlRm9udENh
c2NhZGUpLCBTdHJpbmdUcnVuY2F0b3I6OndpZHRoKHRydW5jYXRlZEJvdHRvbVN0cmluZywgdXJs
Rm9udENhc2NhZGUpKTsKKyAgICBDR0Zsb2F0IHRleHRIZWlnaHQgPSB0cnVuY2F0ZWRCb3R0b21T
dHJpbmcuaXNFbXB0eSgpID8gMjIgOiA0NDsKKworICAgIENHUmVjdCBpbWFnZVJlY3QgPSBDR1Jl
Y3RNYWtlKDAsIDAsIHRleHRXaWR0aCArIDIgKiBkcmFnSW1hZ2VQYWRkaW5nLCB0ZXh0SGVpZ2h0
ICsgMiAqIGRyYWdJbWFnZVBhZGRpbmcpOworCisgICAgUmV0YWluUHRyPFVJR3JhcGhpY3NJbWFn
ZVJlbmRlcmVyPiByZW5kZXIgPSBhZG9wdE5TKFthbGxvY1VJR3JhcGhpY3NJbWFnZVJlbmRlcmVy
SW5zdGFuY2UoKSBpbml0V2l0aFNpemU6aW1hZ2VSZWN0LnNpemVdKTsKKyAgICBVSUltYWdlICpp
bWFnZSA9IFtyZW5kZXIuZ2V0KCkgaW1hZ2VXaXRoQWN0aW9uczpeKFVJR3JhcGhpY3NJbWFnZVJl
bmRlcmVyQ29udGV4dCAqcmVuZGVyZXJDb250ZXh0KSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4
dCBjb250ZXh0KHJlbmRlcmVyQ29udGV4dC5DR0NvbnRleHQpOworICAgICAgICBjb250ZXh0LnRy
YW5zbGF0ZSgwLCBDR1JlY3RHZXRIZWlnaHQoaW1hZ2VSZWN0KSk7CisgICAgICAgIGNvbnRleHQu
c2NhbGUoeyAxLCAtMSB9KTsKKyAgICAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxvYXRS
b3VuZGVkUmVjdChpbWFnZVJlY3QsIEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpKDQpKSwgeyAyNTUs
IDI1NSwgMjU1IH0pOworICAgICAgICB0aXRsZUZvbnRDYXNjYWRlLT5kcmF3VGV4dChjb250ZXh0
LCBUZXh0UnVuKHRydW5jYXRlZFRvcFN0cmluZyksIEZsb2F0UG9pbnQoZHJhZ0ltYWdlUGFkZGlu
ZywgMTggKyBkcmFnSW1hZ2VQYWRkaW5nKSk7CisgICAgICAgIGlmICghdHJ1bmNhdGVkQm90dG9t
U3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHVybEZvbnRDYXNjYWRlLT5kcmF3VGV4dChj
b250ZXh0LCBUZXh0UnVuKHRydW5jYXRlZEJvdHRvbVN0cmluZyksIEZsb2F0UG9pbnQoZHJhZ0lt
YWdlUGFkZGluZywgNDAgKyBkcmFnSW1hZ2VQYWRkaW5nKSk7CisgICAgfV07CisKKyAgICBhdXRv
IGxpbmtSYW5nZSA9IHJhbmdlT2ZDb250ZW50cyhsaW5rRWxlbWVudCk7CisgICAgaWYgKGF1dG8g
dGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShsaW5rUmFuZ2Us
IGRlZmF1bHRMaW5rSW5kaWNhdG9yT3B0aW9ucywgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRy
YW5zaXRpb246Ok5vbmUsIEZsb2F0U2l6ZSgpKSkKKyAgICAgICAgaW5kaWNhdG9yRGF0YSA9IHRl
eHRJbmRpY2F0b3ItPmRhdGEoKTsKKworICAgIHJldHVybiBpbWFnZS5DR0ltYWdlOworfQorCitE
cmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitEcmFnSW1hZ2VSZWYgcGxhdGZvcm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2Fs
ZUZhY3RvcihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIC8vIE9uIGlPUywgd2Ug
anVzdCBjcmVhdGUgdGhlIGRyYWcgaW1hZ2UgYXQgdGhlIHJpZ2h0IGRldmljZSBzY2FsZSBmYWN0
b3IsIHNvIHdlIGRvbid0IG5lZWQgdG8gc2NhbGUgaXQgYnkgMSAvIGRldmljZVNjYWxlRmFjdG9y
IGxhdGVyLgorICAgIHJldHVybiBpbWFnZTsKK30KKworc3RhdGljIFRleHRJbmRpY2F0b3JPcHRp
b25zIGRlZmF1bHRTZWxlY3Rpb25EcmFnSW1hZ2VUZXh0SW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJ
bmRpY2F0b3JPcHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9y
T3B0aW9uUGFpbnRBbGxDb250ZW50IHwgVGV4dEluZGljYXRvck9wdGlvblVzZVNlbGVjdGlvblJl
Y3RGb3JTaXppbmcgfCBUZXh0SW5kaWNhdG9yT3B0aW9uQ29tcHV0ZUVzdGltYXRlZEJhY2tncm91
bmRDb2xvcjsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFt
ZSYgZnJhbWUsIFRleHRJbmRpY2F0b3JEYXRhJiBpbmRpY2F0b3JEYXRhLCBib29sIGZvcmNlQmxh
Y2tUZXh0KQoreworICAgIGlmIChhdXRvIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkKKyAg
ICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dCgpOworCisgICAgVGV4dEluZGljYXRvck9wdGlv
bnMgb3B0aW9ucyA9IGRlZmF1bHRTZWxlY3Rpb25EcmFnSW1hZ2VUZXh0SW5kaWNhdG9yT3B0aW9u
czsKKyAgICBpZiAoIWZvcmNlQmxhY2tUZXh0KQorICAgICAgICBvcHRpb25zIHw9IFRleHRJbmRp
Y2F0b3JPcHRpb25SZXNwZWN0VGV4dENvbG9yOworCisgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0g
VGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoZnJhbWUsIG9wdGlvbnMs
IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lLCBGbG9hdFNpemUoKSk7
CisgICAgYXV0byBpbWFnZSA9IHRleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgpOworICAgIGlm
IChpbWFnZSkKKyAgICAgICAgaW5kaWNhdG9yRGF0YSA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsK
KyAgICBlbHNlCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgRmxvYXRSZWN0IGltYWdl
UmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKKyAgICBpZiAoYXV0
byBwYWdlID0gZnJhbWUucGFnZSgpKQorICAgICAgICBpbWFnZVJlY3Quc2NhbGUoMSAvIHBhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCkpOworCisKKyAgICBSZXRhaW5QdHI8VUlHcmFwaGljc0ltYWdl
UmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0ltYWdlUmVuZGVyZXJJ
bnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVJlY3Quc2l6ZSgpXSk7CisgICAgVUlJbWFnZSAq
ZmluYWxJbWFnZSA9IFtyZW5kZXIuZ2V0KCkgaW1hZ2VXaXRoQWN0aW9uczpeKFVJR3JhcGhpY3NJ
bWFnZVJlbmRlcmVyQ29udGV4dCAqcmVuZGVyZXJDb250ZXh0KSB7CisgICAgICAgIEdyYXBoaWNz
Q29udGV4dCBjb250ZXh0KHJlbmRlcmVyQ29udGV4dC5DR0NvbnRleHQpOworICAgICAgICBjb250
ZXh0LnRyYW5zbGF0ZSgwLCBpbWFnZVJlY3QuaGVpZ2h0KCkpOworICAgICAgICBjb250ZXh0LnNj
YWxlKHsgMSwgLTEgfSk7CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgaW1hZ2VS
ZWN0KTsKKyAgICB9XTsKKworICAgIHJldHVybiBmaW5hbEltYWdlLkNHSW1hZ2U7Cit9CisKK0Ry
YWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdl
LCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30K
KworI2Vsc2UKKwogdm9pZCBkZWxldGVEcmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+KQog
ewogICAgIC8vIFNpbmNlIHRoaXMgaXMgYSBSZXRhaW5QdHIsIHRoZXJlJ3Mgbm90aGluZyBhZGRp
dGlvbmFsIHdlIG5lZWQgdG8gZG8gdG8KQEAgLTQ2LDIwICsyMjQsMjAgQEAgdm9pZCBkZWxldGVE
cmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+KQogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkKIHsKICAgICByZXR1cm4gSW50U2l6ZShDR0ltYWdl
R2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSk7Ci0g
ICAgfQorfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc2NhbGVEcmFnSW1hZ2UoUmV0YWluUHRy
PENHSW1hZ2VSZWY+LCBGbG9hdFNpemUpCiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3Ig
aU9TOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVEcmFnSW1h
Z2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7Ci0gICAg
Ly8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9TOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggYjc1N2E1NzlmZDAzNTljNWEzNDlmMjEwZGFiNWJhYjJm
Nzg5YjQ1Yi4uNjA0MTM2ODc4NGI2MTZiNWE4MGU5NzFhOGVlYzY5YzAyNjczOTgwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTI5LDYgKzI5
LDcgQEAKICNpbXBvcnQgIkRvY3VtZW50LmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5oIgorI2ltcG9ydCAiRHJhZ0RhdGEuaCIKICNpbXBv
cnQgIkVkaXRpbmcuaCIKICNpbXBvcnQgIkVkaXRvci5oIgogI2ltcG9ydCAiRWRpdG9yQ2xpZW50
LmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW1w
b3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiTGVnYWN5V2ViQXJjaGl2ZS5oIgorI2ltcG9ydCAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRTdHJhdGVneS5oIgogI2ltcG9ydCAi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgpAQCAtNTgsMTIg
KzYwLDMzIEBACiAtIChCT09MKWNvbnRhaW5zQXR0YWNobWVudHM7CiBAZW5kCiAKLSNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1Bhc3RlYm9hcmRB
ZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKworUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQorICAgIDogbV9wYXN0ZWJvYXJkTmFtZShwYXN0ZWJvYXJkTmFtZSkKKyAg
ICAsIG1fY2hhbmdlQ291bnQocGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5jaGFuZ2VDb3VudChwYXN0ZWJvYXJkTmFtZSkpCit7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
UGFzdGVib2FyZD4oImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpOworfQorCitzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29u
c3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBh
c3RlYm9hcmQ+KGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOworfQorCisjZW5kaWYKKwogc3Rh
dGljIGxvbmcgY2hhbmdlQ291bnRGb3JQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUgPSB7IH0pCiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJv
YXJkU3RyYXRlZ3koKS0+Y2hhbmdlQ291bnQocGFzdGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCmluZGV4IDIwZDEyOWQwNjdmYzc4NGZmNWQx
ZDNmZWZhZGU0ODg5NDgwZmVlOTAuLjk0NzY1YTI3ODdjYjk0MGY0NDg5MGQ4MDE3ODkxNzg0M2Q0
YTMxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KQEAg
LTI4LDYxICsyOCw5MSBAQAogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbXBvcnQgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCiAjaW1wb3J0ICJQ
YXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkU3RyYXRlZ3kuaCIKKyNpbXBvcnQgIlBs
YXRmb3JtUGFzdGVib2FyZC5oIgogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1w
b3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0KLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0YUFkZGl0aW9ucy5tbT4KKyNpZiBQ
TEFURk9STShJT1MpCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZp
Y2VzLmg+CisjZW5kaWYKIAotI2Vsc2UKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlu
bGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICByZXR1cm4gU3RyaW5nKGtVVFR5cGVSVEYpOworI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKE5T
UlRGUGJvYXJkVHlwZSk7CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSBTdHJpbmcgcnRmZFBh
c3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuIFN0cmluZyhr
VVRUeXBlRmxhdFJURkQpOworI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKE5TUlRGRFBib2FyZFR5
cGUpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuIFN0cmluZyhrVVRUeXBlVGV4
dCk7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKTsKKyNlbmRp
ZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyB1cmxQYXN0ZWJvYXJkVHlwZSgpCiB7CisjaWYg
UExBVEZPUk0oSU9TKQorICAgIHJldHVybiBTdHJpbmcoa1VUVHlwZVVSTCk7CisjZWxzZQogICAg
IHJldHVybiBTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5s
aW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICByZXR1cm4gU3RyaW5nKGtVVFR5cGVIVE1MKTsKKyNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyhO
U0hUTUxQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBjb2xv
clBhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuICJjb20u
YXBwbGUudWlraXQuY29sb3IiOworI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKE5TQ29sb3JQYm9h
cmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBwZGZQYXN0ZWJvYXJk
VHlwZSgpCiB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBTdHJpbmcoa1VUVHlwZVBE
Rik7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNQREZQYm9hcmRUeXBlKTsKKyNlbmRpZgog
fQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyB0aWZmUGFzdGVib2FyZFR5cGUoKQogeworI2lmIFBM
QVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5cGVUSUZGKTsKKyNlbHNlCiAgICAg
cmV0dXJuIFN0cmluZyhOU1RJRkZQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCi0jZW5kaWYgLy8g
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCiBEcmFnRGF0
YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIERyYWdPcGVyYXRpb24gc291cmNl
T3BlcmF0aW9uTWFzaywgRHJhZ0FwcGxpY2F0aW9uRmxhZ3MgZmxhZ3MsIERyYWdEZXN0aW5hdGlv
bkFjdGlvbiBkZXN0aW5hdGlvbkFjdGlvbikKICAgICA6IG1fY2xpZW50UG9zaXRpb24oY2xpZW50
UG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtMTU0
LDEyICsxODQsOCBAQCB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYg
cmVzdWx0KSBjb25zdAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUocmVzdWx0LCBTdHJp
bmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKLSNp
ZiBQTEFURk9STShNQUMpIHx8IEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIGlmICghcmVz
dWx0LnNpemUoKSkKICAgICAgICAgcmVzdWx0ID0gZmlsZU5hbWVzKCk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShyZXN1bHQpOwotI2VuZGlmCiB9CiAKIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5z
UGxhaW5UZXh0KCkgY29uc3QKQEAgLTIzMSwxNCArMjU3LDMwIEBAIGJvb2wgRHJhZ0RhdGE6OmNv
bnRhaW5zUHJvbWlzZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZpbGVzLnNpemUoKSA9PSAxOwogfQog
Ci0jaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotCiBib29sIERyYWdEYXRhOjpjb250YWlu
c1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hbWVQb2xpY3kpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuICFhc1VSTChmaWxlbmFtZVBvbGljeSkuaXNFbXB0eSgpOwotfQorI2lmIFBMQVRG
T1JNKElPUykKKyAgICBVTlVTRURfUEFSQU0oZmlsZW5hbWVQb2xpY3kpOworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlmICghdHlwZXMu
Y29udGFpbnModXJsUGFzdGVib2FyZFR5cGUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGF1dG8gdXJsU3RyaW5nID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT5zdHJpbmdGb3JUeXBlKHVybFBhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5h
bWUpOworICAgIGlmICh1cmxTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE9uIGlPUywg
d2UgZG9uJ3QgZ2V0IGFjY2VzcyB0byB0aGUgY29udGVudHMgb2YgVUlJdGVtUHJvdmlkZXJzIHVu
dGlsIHdlIHBlcmZvcm0gdGhlIGRyYWcgb3BlcmF0aW9uLgorICAgICAgICAvLyBUaHVzLCB3ZSBj
b25zaWRlciBEcmFnRGF0YSB0byBjb250YWluIGFuIFVSTCBpZiBpdCBjb250YWlucyB0aGUgYHB1
YmxpYy51cmxgIFVUSSB0eXBlLiBMYXRlciBkb3duIHRoZQorICAgICAgICAvLyByb2FkLCB3aGVu
IHdlIHBlcmZvcm0gdGhlIGRyYWcgb3BlcmF0aW9uLCB3ZSBjYW4gdGhlbiBjaGVjayBpZiB0aGUg
VVJMJ3MgcHJvdG9jb2wgaXMgaHR0cCBvciBodHRwcywKKyAgICAgICAgLy8gYW5kIGlmIGl0IGlz
bid0LCB3ZSBiYWlsIG91dCBvZiBwYWdlIG5hdmlnYXRpb24uCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KIAorICAgIFVSTCB3ZWJjb3JlVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6dXJs
U3RyaW5nXTsKKyAgICByZXR1cm4gd2ViY29yZVVSTC5wcm90b2NvbElzKCJodHRwIikgfHwgd2Vi
Y29yZVVSTC5wcm90b2NvbElzKCJodHRwcyIpOworI2Vsc2UKKyAgICByZXR1cm4gIWFzVVJMKGZp
bGVuYW1lUG9saWN5KS5pc0VtcHR5KCk7CiAjZW5kaWYKK30KIAogU3RyaW5nIERyYWdEYXRhOjph
c1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyogdGl0bGUpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNk
ZDAuLmY1YTkxNGJmYTRhY2E0NGI2OTUwYTc2OTIzMjkxZTUxZjk4YmI5NzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCkBAIC0yNDgsNCArMjQ4LDkgQEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1Rf
ID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9O
X0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJMRV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5B
QkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
QU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05T
X0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NT
X0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NT
U19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19T
RUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFO
U0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQo
RU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwp
ICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9L
RVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENI
KSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9N
RURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChF
TkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVO
QUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVC
QkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFS
SUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVf
TUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFT
U0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUp
ICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFC
TEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOwor
RU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFH
X1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25l
c2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQ
TEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVO
VF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElP
TklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQ
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dP
UkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFC
TEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lP
U19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJ
QlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1ND
UklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVU
RSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVf
U1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9O
X01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dF
Ql9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQo
RU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikg
JChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElP
Tik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5tbQppbmRleCAxYmQ5YjM0MjE1ZDE1ZDUxMTcwZjczNTIxZmIzZGIwMjRjNjhiYzA5Li4xMTVh
ODM3MzI5NWM3NjE2YzAyMDhjMTNhMzIwODk0ODY1ZDI1ZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KQEAgLTU5LDEwICs1OSw2
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRp
dGlvbnNXZWJLaXQxLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50
QWRkaXRpb25zV2ViS2l0MS5tbT4KLSNlbmRpZgotCiBXZWJEcmFnQ2xpZW50OjpXZWJEcmFnQ2xp
ZW50KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykgCiB7CkBAIC0y
MjIsNiArMjE4LDU1IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNo
bWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50JiwgY29uc3QgVVJMCiAKICNlbmRpZgogCisjaWYg
UExBVEZPUk0oSU9TKQorCitib29sIFdlYkRyYWdDbGllbnQ6OnVzZUxlZ2FjeURyYWdDbGllbnQo
KQoreworICAgIC8vIEZJWE1FOiBNb3ZlIHRoZSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRh
dGlvbiBmb3IgV2ViS2l0MSBvZmYgb2YgdGhlIGxlZ2FjeSBkcmFnIGNsaWVudC4KKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdEZXN0aW5h
dGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb24sIGNvbnN0IERyYWdEYXRhJikKK3sKK30K
KworV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0
aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikKK3sKKyAgICByZXR1cm4gRHJhZ1NvdXJj
ZUFjdGlvbkFueTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3Vy
Y2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9pbnQmLCBEYXRh
VHJhbnNmZXImKQoreworfQorCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1h
Z2UgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiBldmVu
dExvY2F0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3IsIERhdGFUcmFuc2Zl
ciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJhbWUsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJj
ZUFjdGlvbikKK3sKKyAgICBbbV93ZWJWaWV3IF9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOmRyYWdJ
bWFnZS5nZXQoKS5nZXQoKSB0ZXh0SW5kaWNhdG9yOmRyYWdJbWFnZS5pbmRpY2F0b3JEYXRhKCkg
YXRDbGllbnRQb3NpdGlvbjpldmVudExvY2F0aW9uIGFuY2hvclBvaW50OmRyYWdJbWFnZUFuY2hv
ciBhY3Rpb246ZHJhZ1NvdXJjZUFjdGlvbl07Cit9CisKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6YmVn
aW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQm
LCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNlQWN0aW9uKQoreworfQorCit2b2lkIFdlYkRyYWdD
bGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgRnJhbWUqKQoreworICAgIGlmIChhdXRvKiBmcmFtZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkud3JpdGVJbWFnZVRvUGFzdGVib2FyZCgq
UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7
Cit9CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQordm9pZCBXZWJEcmFnQ2xpZW50
OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50KGNvbnN0IFN0cmluZyYsIEVsZW1lbnQmLCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCit7Cit9CisjZW5kaWYKKwordm9pZCBXZWJE
cmFnQ2xpZW50OjpkaWRDb25jbHVkZUVkaXREcmFnKCkKK3sKKyAgICBbbV93ZWJWaWV3IF9kaWRD
b25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25dOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQorCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgCiB7CiAg
ICAgZGVsZXRlIHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNTRl
M2RkMzJkNjNlN2ZhMzBhYzZjNTc1YmUwNDFiNWY1Mjg0ZDk4OC4uMzhhNDYwMTZmOTIxYzVhYmIx
MzdkMjBjZDg3M2I3ZTMwOGEwODMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMTgyMCw3ICsxODIwLDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQorCiAtIChCT09MKV9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rp
b246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENHUG9pbnQpZ2xvYmFs
UG9zaXRpb24KIHsKICAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPm1haW5GcmFtZSgpLmV2ZW50
SGFuZGxlcigpLnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KEludFBvaW50KGNsaWVu
dFBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pKTsKQEAgLTE4MjksOSArMTgzMCw5
IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2Fy
eSgpCiAtICh2b2lkKV9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRl
eHRJbmRpY2F0b3I6KHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+KWluZGljYXRvckRh
dGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDoo
Q0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgogewogICAgIGlmIChp
bmRpY2F0b3JEYXRhKQotICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1tX
ZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdlIHRleHRJbmRp
Y2F0b3JEYXRhOmluZGljYXRvckRhdGEudmFsdWUoKSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKV0gcmV0YWluXTsKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0
b3JEYXRhID0gYWRvcHROUyhbW1dlYlVJVGV4dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRo
SW1hZ2U6aW1hZ2UgdGV4dEluZGljYXRvckRhdGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxl
Ol9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXSk7CiAgICAgZWxzZQotICAgICAg
ICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRh
IGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdlIHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpXSByZXRhaW5dOworICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRh
dGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFn
ZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOwogfQog
CiAtIChDR1JlY3QpX2RhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdApAQCAtMTg0OSw1MyArMTg1MCw3
IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2Fy
eSgpCiAKIC0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0
YQogewotICAgIHJldHVybiBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGE7Ci19Ci0KLXN0YXRp
YyBWZWN0b3I8RmxvYXRSZWN0PiBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXkoTlNBcnJheTxOU1Zh
bHVlICo+ICpyZWN0VmFsdWVzKQotewotICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJlY3RzOwotICAg
IGZvciAoTlNWYWx1ZSAqcmVjdFZhbHVlIGluIHJlY3RWYWx1ZXMpCi0gICAgICAgIHJlY3RzLmFw
cGVuZChyZWN0VmFsdWUuQ0dSZWN0VmFsdWUpOwotICAgIHJldHVybiByZWN0czsKLX0KLQotLSAo
VUlJbWFnZSAqKV9jcmVhdGVJbWFnZVdpdGhQbGF0dGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFn
ZSBib3VuZGluZ1JlY3Q6KENHUmVjdClib3VuZGluZ1JlY3QgY29udGVudFNjYWxlRmFjdG9yOihD
R0Zsb2F0KWNvbnRlbnRTY2FsZUZhY3RvciBjbGlwcGluZ1JlY3RzOihOU0FycmF5PE5TVmFsdWUg
Kj4gKiljbGlwcGluZ1JlY3RzCi17Ci0gICAgaWYgKCFfcHJpdmF0ZS0+cGFnZSkKLSAgICAgICAg
cmV0dXJuIG5pbDsKLQotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAg
ICBDR0Zsb2F0IGltYWdlU2NhbGVGYWN0b3IgPSBjb250ZW50U2NhbGVGYWN0b3IgLyBfcHJpdmF0
ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICBDR1JlY3QgaW1hZ2VQYWludEJvdW5k
cyA9IENHUmVjdE1ha2UoMCwgMCwgQ0dSZWN0R2V0V2lkdGgoYm91bmRpbmdSZWN0KSAqIGltYWdl
U2NhbGVGYWN0b3IsIENHUmVjdEdldEhlaWdodChib3VuZGluZ1JlY3QpICogaW1hZ2VTY2FsZUZh
Y3Rvcik7Ci0gICAgVUlHcmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0aE9wdGlvbnMoaW1hZ2VQ
YWludEJvdW5kcy5zaXplLCBOTywgX3ByaXZhdGUtPnBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkp
OwotICAgIENHQ29udGV4dFJlZiBuZXdDb250ZXh0ID0gVUlHcmFwaGljc0dldEN1cnJlbnRDb250
ZXh0KCk7Ci0KLSAgICBhdXRvIHNjYWxlZENsaXBwaW5nUmVjdHMgPSBmbG9hdFJlY3RzRm9yQ0dS
ZWN0QXJyYXkoY2xpcHBpbmdSZWN0cyk7Ci0gICAgZm9yIChhdXRvJiB0ZXh0Qm91bmRpbmdSZWN0
IDogc2NhbGVkQ2xpcHBpbmdSZWN0cykKLSAgICAgICAgdGV4dEJvdW5kaW5nUmVjdC5zY2FsZShp
bWFnZVNjYWxlRmFjdG9yKTsKLQotICAgIGlmICghc2NhbGVkQ2xpcHBpbmdSZWN0cy5pc0VtcHR5
KCkpIHsKLSAgICAgICAgYXV0byB3ZWJjb3JlUGF0aCA9IFBhdGhVdGlsaXRpZXM6OnBhdGhXaXRo
U2hyaW5rV3JhcHBlZFJlY3RzKHNjYWxlZENsaXBwaW5nUmVjdHMsIDYgKiBpbWFnZVNjYWxlRmFj
dG9yKTsKLSAgICAgICAgW1tnZXRVSUJlemllclBhdGhDbGFzcygpIGJlemllclBhdGhXaXRoQ0dQ
YXRoOndlYmNvcmVQYXRoLmVuc3VyZVBsYXRmb3JtUGF0aCgpXSBhZGRDbGlwXTsKLSAgICB9Ci0K
LSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgbWF0Y2ggdGhlIGJhY2tncm91bmQgY29sb3Igb2Yg
dGhlIHRleHQsIG9yIGlmIHRoZSBiYWNrZ3JvdW5kIGNhbm5vdCBiZSBjYXB0dXJlZCBhcyBhIHNp
bmdsZSBjb2xvciwgd2Ugc2hvdWxkIGZhbGwgYmFjawotICAgIC8vIHRvIGEgZGVmYXVsdCByZXBy
ZXNlbnRhdGlvbiwgZS5nLiBibGFjayB0ZXh0IG9uIGEgd2hpdGUgYmFja2dyb3VuZC4KLSAgICBD
R0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IobmV3Q29udGV4dCwgWyhVSUNvbG9yICopW2dl
dFVJQ29sb3JDbGFzcygpIHdoaXRlQ29sb3JdIENHQ29sb3JdKTsKLSAgICBmb3IgKGF1dG8gdGV4
dEJvdW5kaW5nUmVjdCA6IHNjYWxlZENsaXBwaW5nUmVjdHMpCi0gICAgICAgIENHQ29udGV4dEZp
bGxSZWN0KG5ld0NvbnRleHQsIHRleHRCb3VuZGluZ1JlY3QpOwotCi0gICAgQ0dDb250ZXh0VHJh
bnNsYXRlQ1RNKG5ld0NvbnRleHQsIDAsIENHUmVjdEdldEhlaWdodChpbWFnZVBhaW50Qm91bmRz
KSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0obmV3Q29udGV4dCwgMSwgLTEpOwotICAgIENHQ29u
dGV4dERyYXdJbWFnZShuZXdDb250ZXh0LCBpbWFnZVBhaW50Qm91bmRzLCBpbWFnZS5DR0ltYWdl
KTsKLQotICAgIFVJSW1hZ2UgKnByZXZpZXdJbWFnZSA9IFVJR3JhcGhpY3NHZXRJbWFnZUZyb21D
dXJyZW50SW1hZ2VDb250ZXh0KCk7Ci0gICAgVUlHcmFwaGljc0VuZEltYWdlQ29udGV4dCgpOwot
Ci0gICAgcmV0dXJuIFtwcmV2aWV3SW1hZ2UgcmV0YWluXTsKKyAgICByZXR1cm4gX3ByaXZhdGUt
PnRleHRJbmRpY2F0b3JEYXRhLmdldCgpOwogfQogCiAtIChXZWJEcmFnRGVzdGluYXRpb25BY3Rp
b24pZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvclNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9u
PilzZXNzaW9uCkBAIC0xOTAzLDY1ICsxODU4LDY3IEBAIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0
PiBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXkoTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVz
CiAgICAgcmV0dXJuIFtzZWxmLl9VSURlbGVnYXRlRm9yd2FyZGVyIHdlYlZpZXc6c2VsZiBkcmFn
RGVzdGluYXRpb25BY3Rpb25NYXNrRm9yU2Vzc2lvbjpzZXNzaW9uXTsKIH0KIAotI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJW
aWV3QWRkaXRpb25zLm1tPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0FkZGl0
aW9ucy5tbT4KLSNlbmRpZgotCi0jZWxzZQotLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVy
YWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWds
b2JhbFBvc2l0aW9uCi17Ci0gICAgcmV0dXJuIE5POwotfQotLSAodm9pZClfc2V0RGF0YUludGVy
YWN0aW9uRGF0YTooQ0dJbWFnZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9y
RGF0YSYpaW5kaWNhdG9yRGF0YSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0
aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoodWludDY0X3QpYWN0
aW9uCi17Ci19Ci0tIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2dldERhdGFJbnRlcmFjdGlv
bkRhdGEKKy0gKERyYWdEYXRhKWRyYWdEYXRhRm9yU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+
KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludCln
bG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgogewotICAgIHJldHVy
biBuaWw7CisgICAgYXV0byBkcmFnT3BlcmF0aW9uTWFzayA9IHN0YXRpY19jYXN0PERyYWdPcGVy
YXRpb24+KG9wZXJhdGlvbik7CisgICAgYXV0byBkcmFnRGVzdGluYXRpb25NYXNrID0gc3RhdGlj
X2Nhc3Q8RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uPihbc2VsZiBkcmFnRGVzdGluYXRpb25BY3Rpb25N
YXNrRm9yU2Vzc2lvbjpzZXNzaW9uXSk7CisgICAgcmV0dXJuIHsgc2Vzc2lvbiwgcm91bmRlZElu
dFBvaW50KGNsaWVudFBvc2l0aW9uKSwgcm91bmRlZEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwg
ZHJhZ09wZXJhdGlvbk1hc2ssIERyYWdBcHBsaWNhdGlvbk5vbmUsIGRyYWdEZXN0aW5hdGlvbk1h
c2sgfTsKIH0KLS0gKHVpbnQ2NF90KV9lbnRlcmVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50
ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludCln
bG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgorCistICh1aW50NjRf
dClfZW50ZXJlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xp
ZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlv
biBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgogewotICAgIHJldHVybiAwOworICAgIFdl
YlRocmVhZExvY2soKTsKKyAgICBhdXRvIGRyYWdEYXRhID0gW3NlbGYgZHJhZ0RhdGFGb3JTZXNz
aW9uOnNlc3Npb24gY2xpZW50OmNsaWVudFBvc2l0aW9uIGdsb2JhbDpnbG9iYWxQb3NpdGlvbiBv
cGVyYXRpb246b3BlcmF0aW9uXTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPmRyYWdDb250
cm9sbGVyKCkuZHJhZ0VudGVyZWQoZHJhZ0RhdGEpOwogfQogCi0tICh1aW50NjRfdClfdXBkYXRl
ZERhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGll
bnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50
NjRfdClvcGVyYXRpb24KKy0gKHVpbnQ2NF90KV91cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZCA8
VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xv
YmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9u
CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgV2ViVGhyZWFkTG9jaygpOworICAgIGF1dG8gZHJhZ0Rh
dGEgPSBbc2VsZiBkcmFnRGF0YUZvclNlc3Npb246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRp
b24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25dOworICAgIHJldHVy
biBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnVXBkYXRlZChkcmFnRGF0YSk7
CiB9Ci0tICh2b2lkKV9leGl0ZWREYXRhSW50ZXJhY3Rpb246KGlkKWRhdGFJbnRlcmFjdGlvbiBj
bGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0
aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uCistICh2b2lkKV9leGl0ZWREYXRhSW50
ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGll
bnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50
NjRfdClvcGVyYXRpb24KIHsKKyAgICBXZWJUaHJlYWRMb2NrKCk7CisgICAgYXV0byBkcmFnRGF0
YSA9IFtzZWxmIGRyYWdEYXRhRm9yU2Vzc2lvbjpzZXNzaW9uIGNsaWVudDpjbGllbnRQb3NpdGlv
biBnbG9iYWw6Z2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOm9wZXJhdGlvbl07CisgICAgX3ByaXZh
dGUtPnBhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0V4aXRlZChkcmFnRGF0YSk7CiB9Ci0tICh2
b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihD
R1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVy
YXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgorLSAodm9pZClfcGVyZm9ybURhdGFJbnRlcmFjdGlv
bjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0
aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9w
ZXJhdGlvbgogeworICAgIFtzZWxmIF90cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246c2Vzc2lv
biBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpv
cGVyYXRpb25dOwogfQogCi0tIChCT09MKV90cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246KGlk
KWRhdGFJbnRlcmFjdGlvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihD
R1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uCistIChC
T09MKV90cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNz
aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFs
UG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb24KIHsKLSAgICByZXR1cm4gTk87
CisgICAgV2ViVGhyZWFkTG9jaygpOworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0
YUZvclNlc3Npb246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBv
c2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25dOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnRGF0YSk7CiB9CiAKIC0g
KHZvaWQpX2VuZGVkRGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2Jh
bDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbgogeworICAgIFdlYlRocmVhZExvY2soKTsKKyAgICBf
cHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW5kZWQoKTsKKyAgICBfcHJpdmF0
ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IgPSBudWxscHRyOwogfQogCi0tIChXZWJVSVRl
eHRJbmRpY2F0b3JEYXRhICopX2RhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yCi17Ci0gICAgcmV0
dXJuIG5pbDsKLX0KLQotI2lmIFBMQVRGT1JNKElPUykKLS0gKFVJSW1hZ2UgKilfY3JlYXRlSW1h
Z2VXaXRoUGxhdHRlckZvckltYWdlOihVSUltYWdlICopaW1hZ2UgYm91bmRpbmdSZWN0OihDR1Jl
Y3QpYm91bmRpbmdSZWN0IGNvbnRlbnRTY2FsZUZhY3RvcjooQ0dGbG9hdCljb250ZW50U2NhbGVG
YWN0b3IgY2xpcHBpbmdSZWN0czooTlNBcnJheTxOU1ZhbHVlICo+ICopY2xpcHBpbmdSZWN0cwor
LSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uCiB7Ci0gICAgcmV0dXJuIG5p
bDsKLX0KKyAgICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IgPSBudWxscHRy
OworICAgIGF1dG8qIHBhZ2UgPSBfcHJpdmF0ZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKIAotLSAoQ0dSZWN0KV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QKLXsKLSAg
ICByZXR1cm4gQ0dSZWN0TnVsbDsKKyAgICBzdGF0aWMgYXV0byBkZWZhdWx0RWRpdERyYWdUZXh0
SW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlU25hcHNob3RPZkFs
bFZpc2libGVDb250ZW50V2l0aG91dFNlbGVjdGlvbiB8IFRleHRJbmRpY2F0b3JPcHRpb25FeHBh
bmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250
ZW50IHwgVGV4dEluZGljYXRvck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVj
dGlvbiB8IFRleHRJbmRpY2F0b3JPcHRpb25QYWludEJhY2tncm91bmRzIHwgVGV4dEluZGljYXRv
ck9wdGlvblVzZVNlbGVjdGlvblJlY3RGb3JTaXppbmcgfCBUZXh0SW5kaWNhdG9yT3B0aW9uSW5j
bHVkZVNuYXBzaG90V2l0aFNlbGVjdGlvbkhpZ2hsaWdodCB8IFRleHRJbmRpY2F0b3JPcHRpb25S
ZXNwZWN0VGV4dENvbG9yOworICAgIGF1dG8mIGZyYW1lID0gcGFnZS0+Zm9jdXNDb250cm9sbGVy
KCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgaWYgKGF1dG8gcmFuZ2UgPSBmcmFtZS5zZWxl
Y3Rpb24oKS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpKSB7CisgICAgICAgIGlmIChh
dXRvIHRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UoKnJhbmdl
LCBkZWZhdWx0RWRpdERyYWdUZXh0SW5kaWNhdG9yT3B0aW9ucywgVGV4dEluZGljYXRvclByZXNl
bnRhdGlvblRyYW5zaXRpb246Ok5vbmUsIEZsb2F0U2l6ZSgpKSkKKyAgICAgICAgICAgIF9wcml2
YXRlLT5kYXRhT3BlcmF0aW9uVGV4dEluZGljYXRvciA9IGFkb3B0TlMoW1tXZWJVSVRleHRJbmRp
Y2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOm5pbCB0ZXh0SW5kaWNhdG9yRGF0YTp0ZXh0
SW5kaWNhdG9yLT5kYXRhKCkgc2NhbGU6cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOworICAg
IH0KIH0KLSNlbmRpZgogCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pICYmIGRl
ZmluZWQoX19jcGx1c3BsdXMpCisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExB
VEZPUk0oSU9TKQogCiBzdGF0aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdpbk1JTUVUeXBlcygp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggMjNkODM3ZDZk
YTRiZjYyYmNmZTdhNWM3MmJhNDBjMTAzMWFhNzkzMS4uMGU2ZGYyN2FhYjAxZjU3MTUyMTYzYjI3
NjYwMmIyOGNhODg4OGE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEu
aApAQCAtMjk4LDcgKzI5OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKLSAgICBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICp0ZXh0SW5kaWNh
dG9yRGF0YTsKKyAgICBSZXRhaW5QdHI8V2ViVUlUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dEluZGlj
YXRvckRhdGE7CiAgICAgUmV0YWluUHRyPFdlYlVJVGV4dEluZGljYXRvckRhdGE+IGRhdGFPcGVy
YXRpb25UZXh0SW5kaWNhdG9yOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCmluZGV4IGIzNzRjYjNlYTViOTQ2YjZlYzA2YjliNGU2NTE1MWUwMmJhOGI3
ZGUuLjc3OTczNmExNmFmZjYwZTNmYTVhMGFjN2VhMzY0MDZkYzM2NGYyZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtMjEzLDkgKzIxMyw2IEBAIFdlYlZp
ZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZs
dXNoQ29udHJvbGxlciogZmx1CiAgICAgW19jYXJldENoYW5nZUxpc3RlbmVycyByZWxlYXNlXTsK
ICAgICBbX2ZpeGVkUG9zaXRpb25Db250ZW50IHJlbGVhc2VdOwogI2VuZGlmCi0jaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgW3RleHRJbmRpY2F0b3JEYXRhIHJlbGVhc2VdOwotI2Vu
ZGlmCiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNGZkMDc1YTNjMGJjYWVhNzhkMmExODA3ZTdlYzU2NTlk
NzliZmJlMC4uMDlhYTcwMjJjYTBkODVmYWVjMzFkZTk3OGZhZDczNGZiNmIzYTQxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtMTE4LDYgKzExOCwx
MCBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlF1aWNrTG9va0ZpbGVOYW1lS2V5OwogZXh0ZXJuIE5T
U3RyaW5nICpXZWJRdWlja0xvb2tVVElLZXk7CiAjZW5kaWYKIAorI2lmIFRBUkdFVF9PU19JUEhP
TkUgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCitAcHJvdG9j
b2wgVUlEcm9wU2Vzc2lvbjsKKyNlbmRpZgorCiBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXZWJW
aWV3V2lsbENsb3NlTm90aWZpY2F0aW9uOwogCiAjaWYgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JU
CkBAIC00NjQsMjEgKzQ2OCwyMSBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4K
ICsgKHZvaWQpX3JlbGVhc2VNZW1vcnlOb3c7CiAKIC0gKHZvaWQpX3JlcGxhY2VDdXJyZW50SGlz
dG9yeUl0ZW06KFdlYkhpc3RvcnlJdGVtICopaXRlbTsKLSNlbmRpZiAvLyBUQVJHRVRfT1NfSVBI
T05FCiAKKyNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKIC0g
KEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3NpdGlvbjsKIC0gKFdlYlVJVGV4dElu
ZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgc3Ryb25nLCBnZXR0ZXI9X2RhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9y
KSBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICpkYXRhT3BlcmF0aW9uVGV4dEluZGljYXRvcjsKLS0g
KHVpbnQ2NF90KV9lbnRlcmVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xp
ZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlv
biBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKHVpbnQ2NF90KV91cGRhdGVkRGF0
YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBv
c2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90
KW9wZXJhdGlvbjsKLS0gKHZvaWQpX2V4aXRlZERhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUludGVy
YWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xv
YmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247Ci0tICh2b2lkKV9wZXJm
b3JtRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVp
bnQ2NF90KW9wZXJhdGlvbjsKLS0gKEJPT0wpX3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjoo
aWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6
KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247Cist
ICh1aW50NjRfdClfZW50ZXJlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNl
c3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9i
YWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKKy0gKHVpbnQ2NF90KV91
cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6
KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9w
ZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uOworLSAodm9pZClfZXhpdGVkRGF0YUludGVyYWN0
aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9z
aXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qp
b3BlcmF0aW9uOworLSAodm9pZClfcGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNl
c3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQ
b2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKKy0gKEJP
T0wpX3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Np
b24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQ
b3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKIC0gKHZvaWQpX2VuZGVkRGF0
YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludCljbGll
bnRQb3NpdGlvbjsKIAotI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgZ2V0dGVyPV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QpIENHUmVjdCBkYXRh
SW50ZXJhY3Rpb25DYXJldFJlY3Q7Ci0tIChVSUltYWdlICopX2NyZWF0ZUltYWdlV2l0aFBsYXR0
ZXJGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGJvdW5kaW5nUmVjdDooQ0dSZWN0KWJvdW5kaW5n
UmVjdCBjb250ZW50U2NhbGVGYWN0b3I6KENHRmxvYXQpY29udGVudFNjYWxlRmFjdG9yIGNsaXBw
aW5nUmVjdHM6KE5TQXJyYXk8TlNWYWx1ZSAqPiAqKWNsaXBwaW5nUmVjdHM7CisjZW5kaWYKKwog
Ly8gRGVwcmVjYXRlZC4gVXNlIC1bV2ViRGF0YVNvdXJjZSBfcXVpY2tMb29rQ29udGVudF0gaW5z
dGVhZC4KIC0gKE5TRGljdGlvbmFyeSAqKXF1aWNrTG9va0NvbnRlbnRGb3JVUkw6KE5TVVJMICop
dXJsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0
ZTE5Yjk4MGNkZDAuLmY1YTkxNGJmYTRhY2E0NGI2OTUwYTc2OTIzMjkxZTUxZjk4YmI5NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDkgQEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9O
T1RfID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJMRV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFS
SUFUSU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQo
RU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJM
RV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJ
T05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9U
UkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1Rf
RUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkp
ICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBB
RCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lO
VEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJM
RV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZF
VENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJM
RV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAk
KEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMp
ICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9S
RVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRP
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVf
VkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFC
TEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JU
QykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dF
QkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJH
UFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitF
TkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JU
OworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9E
UkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0g
RU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBo
b25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVf
QVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNI
TUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJ
VElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVO
QUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQ
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5H
X1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQo
RU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQp
ICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChF
TkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9K
SVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQp
ICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VS
VkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FU
VFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAk
KEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxF
X01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
SFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9Q
Uk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01Q
TEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0Vf
VVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xT
KSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFC
TEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVf
TlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VD
SF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVD
VF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFU
SU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxF
X1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkp
ICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdM
MikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQo
RU5BQkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW0KaW5kZXggOGYwNDQ1NGU3NjNhZGMzOWI5YWFlNjkwMWE5ZDAyNmQ2NjRkMzlm
ZC4uZTRlZDBiMzc3MzNiNmM4NTFmODFhOGJjMzJiZDZhOGVjYzJkZWM4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAt
MjksMTQgKzI5LDE0IEBACiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiRGF0YURl
dGVjdGlvblJlc3VsdC5oIgogI2ltcG9ydCAiTG9hZFBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgIlBh
Z2VDbGllbnQuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVDb2Nv
YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDx3dGYv
Y2YvVHlwZUNhc3RzQ0YuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFz
X2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMubW0+KQotI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbT4KLSNlbmRpZgor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMDIs
NCArMTAyLDM3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lm
TmVlZGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywKICAgICB9CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1MpICYmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXREcmFnSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBzdGQ6Om9wdGlvbmFsPFRleHRJbmRp
Y2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yLCBjb25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNo
b3IsIHVpbnQ2NF90IGFjdGlvbikKK3sKKyAgICBtX3BhZ2VDbGllbnQuc3RhcnREYXRhSW50ZXJh
Y3Rpb25XaXRoSW1hZ2UoY2xpZW50UG9zaXRpb24sIGRyYWdJbWFnZUhhbmRsZSwgdGV4dEluZGlj
YXRvciwgZHJhZ0ltYWdlQW5jaG9yLCBhY3Rpb24pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmLCB1aW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmLCB1aW50NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKKwordm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21p
c2VkRGF0YUZvckF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjZW5kaWYKKwordm9pZCBXZWJQYWdlUHJveHk6
OnNldERyYWdDYXJldFJlY3QoY29uc3QgSW50UmVjdCYgZHJhZ0NhcmV0UmVjdCkKK3sKKyAgICBp
ZiAobV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9PSBkcmFnQ2FyZXRSZWN0KQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIHByZXZpb3VzUmVjdCA9IG1fY3VycmVudERyYWdDYXJldFJlY3Q7Cisg
ICAgbV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9IGRyYWdDYXJldFJlY3Q7CisgICAgbV9wYWdlQ2xp
ZW50LmRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChwcmV2aW91c1JlY3QsIGRyYWdD
YXJldFJlY3QpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBmYzk0ZTUyNmEzMDUwNTJkYzQ4Y2RlODUw
NzE5NzlhNTU3NGNjOTdlLi4zMzRkNTgwNjQzYWNkOWIxMTZhMzA5NjI5ZTkzM2U3NmVmOGEzNmE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM5LDE2ICszOSwxMyBAQAogI2ltcG9ydCAiV0tTeW50aGV0
aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0IDxVSUtpdC9VSVZpZXcuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRHJhZ0FjdGlvbnMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIu
aD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
ICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b25BZGRpdGlvbnMuaD4pCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uQWRkaXRpb25zLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBP
cGVuUGFuZWxQYXJhbWV0ZXJzOwogfQpAQCAtNzYsNyArNzMsNyBAQCBjbGFzcyBXZWJQYWdlUHJv
eHk7CiBAY2xhc3MgX1VJV2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAK
ICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLUBjbGFzcyBXS0RhdGFJbnRlcmFjdGlvbkNh
cmV0VmlldzsKK0BjbGFzcyBfVUlUZXh0RHJhZ0NhcmV0VmlldzsKICNlbmRpZgogCiB0eXBlZGVm
IHZvaWQgKF5VSVdLQXV0b2NvcnJlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikoVUlXS0F1dG9jb3Jy
ZWN0aW9uUmVjdHMgKnJlY3RzRm9ySW5wdXQpOwpAQCAtMTExLDYgKzEwOCwzMiBAQCB0eXBlZGVm
IHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCisKK3N0cnVjdCBXS0RhdGFJbnRlcmFjdGlvblN0YXRlIHsKKyAgICBSZXRhaW5Q
dHI8VUlJbWFnZT4gaW1hZ2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGF0YT4gaW5kaWNhdG9yRGF0YTsKKyAgICBDR1BvaW50IGdlc3R1cmVPcmlnaW4geyBDR1Bv
aW50WmVybyB9OworICAgIENHUG9pbnQgYWRqdXN0ZWRPcmlnaW4geyBDR1BvaW50WmVybyB9Owor
ICAgIENHUG9pbnQgbGFzdEdsb2JhbFBvc2l0aW9uIHsgQ0dQb2ludFplcm8gfTsKKyAgICBDR1Jl
Y3QgZWxlbWVudEJvdW5kcyB7IENHUmVjdFplcm8gfTsKKyAgICBCT09MIGRpZEJlZ2luRHJhZ2dp
bmcgeyBOTyB9OworICAgIEJPT0wgaXNQZXJmb3JtaW5nT3BlcmF0aW9uIHsgTk8gfTsKKyAgICBC
T09MIGlzQW5pbWF0aW5nQ29uY2x1ZGVFZGl0RHJhZyB7IE5PIH07CisgICAgUmV0YWluUHRyPGlk
IDxVSURyYWdTZXNzaW9uPj4gZHJhZ1Nlc3Npb247CisgICAgUmV0YWluUHRyPGlkIDxVSURyb3BT
ZXNzaW9uPj4gZHJvcFNlc3Npb247CisgICAgQmxvY2tQdHI8dm9pZCgpPiBkcmFnU3RhcnRDb21w
bGV0aW9uQmxvY2s7CisgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBzb3VyY2VBY3Rpb24g
eyBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uTm9uZSB9OworCisgICAgU3RyaW5nIGxpbmtUaXRs
ZTsKKyAgICBXZWJDb3JlOjpVUkwgbGlua1VSTDsKKworICAgIFJldGFpblB0cjxVSVZpZXc+IHZp
c2libGVDb250ZW50Vmlld1NuYXBzaG90OworICAgIFJldGFpblB0cjxfVUlUZXh0RHJhZ0NhcmV0
Vmlldz4gY2FyZXRWaWV3OworfTsKKworI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisK
IHN0cnVjdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIHsKICAgICBlbnVtIGNsYXNzIFNlbGVjdGlv
blR5cGUgeyBOb25lLCBQbHVnaW4sIFJhbmdlIH07CiAgICAgV0tTZWxlY3Rpb25EcmF3aW5nSW5m
bygpOwpAQCAtMjIzLDggKzI0Niw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAK
ICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBXZWJLaXQ6OldLRGF0YUludGVyYWN0
aW9uU3RhdGUgX2RhdGFJbnRlcmFjdGlvblN0YXRlOwotICAgIFJldGFpblB0cjxXS0RhdGFJbnRl
cmFjdGlvbj4gX2RhdGFJbnRlcmFjdGlvbjsKLSAgICBSZXRhaW5QdHI8V0tEYXRhT3BlcmF0aW9u
PiBfZGF0YU9wZXJhdGlvbjsKKyAgICBSZXRhaW5QdHI8VUlEcmFnSW50ZXJhY3Rpb24+IF9kYXRh
SW50ZXJhY3Rpb247CisgICAgUmV0YWluUHRyPFVJRHJvcEludGVyYWN0aW9uPiBfZGF0YU9wZXJh
dGlvbjsKICAgICBDR1BvaW50IF9kZWZlcnJlZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uOwog
I2VuZGlmCiB9CkBAIC0yMzMsNyArMjU2LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRh
IHsKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKSA8VUlHZXN0dXJl
UmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxl
Z2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlX
S0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0Fj
dGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
LSAgICAsIFdLRGF0YUludGVyYWN0aW9uRGVsZWdhdGUsIFdLRGF0YU9wZXJhdGlvbkRlbGVnYXRl
CisgICAgLCBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlLCBVSURyb3BJbnRlcmFjdGlvbkRlbGVn
YXRlCiAjZW5kaWYKID4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiNjRhYjM1YzkwOTlhNjBiZmI0
NThmMmQzZTU2M2Q2MmFhOGU1NDk3Li44OGUxYzJmNmU1N2FmYTNiYjMxMWE1YjFmMGRkMThiMGUz
MDQ4ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODMsMTMgKzgzLDI2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVjdGlvblJlY3QuaD4gLy8gRklYTUU6IFdLMiBzaG91
bGQgbm90IGluY2x1ZGUgV2ViS2l0IGhlYWRlcnMhCisjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgog
Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
Ky8vIEZJWE1FOiBNb3ZlIHByaXZhdGUgaGVhZGVycyB0byBVSUtpdFNQSS5oIGFuZCBhZGQgZGVj
bGFyYXRpb25zIGFzIG5lZWRlZCBmb3IgYnVpbGRpbmcgb24gT3BlblNvdXJjZSBhZ2FpbnN0IHRo
ZSBpT1MgMTEgU0RLLgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnSW50ZXJhY3Rpb24uaD4KKyNpbXBv
cnQgPFVJS2l0L1VJRHJhZ0ludGVyYWN0aW9uX1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJ
RHJhZ1ByZXZpZXdQYXJhbWV0ZXJzLmg+CisjaW1wb3J0IDxVSUtpdC9VSURyYWdQcmV2aWV3X1By
aXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ1Nlc3Npb24uaD4KKyNpbXBvcnQgPFVJS2l0
L1VJRHJhZ2dpbmcuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJvcEludGVyYWN0aW9uLmg+CisjaW1w
b3J0IDxVSUtpdC9VSVByZXZpZXdJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlVUkxE
cmFnUHJldmlld1ZpZXcuaD4KKyNpbXBvcnQgPFVJS2l0L19VSVRleHREcmFnQ2FyZXRWaWV3Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
UGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
Lmg+Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiBAaW50ZXJmYWNl
IFVJRXZlbnQoVUlFdmVudEludGVybmFsKQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikg
VUlLZXlib2FyZElucHV0RmxhZ3MgX2lucHV0RmxhZ3M7CkBAIC00OTMsMTAgKzUwNiw2IEBAIGNv
bnN0IENHRmxvYXQgbWluaW11bVRhcEhpZ2hsaWdodFJhZGl1cyA9IDIuMDsKIAogQGltcGxlbWVu
dGF0aW9uIFdLQ29udGVudFZpZXcgKFdLSW50ZXJhY3Rpb24pCiAKLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uQWRkaXRpb25zLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogLSAodm9pZClfY3Jl
YXRlQW5kQ29uZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBfZG91Ymxl
VGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBh
bGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNv
Z25pemVkOildKTsKQEAgLTQxNTcsNiArNDE2Niw2NTQgQEAgc3RhdGljIGJvb2wgaXNBc3Npc3Rh
YmxlSW5wdXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgICAgICBjb21wbGV0aW9uKG5pbCwgbmls
KTsKIH0KIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK3N0YXRpYyBOU1RpbWVJbnRlcnZh
bCBsb25nUHJlc3NBY3Rpb25EZWxheUFmdGVyTGlmdCgpCit7CisgICAgcmV0dXJuIF9VSURyYWdJ
bnRlcmFjdGlvbkRlZmF1bHRDb21wZXRpbmdMb25nUHJlc3NEZWxheSgpIC0gX1VJRHJhZ0ludGVy
YWN0aW9uRGVmYXVsdExpZnREZWxheSgpOworfQorCistIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pd2ViVmlld1VJRGVsZWdhdGUKK3sKKyAgICByZXR1cm4gKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilbX3dlYlZpZXcgVUlEZWxlZ2F0ZV07Cit9CisKKy0gKHZvaWQpc2V0dXBEYXRhSW50ZXJh
Y3Rpb25EZWxlZ2F0ZXMKK3sKKyAgICBfZGF0YUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJRHJh
Z0ludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICBfZGF0YU9w
ZXJhdGlvbiA9IGFkb3B0TlMoW1tVSURyb3BJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxl
Z2F0ZTpzZWxmXSk7CisgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2RhdGFJbnRlcmFjdGlvbi5n
ZXQoKV07CisgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCldOwor
fQorCistICh2b2lkKXRlYXJkb3duRGF0YUludGVyYWN0aW9uRGVsZWdhdGVzCit7CisgICAgaWYg
KF9kYXRhSW50ZXJhY3Rpb24pCisgICAgICAgIFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9kYXRh
SW50ZXJhY3Rpb24uZ2V0KCldOworCisgICAgaWYgKF9kYXRhT3BlcmF0aW9uKQorICAgICAgICBb
c2VsZiByZW1vdmVJbnRlcmFjdGlvbjpfZGF0YU9wZXJhdGlvbi5nZXQoKV07CisKKyAgICBfZGF0
YUludGVyYWN0aW9uID0gbmlsOworICAgIF9kYXRhT3BlcmF0aW9uID0gbmlsOworCisgICAgW3Nl
bGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworfQorCistICh2b2lkKV9zdGFydERh
dGFJbnRlcmFjdGlvbldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIHdpdGhJ
bmRpY2F0b3JEYXRhOihzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0b3JEYXRhPilpbmRpY2F0b3JE
YXRhIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6
KENHUG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9uOih1aW50NjRfdClhY3Rpb24KK3sKKyAgICBBU1NF
UlQoYWN0aW9uICE9IERyYWdTb3VyY2VBY3Rpb25Ob25lKTsKKyAgICBfZGF0YUludGVyYWN0aW9u
U3RhdGUuaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmlt
YWdlLmdldCgpIHNjYWxlOl9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpIG9yaWVudGF0aW9uOlVJ
SW1hZ2VPcmllbnRhdGlvblVwXSk7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmluZGljYXRv
ckRhdGEgPSBpbmRpY2F0b3JEYXRhOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VB
Y3Rpb24gPSBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihhY3Rpb24pOworCisgICAgLy8g
QXMgdGhlIGRyYWcgaXMgYmVpbmcgcmVjb2duaXplZCwgc2NoZWR1bGUgdGhlIGFjdGlvbiBzaGVl
dCB0byBzaG93IGluIDUwMCBtcywgaWYgdGhlcmUgaXMgYW4gYWN0aW9uIHNoZWV0IHRvIGJlIHNo
b3duLgorICAgIC8vIFdlIHdpbGwgaGFuZGxlIHNob3dpbmcgdGhlIGFjdGlvbiBzaGVldCBoZXJl
LCBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggdGhlIGxvbmcgcHJlc3MgZ2VzdHVyZSByZWNvZ25p
emVyLgorICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107Cisg
ICAgW19sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOllFU107CisgICAgW3Nl
bGYgY2FuY2VsRGVmZXJyZWRBY3Rpb25BdERyYWdPcmlnaW5dOworICAgIFtzZWxmIHBlcmZvcm1T
ZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybURlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luKSB3aXRo
T2JqZWN0Om5pbCBhZnRlckRlbGF5OmxvbmdQcmVzc0FjdGlvbkRlbGF5QWZ0ZXJMaWZ0KCldOwor
ICAgIF9kZWZlcnJlZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uID0gX2RhdGFJbnRlcmFjdGlv
blN0YXRlLmdlc3R1cmVPcmlnaW47Cit9CisKKy0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUlu
dGVyYWN0aW9uUmVxdWVzdDooQk9PTClzdGFydGVkCit7CisgICAgQmxvY2tQdHI8dm9pZCgpPiBz
YXZlZENvbXBsZXRpb25CbG9jayA9IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcmFnU3RhcnRDb21w
bGV0aW9uQmxvY2s7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTdGFydENvbXBsZXRp
b25CbG9jayA9IG5pbDsKKyAgICBBU1NFUlQoc2F2ZWRDb21wbGV0aW9uQmxvY2spOworCisgICAg
aWYgKHN0YXJ0ZWQpIHsKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgZ29pbmcgdGhyb3VnaCB3aXRo
IHRoZSBkcmFnLCBkb24ndCBhbGxvdyB0aGUgaGlnaGxpZ2h0IGxvbmcgcHJlc3MgZ2VzdHVyZSBy
ZWNvZ25pemVyIHRvIGZpcmUgYSBzeW50aGV0aWMgY2xpY2suCisgICAgICAgIFtzZWxmIF9jYW5j
ZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
VGhlIHdlYiBwcm9jZXNzIHJlamVjdGVkIHRoZSBkcmFnIHN0YXJ0IHJlcXVlc3QsIHNvIGRvbid0
IGdvIHRocm91Z2ggd2l0aCB0aGUgZHJhZy4KKyAgICAgICAgLy8gQnkgY2xlYXJpbmcgb3V0IHRo
ZSBzb3VyY2Ugc2Vzc2lvbiBzdGF0ZSwgd2UgZm9yY2UgLWl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9u
OnNlc3Npb246IHRvIHJldHVybiBhbiBlbXB0eSBhcnJheSwgd2hpY2gKKyAgICAgICAgLy8gY2F1
c2VzIFVJS2l0IHRvIGJhaWwgYmVmb3JlIGJlZ2lubmluZyB0aGUgbGlmdCBhbmltYXRpb24uCisg
ICAgICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKKyAgICB9CisKKyAg
ICBpZiAoc2F2ZWRDb21wbGV0aW9uQmxvY2spCisgICAgICAgIHNhdmVkQ29tcGxldGlvbkJsb2Nr
KCk7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8VUlJbWFnZT4gdWlJbWFnZUZvckltYWdlKFJlZlB0
cjxJbWFnZT4gaW1hZ2UpCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICBpZiAo
IWNnSW1hZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0TlMo
W1tVSUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOworfQorCitz
dGF0aWMgQk9PTCBzaG91bGRVc2VUZXh0SW5kaWNhdG9yVG9DcmVhdGVQcmV2aWV3Rm9yRHJhZ0Fj
dGlvbihEcmFnU291cmNlQWN0aW9uIGFjdGlvbikKK3sKKyAgICBpZiAoYWN0aW9uICYgKERyYWdT
b3VyY2VBY3Rpb25MaW5rIHwgRHJhZ1NvdXJjZUFjdGlvblNlbGVjdGlvbikpCisgICAgICAgIHJl
dHVybiBZRVM7CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorICAgIGlmIChhY3Rp
b24gJiBEcmFnU291cmNlQWN0aW9uQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNl
bmRpZgorCisgICAgcmV0dXJuIE5POworfQorCistIChSZXRhaW5QdHI8VUlUYXJnZXRlZERyYWdQ
cmV2aWV3PilkcmFnUHJldmlld0ZvckltYWdlOihVSUltYWdlICopaW1hZ2UgZnJhbWVJblJvb3RW
aWV3Q29vcmRpbmF0ZXM6KGNvbnN0IEZsb2F0UmVjdCYpZnJhbWUgY2xpcHBpbmdSZWN0c0luRnJh
bWVDb29yZGluYXRlczooY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mKWNsaXBwaW5nUmVjdHMgYmFj
a2dyb3VuZENvbG9yOihVSUNvbG9yICopYmFja2dyb3VuZENvbG9yCit7CisgICAgaWYgKGZyYW1l
LmlzRW1wdHkoKSB8fCAhaW1hZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVUlW
aWV3ICpjb250YWluZXIgPSBbc2VsZiB1bnNjYWxlZFZpZXddOworICAgIEZsb2F0UmVjdCBmcmFt
ZUluQ29udGFpbmVyQ29vcmRpbmF0ZXM7CisgICAgTlNNdXRhYmxlQXJyYXkgKmNsaXBwaW5nUmVj
dFZhbHVlc0luRnJhbWVDb29yZGluYXRlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBh
Y2l0eTpjbGlwcGluZ1JlY3RzLnNpemUoKV07CisKKyAgICBmcmFtZUluQ29udGFpbmVyQ29vcmRp
bmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmcmFtZSB0b1ZpZXc6Y29udGFpbmVyXTsKKyAgICBp
ZiAoZnJhbWVJbkNvbnRhaW5lckNvb3JkaW5hdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBmbG9hdCB3aWR0aFNjYWxpbmdSYXRpbyA9IGZyYW1lSW5Db250YWlu
ZXJDb29yZGluYXRlcy53aWR0aCgpIC8gZnJhbWUud2lkdGgoKTsKKyAgICBmbG9hdCBoZWlnaHRT
Y2FsaW5nUmF0aW8gPSBmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXMuaGVpZ2h0KCkgLyBmcmFt
ZS5oZWlnaHQoKTsKKyAgICBmb3IgKGF1dG8gcmVjdCA6IGNsaXBwaW5nUmVjdHMpIHsKKyAgICAg
ICAgcmVjdC5zY2FsZSh3aWR0aFNjYWxpbmdSYXRpbywgaGVpZ2h0U2NhbGluZ1JhdGlvKTsKKyAg
ICAgICAgW2NsaXBwaW5nUmVjdFZhbHVlc0luRnJhbWVDb29yZGluYXRlcyBhZGRPYmplY3Q6W05T
VmFsdWUgdmFsdWVXaXRoQ0dSZWN0OnJlY3RdXTsKKyAgICB9CisKKyAgICBhdXRvIGltYWdlVmll
dyA9IGFkb3B0TlMoW1tVSUltYWdlVmlldyBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZV0pOwor
ICAgIFtpbWFnZVZpZXcgc2V0RnJhbWU6ZnJhbWVJbkNvbnRhaW5lckNvb3JkaW5hdGVzXTsKKwor
ICAgIFJldGFpblB0cjxVSURyYWdQcmV2aWV3UGFyYW1ldGVycz4gcGFyYW1ldGVyczsKKyAgICBp
ZiAoY2xpcHBpbmdSZWN0VmFsdWVzSW5GcmFtZUNvb3JkaW5hdGVzLmNvdW50KQorICAgICAgICBw
YXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0
V2l0aFRleHRMaW5lUmVjdHM6Y2xpcHBpbmdSZWN0VmFsdWVzSW5GcmFtZUNvb3JkaW5hdGVzXSk7
CisgICAgZWxzZQorICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdQ
YXJhbWV0ZXJzIGFsbG9jXSBpbml0XSk7CisKKyAgICBpZiAoYmFja2dyb3VuZENvbG9yKQorICAg
ICAgICBbcGFyYW1ldGVycyBzZXRCYWNrZ3JvdW5kQ29sb3I6YmFja2dyb3VuZENvbG9yXTsKKwor
ICAgIENHUG9pbnQgY2VudGVySW5Db250YWluZXJDb29yZGluYXRlcyA9IHsgQ0dSZWN0R2V0TWlk
WChmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXMpLCBDR1JlY3RHZXRNaWRZKGZyYW1lSW5Db250
YWluZXJDb29yZGluYXRlcykgfTsKKyAgICBhdXRvIHRhcmdldCA9IGFkb3B0TlMoW1tVSURyYWdQ
cmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpjb250YWluZXIgY2VudGVyOmNl
bnRlckluQ29udGFpbmVyQ29vcmRpbmF0ZXNdKTsKKyAgICBhdXRvIGRyYWdQcmV2aWV3ID0gYWRv
cHROUyhbW1VJVGFyZ2V0ZWREcmFnUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3OmltYWdlVmll
dy5nZXQoKSBwYXJhbWV0ZXJzOnBhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnRhcmdldC5nZXQoKV0p
OworICAgIHJldHVybiBkcmFnUHJldmlldzsKK30KKworLSAoUmV0YWluUHRyPFVJVGFyZ2V0ZWRE
cmFnUHJldmlldz4pZHJhZ1ByZXZpZXdGb3JDdXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGUKK3sK
KyAgICBhdXRvIGFjdGlvbiA9IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb247Cisg
ICAgaWYgKGFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSAmJiBfZGF0YUludGVyYWN0aW9u
U3RhdGUuaW1hZ2UpIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4gZW1wdHlDbGlwcGluZ1Jl
Y3RzOworICAgICAgICByZXR1cm4gW3NlbGYgZHJhZ1ByZXZpZXdGb3JJbWFnZTpfZGF0YUludGVy
YWN0aW9uU3RhdGUuaW1hZ2UuZ2V0KCkgZnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6X2RhdGFJ
bnRlcmFjdGlvblN0YXRlLmVsZW1lbnRCb3VuZHMgY2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGlu
YXRlczplbXB0eUNsaXBwaW5nUmVjdHMgYmFja2dyb3VuZENvbG9yOm5pbF07CisgICAgfQorCisg
ICAgaWYgKHNob3VsZFVzZVRleHRJbmRpY2F0b3JUb0NyZWF0ZVByZXZpZXdGb3JEcmFnQWN0aW9u
KGFjdGlvbikgJiYgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmluZGljYXRvckRhdGEpIHsKKyAgICAg
ICAgYXV0byBpbmRpY2F0b3IgPSBfZGF0YUludGVyYWN0aW9uU3RhdGUuaW5kaWNhdG9yRGF0YS52
YWx1ZSgpOworICAgICAgICByZXR1cm4gW3NlbGYgZHJhZ1ByZXZpZXdGb3JJbWFnZTp1aUltYWdl
Rm9ySW1hZ2UoaW5kaWNhdG9yLmNvbnRlbnRJbWFnZSkuZ2V0KCkgZnJhbWVJblJvb3RWaWV3Q29v
cmRpbmF0ZXM6aW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMg
Y2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGluYXRlczppbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3Vu
ZGluZ1JlY3RDb29yZGluYXRlcyBiYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3IgY29sb3JXaXRoQ0dD
b2xvcjpjYWNoZWRDR0NvbG9yKGluZGljYXRvci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXV07
CisgICAgfQorCisgICAgcmV0dXJuIG5pbDsKK30KKworLSAodm9pZClwZXJmb3JtRGVmZXJyZWRB
Y3Rpb25BdERyYWdPcmlnaW4KK3sKKyAgICBhdXRvIGRlZmVycmVkQWN0aW9uUG9zaXRpb24gPSBy
b3VuZGVkSW50UG9pbnQoX2RlZmVycmVkQWN0aW9uU2hlZXRSZXF1ZXN0TG9jYXRpb24pOworICAg
IFtzZWxmIGNhbmNlbERlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luXTsKKyAgICBbc2VsZiBfY2Fu
Y2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOworCisgICAgUmV0YWluUHRyPFdLQ29udGVu
dFZpZXc+IHJldGFpbmVkU2VsZihzZWxmKTsKKyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZv
cm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxmXSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbikgeworICAgICAgICBpZiAoYXV0byBhY3Rpb24gPSBb
cmV0YWluZWRTZWxmIF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpw
b3NpdGlvbkluZm9ybWF0aW9uXSkKKyAgICAgICAgICAgIFtyZXRhaW5lZFNlbGYgcGVyZm9ybVNl
bGVjdG9yOmFjdGlvbl07CisgICAgfSBmb3JSZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0KGRlZmVycmVkQWN0aW9uUG9zaXRpb24pXTsKK30KKworLSAodm9pZCljYW5jZWxEZWZl
cnJlZEFjdGlvbkF0RHJhZ09yaWdpbgoreworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1Bl
cmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybURl
ZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luKSBvYmplY3Q6bmlsXTsKKyAgICBfZGVmZXJyZWRBY3Rp
b25TaGVldFJlcXVlc3RMb2NhdGlvbiA9IENHUG9pbnRaZXJvOworfQorCistICh2b2lkKWNvbXB1
dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+
KXNlc3Npb24gb3V0Q2xpZW50UG9pbnQ6KENHUG9pbnQgKilvdXRDbGllbnRQb2ludCBvdXRHbG9i
YWxQb2ludDooQ0dQb2ludCAqKW91dEdsb2JhbFBvaW50Cit7CisgICAgaWYgKG91dENsaWVudFBv
aW50KQorICAgICAgICAqb3V0Q2xpZW50UG9pbnQgPSBbc2Vzc2lvbiBsb2NhdGlvbkluVmlldzpz
ZWxmXTsKKworICAgIGlmIChvdXRHbG9iYWxQb2ludCkgeworICAgICAgICBVSVdpbmRvdyAqd2lu
ZG93ID0gc2VsZi53aW5kb3c7CisgICAgICAgICpvdXRHbG9iYWxQb2ludCA9IHdpbmRvdyA/IFtz
ZXNzaW9uIGxvY2F0aW9uSW5WaWV3OndpbmRvd10gOiBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFz
dEdsb2JhbFBvc2l0aW9uOworICAgIH0KK30KKworc3RhdGljIFVJRHJvcE9wZXJhdGlvbiBkcm9w
T3BlcmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24p
Cit7CisgICAgaWYgKG9wZXJhdGlvbiAmIERyYWdPcGVyYXRpb25Nb3ZlKQorICAgICAgICByZXR1
cm4gVUlEcm9wT3BlcmF0aW9uTW92ZTsKKworICAgIGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0
aW9uQ29weSkKKyAgICAgICAgcmV0dXJuIFVJRHJvcE9wZXJhdGlvbkNvcHk7CisKKyAgICByZXR1
cm4gVUlEcm9wT3BlcmF0aW9uQ2FuY2VsOworfQorCistIChEcmFnRGF0YSlkcmFnRGF0YUZvckRy
b3BTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBkcmFnRGVzdGluYXRpb25BY3Rp
b246KFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKWRyYWdEZXN0aW5hdGlvbkFjdGlvbgoreworICAg
IENHUG9pbnQgZ2xvYmFsOworICAgIENHUG9pbnQgY2xpZW50OworICAgIFtzZWxmIGNvbXB1dGVD
bGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIG91dENsaWVudFBvaW50
OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisKKyAgICBEcmFnT3BlcmF0aW9uIGRy
YWdPcGVyYXRpb25NYXNrID0gc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oc2Vzc2lvbi5hbGxv
d3NNb3ZlT3BlcmF0aW9uID8gRHJhZ09wZXJhdGlvbkV2ZXJ5IDogKERyYWdPcGVyYXRpb25FdmVy
eSAmIH5EcmFnT3BlcmF0aW9uTW92ZSkpOworICAgIHJldHVybiB7IHNlc3Npb24sIHJvdW5kZWRJ
bnRQb2ludChjbGllbnQpLCByb3VuZGVkSW50UG9pbnQoZ2xvYmFsKSwgZHJhZ09wZXJhdGlvbk1h
c2ssIERyYWdBcHBsaWNhdGlvbk5vbmUsIHN0YXRpY19jYXN0PERyYWdEZXN0aW5hdGlvbkFjdGlv
bj4oZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKSB9OworfQorCistICh2b2lkKWNsZWFuVXBEcmFnU291
cmNlU2Vzc2lvblN0YXRlCit7CisgICAgaWYgKCFbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQg
c2hhcmVkSW5zdGFuY2VdIGhhc1BlbmRpbmdPcGVyYXRpb25dKSB7CisgICAgICAgIC8vIElmIHdl
J3JlIHBlcmZvcm1pbmcgYSBkcmFnIG9wZXJhdGlvbiwgZG9uJ3QgY2xlYXIgb3V0IHRoZSBwYXN0
ZWJvYXJkIHlldCwgc2luY2UgYW5vdGhlciB3ZWIgdmlldyBtYXkgc3RpbGwgcmVxdWlyZSBhY2Nl
c3MgdG8gaXQuCisgICAgICAgIC8vIFRoZSBwYXN0ZWJvYXJkIHdpbGwgYmUgY2xlYXJlZCBhZnRl
ciB0aGUgbGFzdCBjbGllbnQgaXMgZmluaXNoZWQgcGVyZm9ybWluZyBhIGRyYWcgb3BlcmF0aW9u
IHVzaW5nIHRoZSBpdGVtIHByb3ZpZGVycy4KKyAgICAgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOm5pbF07CisgICAgfQorCisg
ICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2NrID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdT
dGFydENvbXBsZXRpb25CbG9jaykgeworICAgICAgICAvLyBJZiB0aGUgcHJldmlvdXMgZHJhZyBz
ZXNzaW9uIGlzIHN0aWxsIGluaXRpYWxpemluZywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCBpdHMg
Y29tcGxldGlvbiBibG9jayBpcyBjYWxsZWQgdG8gcHJldmVudCBVSUtpdCBmcm9tIGdldHRpbmcg
b3V0IG9mIHN0YXRlLgorICAgICAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJhZ1N0YXJ0Q29t
cGxldGlvbkJsb2NrID0gbmlsOworICAgICAgICBjb21wbGV0aW9uQmxvY2soKTsKKyAgICB9CisK
KyAgICBbX2RhdGFJbnRlcmFjdGlvblN0YXRlLmNhcmV0VmlldyByZW1vdmVdOworICAgIFtfZGF0
YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3QgcmVtb3ZlRnJvbVN1
cGVydmlld107CisKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUgPSB7IH07Cit9CisKK3N0YXRp
YyBOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICpleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21EcmFn
SXRlbXMoTlNBcnJheTxVSURyYWdJdGVtICo+ICpkcmFnSXRlbXMpCit7CisgICAgX19ibG9jayBO
U011dGFibGVBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqcHJvdmlkZXJzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5XTsKKyAgICBmb3IgKFVJRHJhZ0l0ZW0gKml0ZW0gaW4gZHJhZ0l0ZW1zKSB7Cisg
ICAgICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gcHJvdmlkZXIgPSBpdGVtLml0ZW1Qcm92
aWRlcjsKKyAgICAgICAgaWYgKHByb3ZpZGVyKQorICAgICAgICAgICAgW3Byb3ZpZGVycyBhZGRP
YmplY3Q6cHJvdmlkZXIuZ2V0KCldOworICAgIH0KKyAgICByZXR1cm4gcHJvdmlkZXJzOworfQor
CitzdGF0aWMgTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqZXh0cmFjdEl0ZW1Qcm92aWRlcnNG
cm9tRHJvcFNlc3Npb24oaWQgPFVJRHJvcFNlc3Npb24+IHNlc3Npb24pCit7CisgICAgcmV0dXJu
IGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyYWdJdGVtcyhzZXNzaW9uLml0ZW1zKTsKK30KKwor
LSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFRl
eHRJbmRpY2F0b3JEYXRhPilkYXRhCit7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHNuYXBzaG90V2l0aG91dFNlbGVjdGlvbiA9IGRhdGEtPmNvbnRlbnRJbWFn
ZVdpdGhvdXRTZWxlY3Rpb247CisgICAgaWYgKCFzbmFwc2hvdFdpdGhvdXRTZWxlY3Rpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UgPSBzbmFw
c2hvdFdpdGhvdXRTZWxlY3Rpb24tPm5hdGl2ZUltYWdlKCk7CisgICAgaWYgKCF1bnNlbGVjdGVk
U25hcHNob3RJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rp
b25VbnNlbGVjdGVkQ29udGVudEltYWdlID0gYWRvcHROUyhbW1VJSW1hZ2UgYWxsb2NdIGluaXRX
aXRoQ0dJbWFnZTp1bnNlbGVjdGVkU25hcHNob3RJbWFnZS5nZXQoKSBzY2FsZTpfcGFnZS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25VcF0pOworICAg
IFJldGFpblB0cjxVSUltYWdlVmlldz4gdW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdCA9IGFkb3B0
TlMoW1tVSUltYWdlVmlldyBhbGxvY10gaW5pdFdpdGhJbWFnZTpkYXRhSW50ZXJhY3Rpb25VbnNl
bGVjdGVkQ29udGVudEltYWdlLmdldCgpXSk7CisgICAgW3Vuc2VsZWN0ZWRDb250ZW50U25hcHNo
b3Qgc2V0RnJhbWU6ZGF0YS0+Y29udGVudEltYWdlV2l0aG91dFNlbGVjdGlvblJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXNdOworCisgICAgUmV0YWluUHRyPFdLQ29udGVudFZpZXc+IHByb3RlY3Rl
ZFNlbGYgPSBzZWxmOworICAgIFJldGFpblB0cjxVSVZpZXc+IHZpc2libGVDb250ZW50Vmlld1Nu
YXBzaG90ID0gYWRvcHROUyhfZGF0YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3
U25hcHNob3QubGVha1JlZigpKTsKKworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc0FuaW1h
dGluZ0NvbmNsdWRlRWRpdERyYWcgPSBZRVM7CisgICAgW3NlbGYgaW5zZXJ0U3Vidmlldzp1bnNl
bGVjdGVkQ29udGVudFNuYXBzaG90LmdldCgpIGJlbG93U3Vidmlldzp2aXNpYmxlQ29udGVudFZp
ZXdTbmFwc2hvdC5nZXQoKV07CisgICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOjAuMjUg
YW5pbWF0aW9uczpeKCkgeworICAgICAgICBbdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Qgc2V0
QWxwaGE6MF07CisgICAgfSBjb21wbGV0aW9uOl4oQk9PTCBjb21wbGV0ZWQpIHsKKyAgICAgICAg
W3Zpc2libGVDb250ZW50Vmlld1NuYXBzaG90IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgICAg
ICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246MC4yNSBhbmltYXRpb25zOl4oKSB7CisgICAg
ICAgICAgICBbcHJvdGVjdGVkU2VsZiBzZXRTdXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXc6
Tk9dOworICAgICAgICAgICAgW3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3Qgc2V0QWxwaGE6MF07
CisgICAgICAgIH0gY29tcGxldGlvbjpeKEJPT0wgY29tcGxldGVkKSB7CisgICAgICAgICAgICBb
dW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdCByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAg
fV07CisgICAgfV07Cit9CisKKy0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250
cm9sbGVyT3BlcmF0aW9uOihCT09MKWhhbmRsZWQKK3sKKyAgICBbW1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdIGRlY3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudF07
CisgICAgUmV0YWluUHRyPGlkIDxVSURyb3BTZXNzaW9uPj4gZHJvcFNlc3Npb24gPSBfZGF0YUlu
dGVyYWN0aW9uU3RhdGUuZHJvcFNlc3Npb247CisgICAgaWYgKFtzZWxmLndlYlZpZXdVSURlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGF0YUludGVyYWN0aW9u
T3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOml0ZW1Qcm92aWRlcnM6KV0pCisgICAgICAg
IFtzZWxmLndlYlZpZXdVSURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRhdGFJbnRlcmFjdGlv
bk9wZXJhdGlvbldhc0hhbmRsZWQ6aGFuZGxlZCBmb3JTZXNzaW9uOmRyb3BTZXNzaW9uLmdldCgp
IGl0ZW1Qcm92aWRlcnM6W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2Vd
Lml0ZW1Qcm92aWRlcnNdOworCisgICAgaWYgKCFfZGF0YUludGVyYWN0aW9uU3RhdGUuaXNBbmlt
YXRpbmdDb25jbHVkZUVkaXREcmFnKQorICAgICAgICBzZWxmLnN1cHByZXNzQXNzaXN0YW50U2Vs
ZWN0aW9uVmlldyA9IE5POworCisgICAgQ0dQb2ludCBnbG9iYWw7CisgICAgQ0dQb2ludCBjbGll
bnQ7CisgICAgW3NlbGYgY29tcHV0ZUNsaWVudEFuZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9u
OmRyb3BTZXNzaW9uLmdldCgpIG91dENsaWVudFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6
Jmdsb2JhbF07CisgICAgW3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworICAg
IF9wYWdlLT5kcmFnRW5kZWQocm91bmRlZEludFBvaW50KGNsaWVudCksIHJvdW5kZWRJbnRQb2lu
dChnbG9iYWwpLCBfcGFnZS0+Y3VycmVudERyYWdPcGVyYXRpb24oKSk7Cit9CisKKy0gKHZvaWQp
X3RyYW5zaXRpb25EcmFnUHJldmlld1RvSW1hZ2VJZk5lY2Vzc2FyeTooaWQgPFVJRHJhZ1Nlc3Np
b24+KXNlc3Npb24KK3sKKyAgICBpZiAoX2RhdGFJbnRlcmFjdGlvblN0YXRlLnNvdXJjZUFjdGlv
biAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSB8fCAhKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3Vy
Y2VBY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uTGluaykpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbGlua0RyYWdnaW5nQ2VudGVyID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmFkanVzdGVk
T3JpZ2luOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gdGl0bGUgPSAoTlNTdHJpbmcgKilfZGF0
YUludGVyYWN0aW9uU3RhdGUubGlua1RpdGxlOworICAgIFJldGFpblB0cjxOU1VSTD4gdXJsID0g
KE5TVVJMICopX2RhdGFJbnRlcmFjdGlvblN0YXRlLmxpbmtVUkw7CisgICAgc2Vzc2lvbi5pdGVt
cy5maXJzdE9iamVjdC5wcmV2aWV3UHJvdmlkZXIgPSBbdGl0bGUsIHVybCwgbGlua0RyYWdnaW5n
Q2VudGVyXSAoKSAtPiBVSURyYWdQcmV2aWV3ICogeworICAgICAgICBVSVVSTERyYWdQcmV2aWV3
VmlldyAqcHJldmlld1ZpZXcgPSBbVUlVUkxEcmFnUHJldmlld1ZpZXcgdmlld1dpdGhUaXRsZTp0
aXRsZS5nZXQoKSBVUkw6dXJsLmdldCgpXTsKKyAgICAgICAgcHJldmlld1ZpZXcuY2VudGVyID0g
bGlua0RyYWdnaW5nQ2VudGVyOworCisgICAgICAgIFVJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzICpw
YXJhbWV0ZXJzID0gW1tbVUlEcmFnUHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRXaXRoVGV4
dExpbmVSZWN0czpAWyBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6cHJldmlld1ZpZXcuYm91bmRz
XSBdXSBhdXRvcmVsZWFzZV07CisgICAgICAgIHJldHVybiBbW1tVSURyYWdQcmV2aWV3IGFsbG9j
XSBpbml0V2l0aFZpZXc6cHJldmlld1ZpZXcgcGFyYW1ldGVyczpwYXJhbWV0ZXJzXSBhdXRvcmVs
ZWFzZV07CisgICAgfTsKK30KKworLSAodm9pZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2Fy
ZXRSZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdAorewor
ICAgIEJPT0wgcHJldmlvdXNSZWN0SXNFbXB0eSA9IENHUmVjdElzRW1wdHkocHJldmlvdXNSZWN0
KTsKKyAgICBCT09MIGN1cnJlbnRSZWN0SXNFbXB0eSA9IENHUmVjdElzRW1wdHkocmVjdCk7Cisg
ICAgaWYgKHByZXZpb3VzUmVjdElzRW1wdHkgJiYgY3VycmVudFJlY3RJc0VtcHR5KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAocHJldmlvdXNSZWN0SXNFbXB0eSkgeworICAgICAgICBfZGF0
YUludGVyYWN0aW9uU3RhdGUuY2FyZXRWaWV3ID0gYWRvcHROUyhbW19VSVRleHREcmFnQ2FyZXRW
aWV3IGFsbG9jXSBpbml0V2l0aFRleHRJbnB1dFZpZXc6c2VsZl0pOworICAgICAgICBbX2RhdGFJ
bnRlcmFjdGlvblN0YXRlLmNhcmV0VmlldyBpbnNlcnRBdFBvc2l0aW9uOltXS1RleHRQb3NpdGlv
biB0ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoY3VycmVudFJlY3RJc0VtcHR5KSB7CisgICAgICAgIFtfZGF0YUludGVyYWN0aW9u
U3RhdGUuY2FyZXRWaWV3IHJlbW92ZV07CisgICAgICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5j
YXJldFZpZXcgPSBuaWw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbX2RhdGFJbnRl
cmFjdGlvblN0YXRlLmNhcmV0VmlldyB1cGRhdGVUb1Bvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0
ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07Cit9CisKKy0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uKV9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Np
b24+KXNlc3Npb24KK3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9
IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRy
YWdnaW5nSW5mbzopXSkKKyAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJW
aWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86c2Vzc2lvbl07CisK
KyAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V0tEcmFnRGVzdGluYXRp
b25BY3Rpb25Mb2FkOworfQorCitzdGF0aWMgQk9PTCBwb3NpdGlvbkluZm9ybWF0aW9uTWF5U3Rh
cnREYXRhSW50ZXJhY3Rpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
IHBvc2l0aW9uSW5mb3JtYXRpb24pCit7CisgICAgcmV0dXJuIHBvc2l0aW9uSW5mb3JtYXRpb24u
aXNJbWFnZSB8fCBwb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayB8fCBwb3NpdGlvbkluZm9ybWF0
aW9uLmlzQXR0YWNobWVudCB8fCBwb3NpdGlvbkluZm9ybWF0aW9uLmhhc1NlbGVjdGlvbkF0UG9z
aXRpb247Cit9CisKKy0gKGlkIDxVSURyYWdEcm9wU2Vzc2lvbj4pY3VycmVudERyYWdPckRyb3BT
ZXNzaW9uCit7CisgICAgaWYgKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcm9wU2Vzc2lvbikKKyAg
ICAgICAgcmV0dXJuIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcm9wU2Vzc2lvbi5nZXQoKTsKKyAg
ICByZXR1cm4gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTZXNzaW9uLmdldCgpOworfQorCisj
cHJhZ21hIG1hcmsgLSBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlCisKKy0gKHZvaWQpX2RyYWdJ
bnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vz
c2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxv
Y2tfdCljb21wbGV0aW9uCit7CisgICAgaWYgKHNlbGYuY3VycmVudERyYWdPckRyb3BTZXNzaW9u
KSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG11bHRpcGxlIHNpbXVsdGFuZW91cyBkcmFn
IHNlc3Npb25zIGluIHRoZSBmdXR1cmUuCisgICAgICAgIGNvbXBsZXRpb24oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRl
XTsKKworICAgIENHUG9pbnQgZHJhZ09yaWdpbiA9IFtzZXNzaW9uIGxvY2F0aW9uSW5WaWV3OnNl
bGZdOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiByZXRhaW5lZFNlbGYoc2VsZik7CisK
KyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxm
LCBzZXNzaW9uLCBkcmFnT3JpZ2luLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb24pXSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1h
dGlvbikgeworICAgICAgICBpZiAoIXBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRl
cmFjdGlvbihwb3NpdGlvbkluZm9ybWF0aW9uKSkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9j
aygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byYgc3Rh
dGUgPSByZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25TdGF0ZTsKKyAgICAgICAgc3RhdGUu
ZHJhZ1N0YXJ0Q29tcGxldGlvbkJsb2NrID0gY2FwdHVyZWRCbG9jazsKKyAgICAgICAgc3RhdGUu
Z2VzdHVyZU9yaWdpbiA9IGRyYWdPcmlnaW47CisgICAgICAgIHN0YXRlLmFkanVzdGVkT3JpZ2lu
ID0gcmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5hZGp1c3RlZFBvaW50Rm9yTm9k
ZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzOworICAgICAgICBzdGF0ZS5lbGVtZW50Qm91bmRzID0g
cmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHM7CisgICAgICAgIHN0YXRl
LmxpbmtUaXRsZSA9IHJldGFpbmVkU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGU7Cisg
ICAgICAgIHN0YXRlLmxpbmtVUkwgPSByZXRhaW5lZFNlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9u
LnVybDsKKyAgICAgICAgc3RhdGUuZHJhZ1Nlc3Npb24gPSBzZXNzaW9uOworICAgICAgICByZXRh
aW5lZFNlbGYtPl9wYWdlLT5yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24ocm91bmRlZEludFBv
aW50KHN0YXRlLmFkanVzdGVkT3JpZ2luKSwgcm91bmRlZEludFBvaW50KFtyZXRhaW5lZFNlbGYg
Y29udmVydFBvaW50OnN0YXRlLmFkanVzdGVkT3JpZ2luIHRvVmlldzpbcmV0YWluZWRTZWxmIHdp
bmRvd11dKSk7CisgICAgfSBmb3JSZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KHJvdW5kZWRJbnRQb2ludChkcmFnT3JpZ2luKSldOworfQorCistIChOU0FycmF5PFVJRHJhZ0l0
ZW0gKj4gKilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
aXRlbXNGb3JCZWdpbm5pbmdTZXNzaW9uOihpZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbgorewor
ICAgIGlmIChfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJhZ1Nlc3Npb24gIT0gc2Vzc2lvbikKKyAg
ICAgICAgcmV0dXJuIEBbIF07CisKKyAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICpkcmFn
Z2luZ1Bhc3RlYm9hcmQgPSBbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5j
ZV07CisgICAgQVNTRVJUKGludGVyYWN0aW9uID09IF9kYXRhSW50ZXJhY3Rpb24pOworICAgIE5T
VUludGVnZXIgbnVtYmVyT2ZJdGVtcyA9IGRyYWdnaW5nUGFzdGVib2FyZC5udW1iZXJPZkl0ZW1z
OworICAgIGlmICghbnVtYmVyT2ZJdGVtcykgeworICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxl
ZCgpOworICAgICAgICByZXR1cm4gQFsgXTsKKyAgICB9CisKKyAgICBbVUlDYWxsb3V0QmFyIGZh
ZGVTaGFyZWRDYWxsb3V0QmFyXTsKKworICAgIC8vIEdpdmUgaW50ZXJuYWwgY2xpZW50cyBzdWNo
IGFzIE1haWwgb25lIGZpbmFsIGNoYW5jZSB0byBhdWdtZW50IHRoZSBjb250ZW50cyBvZiBlYWNo
IFVJSXRlbVByb3ZpZGVyIGJlZm9yZSBzZW5kaW5nIHRoZSBkcmFnIGl0ZW1zIG9mZiB0byBVSUtp
dC4KKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmll
d1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6YWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRl
bVByb3ZpZGVyOnJlcHJlc2VudGluZ09iamVjdHM6YWRkaXRpb25hbERhdGE6KV0pIHsKKyAgICAg
ICAgTlNNdXRhYmxlQXJyYXkgKmFkanVzdGVkSXRlbVByb3ZpZGVycyA9IFtOU011dGFibGVBcnJh
eSBhcnJheV07CisgICAgICAgIGZvciAoTlNVSW50ZWdlciBpdGVtSW5kZXggPSAwOyBpdGVtSW5k
ZXggPCBudW1iZXJPZkl0ZW1zOyArK2l0ZW1JbmRleCkgeworICAgICAgICAgICAgV2ViSXRlbVBy
b3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3QgKmluZm9MaXN0ID0gW2RyYWdnaW5nUGFzdGVib2Fy
ZCByZWdpc3RyYXRpb25JbmZvQXRJbmRleDppdGVtSW5kZXhdOworICAgICAgICAgICAgYXV0byBy
ZXByZXNlbnRpbmdPYmplY3RzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
XSk7CisgICAgICAgICAgICBhdXRvIGFkZGl0aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgICAgIFtpbmZvTGlzdCBlbnVtZXJh
dGVJdGVtczpbcmVwcmVzZW50aW5nT2JqZWN0cywgYWRkaXRpb25hbERhdGFdIChXZWJJdGVtUHJv
dmlkZXJSZWdpc3RyYXRpb25JbmZvICppdGVtLCBOU1VJbnRlZ2VyKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGl0ZW0ucmVwcmVzZW50aW5nT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBbcmVw
cmVzZW50aW5nT2JqZWN0cyBhZGRPYmplY3Q6aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOworICAg
ICAgICAgICAgICAgIGlmIChpdGVtLnR5cGVJZGVudGlmaWVyICYmIGl0ZW0uZGF0YSkKKyAgICAg
ICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxEYXRhIHNldE9iamVjdDppdGVtLmRhdGEgZm9yS2V5
Oml0ZW0udHlwZUlkZW50aWZpZXJdOworICAgICAgICAgICAgfV07CisgICAgICAgICAgICBpZiAo
TlNBcnJheSAqcmVwbGFjZW1lbnRJdGVtUHJvdmlkZXJzID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6
X3dlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3Zp
ZGVyOltkcmFnZ2luZ1Bhc3RlYm9hcmQgaXRlbVByb3ZpZGVyQXRJbmRleDppdGVtSW5kZXhdIHJl
cHJlc2VudGluZ09iamVjdHM6cmVwcmVzZW50aW5nT2JqZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0
YTphZGRpdGlvbmFsRGF0YS5nZXQoKV0pCisgICAgICAgICAgICAgICAgW2FkanVzdGVkSXRlbVBy
b3ZpZGVycyBhZGRPYmplY3RzRnJvbUFycmF5OnJlcGxhY2VtZW50SXRlbVByb3ZpZGVyc107Cisg
ICAgICAgIH0KKyAgICAgICAgZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBhZGp1
c3RlZEl0ZW1Qcm92aWRlcnM7CisgICAgfSBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVBy
b3ZpZGVyczopXSkKKyAgICAgICAgZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBb
dWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Q
cm92aWRlcnM6ZHJhZ2dpbmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnNdOworCisgICAgX19ibG9j
ayBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uID0gW05T
TXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBbZHJhZ2dpbmdQYXN0ZWJvYXJkIGVudW1lcmF0ZUl0
ZW1Qcm92aWRlcnNXaXRoQmxvY2s6XihVSUl0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyLCBOU1VJ
bnRlZ2VyIGluZGV4LCBCT09MICpzdG9wKSB7CisgICAgICAgIFtpdGVtc0ZvckRyYWdJbnRlcmFj
dGlvbiBhZGRPYmplY3Q6W1tbVUlEcmFnSXRlbSBhbGxvY10gaW5pdFdpdGhJdGVtUHJvdmlkZXI6
aXRlbVByb3ZpZGVyXSBhdXRvcmVsZWFzZV1dOworICAgIH1dOworCisgICAgaWYgKCFbaXRlbXNG
b3JEcmFnSW50ZXJhY3Rpb24gY291bnRdKQorICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgp
OworCisgICAgcmV0dXJuIGl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uLmdldCgpOworfQorCistIChV
SVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfYXBpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJh
Y3Rpb24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0ZW0gKilp
dGVtIHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uCit7CisgICAgaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAg
IGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnBy
ZXZpZXdGb3JMaWZ0aW5nSXRlbTpzZXNzaW9uOildKSB7CisgICAgICAgIFVJVGFyZ2V0ZWREcmFn
UHJldmlldyAqb3ZlcnJpZGVuUHJldmlldyA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3
IHByZXZpZXdGb3JMaWZ0aW5nSXRlbTppdGVtIHNlc3Npb246c2Vzc2lvbl07CisgICAgICAgIGlm
IChvdmVycmlkZW5QcmV2aWV3KQorICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlblByZXZpZXc7
CisgICAgfQorICAgIHJldHVybiBzZWxmLmRyYWdQcmV2aWV3Rm9yQ3VycmVudERhdGFJbnRlcmFj
dGlvblN0YXRlLmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpZHJhZ0ludGVyYWN0aW9uOihV
SURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25XaWxsQmVnaW46KGlkIDxVSURy
YWdTZXNzaW9uPilzZXNzaW9uCit7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbjpzZXNzaW9u
V2lsbEJlZ2luOildKQorICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBkYXRh
SW50ZXJhY3Rpb246aW50ZXJhY3Rpb24gc2Vzc2lvbldpbGxCZWdpbjpzZXNzaW9uXTsKKworICAg
IFtzZWxmIGNhbmNlbERlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luXTsKKyAgICBbX2FjdGlvblNo
ZWV0QXNzaXN0YW50IGNsZWFudXBTaGVldF07CisKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUu
ZGlkQmVnaW5EcmFnZ2luZyA9IFlFUzsKKyAgICBbc2VsZiBfdHJhbnNpdGlvbkRyYWdQcmV2aWV3
VG9JbWFnZUlmTmVjZXNzYXJ5OnNlc3Npb25dOworCisgICAgX3BhZ2UtPmRpZFN0YXJ0RHJhZygp
OworfQorCistICh2b2lkKV9hcGlfZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAq
KWludGVyYWN0aW9uIHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uIGRpZEVuZFdp
dGhPcGVyYXRpb246KFVJRHJvcE9wZXJhdGlvbilvcGVyYXRpb24KK3sKKyAgICBpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAg
aWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGF0
YUludGVyYWN0aW9uOnNlc3Npb246ZGlkRW5kV2l0aE9wZXJhdGlvbjopXSkKKyAgICAgICAgW3Vp
RGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGF0YUludGVyYWN0aW9uOmludGVyYWN0aW9uIHNl
c3Npb246c2Vzc2lvbiBkaWRFbmRXaXRoT3BlcmF0aW9uOm9wZXJhdGlvbl07CisKKyAgICBpZiAo
X2RhdGFJbnRlcmFjdGlvblN0YXRlLmlzUGVyZm9ybWluZ09wZXJhdGlvbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgW3NlbGYgY2FuY2VsRGVmZXJyZWRBY3Rpb25BdERyYWdPcmlnaW5dOworICAg
IFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKKworICAgIF9wYWdlLT5kcmFn
RW5kZWQocm91bmRlZEludFBvaW50KF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5hZGp1c3RlZE9yaWdp
biksIHJvdW5kZWRJbnRQb2ludChbc2VsZiBjb252ZXJ0UG9pbnQ6X2RhdGFJbnRlcmFjdGlvblN0
YXRlLmFkanVzdGVkT3JpZ2luIHRvVmlldzpzZWxmLndpbmRvd10pLCBvcGVyYXRpb24pOworfQor
CistIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVy
YWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVt
ICopaXRlbSB3aXRoRGVmYXVsdDooVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZp
ZXcKK3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2Vi
Vmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOndpdGhEZWZhdWx0Oild
KSB7CisgICAgICAgIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqb3ZlcnJpZGVuUHJldmlldyA9IFt1
aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTppdGVt
IHdpdGhEZWZhdWx0OmRlZmF1bHRQcmV2aWV3XTsKKyAgICAgICAgaWYgKG92ZXJyaWRlblByZXZp
ZXcpCisgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVuUHJldmlldzsKKyAgICB9CisgICAgcmV0
dXJuIHNlbGYuZHJhZ1ByZXZpZXdGb3JDdXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGUuYXV0b3Jl
bGVhc2UoKTsKK30KKworLSAodm9pZClfYXBpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJh
Y3Rpb24gKilpbnRlcmFjdGlvbiBpdGVtOihVSURyYWdJdGVtICopaXRlbSB3aWxsQW5pbWF0ZUNh
bmNlbFdpdGhBbmltYXRvcjooaWQgPFVJRHJhZ0FuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBb
YW5pbWF0b3IgYWRkQ29tcGxldGlvbjpbcGFnZSA9IF9wYWdlXSAoVUlWaWV3QW5pbWF0aW5nUG9z
aXRpb24gZmluYWxQb3NpdGlvbikgeworICAgICAgICBwYWdlLT5kcmFnQ2FuY2VsbGVkKCk7Cisg
ICAgfV07Cit9CisKKyNwcmFnbWEgbWFyayAtIFVJRHJvcEludGVyYWN0aW9uRGVsZWdhdGUKKwor
LSAoQk9PTClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
Y2FuSGFuZGxlU2Vzc2lvbjooaWQ8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgoreworICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IG11bHRpcGxlIHNpbXVsdGFuZW91cyBkcm9wIHNlc3Npb25zIGluIHRoZSBm
dXR1cmUuCisgICAgaWQgPFVJRHJhZ0Ryb3BTZXNzaW9uPiBkcmFnT3JEcm9wU2Vzc2lvbiA9IHNl
bGYuY3VycmVudERyYWdPckRyb3BTZXNzaW9uOworICAgIHJldHVybiAhZHJhZ09yRHJvcFNlc3Np
b24gfHwgc2Vzc2lvbi5sb2NhbERyYWdTZXNzaW9uID09IGRyYWdPckRyb3BTZXNzaW9uOworfQor
CistICh2b2lkKV9hcGlfZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlvbiAqKWludGVy
YWN0aW9uIHNlc3Npb25EaWRFbnRlcjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24KK3sKKyAg
ICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJvcFNlc3Npb24gPSBzZXNzaW9uOworCisgICAgW1tX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJz
OmV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9uKHNlc3Npb24pXTsKKworICAgIGF1
dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvckRyb3BTZXNzaW9uOnNlc3Npb24gZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uOltzZWxmIF9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lv
bjpzZXNzaW9uXV07CisKKyAgICBfcGFnZS0+ZHJhZ0VudGVyZWQoZHJhZ0RhdGEsICJkYXRhIGlu
dGVyYWN0aW9uIHBhc3RlYm9hcmQiKTsKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFzdEds
b2JhbFBvc2l0aW9uID0gZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKTsKK30KKworLSAoVUlEcm9w
UHJvcG9zYWwgKilfYXBpX2Ryb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRl
cmFjdGlvbiBzZXNzaW9uRGlkVXBkYXRlOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgorewor
ICAgIFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5jZV0gc2V0SXRlbVBy
b3ZpZGVyczpleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbihzZXNzaW9uKV07CisK
KyAgICBhdXRvIGRyYWdEYXRhID0gW3NlbGYgZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpzZXNzaW9u
IGRyYWdEZXN0aW5hdGlvbkFjdGlvbjpbc2VsZiBfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJv
cFNlc3Npb246c2Vzc2lvbl1dOworICAgIF9wYWdlLT5kcmFnVXBkYXRlZChkcmFnRGF0YSwgImRh
dGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5s
YXN0R2xvYmFsUG9zaXRpb24gPSBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOworCisgICAgTlNV
SW50ZWdlciBvcGVyYXRpb24gPSBkcm9wT3BlcmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24o
X3BhZ2UtPmN1cnJlbnREcmFnT3BlcmF0aW9uKCkpOworICAgIGlmIChbc2VsZi53ZWJWaWV3VUlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxVcGRhdGVE
YXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09wZXJhdGlvbjpmb3JTZXNzaW9uOildKQorICAgICAg
ICBvcGVyYXRpb24gPSBbc2VsZi53ZWJWaWV3VUlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3
aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uVG9PcGVyYXRpb246b3BlcmF0aW9uIGZv
clNlc3Npb246c2Vzc2lvbl07CisKKyAgICByZXR1cm4gW1tbVUlEcm9wUHJvcG9zYWwgYWxsb2Nd
IGluaXRXaXRoRHJvcE9wZXJhdGlvbjpzdGF0aWNfY2FzdDxVSURyb3BPcGVyYXRpb24+KG9wZXJh
dGlvbildIGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJv
cEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc2Vzc2lvbkRpZEV4aXQ6KGlkIDxVSURyb3BTZXNz
aW9uPilzZXNzaW9uCit7CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZElu
c3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOmV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNz
aW9uKHNlc3Npb24pXTsKKworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvckRy
b3BTZXNzaW9uOnNlc3Npb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOldLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uQW55XTsKKyAgICBfcGFnZS0+ZHJhZ0V4aXRlZChkcmFnRGF0YSwgImRhdGEgaW50ZXJh
Y3Rpb24gcGFzdGVib2FyZCIpOworICAgIF9wYWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRp
b24oKTsKK30KKworLSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICop
aW50ZXJhY3Rpb24gcGVyZm9ybURyb3A6KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCit7Cisg
ICAgTlNBcnJheSA8VUlJdGVtUHJvdmlkZXIgKj4gKml0ZW1Qcm92aWRlcnMgPSBleHRyYWN0SXRl
bVByb3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cGVyZm9ybURh
dGFJbnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJdGVtUHJvdmlkZXJzOildKSB7CisgICAgICAgIGlm
IChbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwZXJmb3JtRGF0YUludGVyYWN0aW9uT3Bl
cmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6aXRlbVByb3ZpZGVyc10pCisgICAgICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6d2lsbFBlcmZvcm1Ecm9wV2l0aFNlc3Npb246KV0pIHsKKyAgICAgICAg
aXRlbVByb3ZpZGVycyA9IGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyYWdJdGVtcyhbdWlEZWxl
Z2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxsUGVyZm9ybURyb3BXaXRoU2Vzc2lvbjpzZXNzaW9u
XSk7CisgICAgICAgIGlmICghaXRlbVByb3ZpZGVycy5jb3VudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFu
Y2VdIHNldEl0ZW1Qcm92aWRlcnM6aXRlbVByb3ZpZGVyc107CisgICAgW1tXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBpbmNyZW1lbnRQZW5kaW5nT3BlcmF0aW9uQ291
bnRdOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdPcGVyYXRpb24gPSBZ
RVM7CisgICAgYXV0byBkcmFnRGF0YSA9IFtzZWxmIGRyYWdEYXRhRm9yRHJvcFNlc3Npb246c2Vz
c2lvbiBkcmFnRGVzdGluYXRpb25BY3Rpb246V0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnldOwor
CisgICAgLy8gQWx3YXlzIGxvYWRpbmcgY29udGVudCBmcm9tIHRoZSBpdGVtIHByb3ZpZGVyIGVu
c3VyZXMgdGhhdCB0aGUgd2ViIHByb2Nlc3Mgd2lsbCBiZSBhbGxvd2VkIHRvIGNhbGwgYmFjayBp
biB0byB0aGUgVUkKKyAgICAvLyBwcm9jZXNzIHRvIGFjY2VzcyBwYXN0ZWJvYXJkIGNvbnRlbnRz
IGF0IGEgbGF0ZXIgdGltZS4gSWRlYWxseSwgd2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgd29yayBp
ZiB3ZSdyZSBvdmVyIGEgZmlsZSBpbnB1dAorICAgIC8vIG9yIHRoZSBwYWdlIHByZXZlbnRlZCBk
ZWZhdWx0IG9uIGBkcmFnb3ZlcmAsIGJ1dCB3aXRob3V0IHRoaXMsIGRyb3BwaW5nIGludG8gYSBu
b3JtYWwgZWRpdGFibGUgYXJlYXMgd2lsbCBmYWlsIGR1ZSB0bworICAgIC8vIGl0ZW0gcHJvdmlk
ZXJzIG5vdCBsb2FkaW5nIGFueSBkYXRhLgorICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiBy
ZXRhaW5lZFNlbGYoc2VsZik7CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJl
ZEluc3RhbmNlXSBkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpbcmV0
YWluZWRTZWxmLCBjYXB0dXJlZERyYWdEYXRhID0gV1RGTW92ZShkcmFnRGF0YSldIChOU0FycmF5
ICpmaWxlVVJMcykgbXV0YWJsZSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsK
KyAgICAgICAgZm9yIChOU1VSTCAqZmlsZVVSTCBpbiBmaWxlVVJMcykKKyAgICAgICAgICAgIGZp
bGVuYW1lcy5hcHBlbmQoW2ZpbGVVUkwgcGF0aF0pOworICAgICAgICBjYXB0dXJlZERyYWdEYXRh
LnNldEZpbGVOYW1lcyhmaWxlbmFtZXMpOworCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkOworICAgICAgICByZXRhaW5lZFNl
bGYtPl9wYWdlLT5jcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGZpbGVuYW1lcywgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCk7CisgICAgICAg
IHJldGFpbmVkU2VsZi0+X3BhZ2UtPnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNhcHR1cmVkRHJhZ0Rh
dGEsICJkYXRhIGludGVyYWN0aW9uIHBhc3RlYm9hcmQiLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
LCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkKTsKKworICAgICAgICByZXRhaW5lZFNlbGYtPl9k
YXRhSW50ZXJhY3Rpb25TdGF0ZS52aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdCA9IFtyZXRhaW5l
ZFNlbGYgc25hcHNob3RWaWV3QWZ0ZXJTY3JlZW5VcGRhdGVzOk5PXTsKKyAgICAgICAgW3JldGFp
bmVkU2VsZiBzZXRTdXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXc6WUVTXTsKKyAgICAgICAg
W1VJVmlldyBwZXJmb3JtV2l0aG91dEFuaW1hdGlvbjpbcmV0YWluZWRTZWxmXSB7CisgICAgICAg
ICAgICBbcmV0YWluZWRTZWxmLT5fZGF0YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRW
aWV3U25hcHNob3Qgc2V0RnJhbWU6W3JldGFpbmVkU2VsZiBib3VuZHNdXTsKKyAgICAgICAgICAg
IFtyZXRhaW5lZFNlbGYgYWRkU3VidmlldzpyZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25T
dGF0ZS52aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdC5nZXQoKV07CisgICAgICAgIH1dOworICAg
IH1dOworfQorCistIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilkcm9wSW50ZXJhY3Rpb246KFVJ
RHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckRyb3BwaW5nSXRlbTooVUlE
cmFnSXRlbSAqKWl0ZW0gd2l0aERlZmF1bHQ6KFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKWRlZmF1
bHRQcmV2aWV3Cit7CisgICAgQ0dSZWN0IGNhcmV0UmVjdCA9IF9wYWdlLT5jdXJyZW50RHJhZ0Nh
cmV0UmVjdCgpOworICAgIGlmIChDR1JlY3RJc0VtcHR5KGNhcmV0UmVjdCkpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzMxMDc0Mzc2PiBbV0sy
XSBQZXJmb3JtaW5nIGFuIGVkaXQgZHJhZyBzaG91bGQgdHJhbnNpdGlvbiBmcm9tIHRoZSBpbml0
aWFsIGRyYWcgcHJldmlldyB0byB0aGUgZmluYWwgZHJvcCBwcmV2aWV3CisgICAgLy8gVGhpcyBp
cyBibG9ja2VkIG9uIFVJS2l0IHN1cHBvcnQsIHNpbmNlIHdlIGFyZW4ndCBhYmxlIHRvIHVwZGF0
ZSB0aGUgdGV4dCBjbGlwcGluZyByZWN0cyBvZiBhIFVJVGFyZ2V0ZWREcmFnUHJldmlldyBtaWQt
ZmxpZ2h0LiBGb3Igbm93LAorICAgIC8vIGp1c3Qgem9vbSB0byB0aGUgY2VudGVyIG9mIHRoZSBj
YXJldCByZWN0IHdoaWxlIHNocmlua2luZyB0aGUgZHJvcCBwcmV2aWV3LgorICAgIGF1dG8gY2Fy
ZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OmNhcmV0UmVjdCB0
b1ZpZXc6W1VJVGV4dEVmZmVjdHNXaW5kb3cgc2hhcmVkVGV4dEVmZmVjdHNXaW5kb3ddXTsKKyAg
ICBhdXRvIGNhcmV0Q2VudGVySW5XaW5kb3dDb29yZGluYXRlcyA9IENHUG9pbnRNYWtlKENHUmVj
dEdldE1pZFgoY2FyZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyksIENHUmVjdEdldE1pZFkoY2Fy
ZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcykpOworICAgIGF1dG8gdGFyZ2V0ID0gYWRvcHROUyhb
W1VJRHJhZ1ByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOltVSVRleHRFZmZl
Y3RzV2luZG93IHNoYXJlZFRleHRFZmZlY3RzV2luZG93XSBjZW50ZXI6Y2FyZXRDZW50ZXJJbldp
bmRvd0Nvb3JkaW5hdGVzIHRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgwLCAw
KV0pOworICAgIHJldHVybiBbZGVmYXVsdFByZXZpZXcgcmV0YXJnZXRlZFByZXZpZXdXaXRoVGFy
Z2V0OnRhcmdldC5nZXQoKV07Cit9CisKKy0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25EaWRFbmQ6KGlkIDxVSURyb3BTZXNzaW9u
PilzZXNzaW9uCit7CisgICAgaWYgKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdP
cGVyYXRpb24gfHwgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRpZEJlZ2luRHJhZ2dpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIENHUG9pbnQgZ2xvYmFsOworICAgIENHUG9pbnQgY2xpZW50Owor
ICAgIFtzZWxmIGNvbXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpzZXNz
aW9uIG91dENsaWVudFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisgICAg
W3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworICAgIF9wYWdlLT5kcmFnRW5k
ZWQocm91bmRlZEludFBvaW50KGNsaWVudCksIHJvdW5kZWRJbnRQb2ludChnbG9iYWwpLCBVSURy
YWdPcGVyYXRpb25Ob25lKTsKK30KKworI3ByYWdtYSBtYXJrIC0gVW5pdCB0ZXN0aW5nIHN1cHBv
cnQKKworLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClzZXNzaW9u
Cit7CisgICAgW3NlbGYgX2FwaV9kcm9wSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkg
c2Vzc2lvbkRpZEVudGVyOnNlc3Npb25dOworfQorCistIChCT09MKV9zaW11bGF0ZURhdGFJbnRl
cmFjdGlvblVwZGF0ZWQ6KGlkKXNlc3Npb24KK3sKKyAgICByZXR1cm4gW3NlbGYgX2FwaV9kcm9w
SW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9u
XS5vcGVyYXRpb24gIT0gVUlEcm9wT3BlcmF0aW9uQ2FuY2VsOworfQorCistICh2b2lkKV9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihpZClzZXNzaW9uCit7CisgICAgW3NlbGYgZHJvcElu
dGVyYWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdldCgpIHNlc3Npb25EaWRFbmQ6c2Vzc2lvbl07Cit9
CisKKy0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbjooaWQp
c2Vzc2lvbgoreworICAgIFtzZWxmIGRyb3BJbnRlcmFjdGlvbjpfZGF0YU9wZXJhdGlvbi5nZXQo
KSBwZXJmb3JtRHJvcDpzZXNzaW9uXTsKK30KKworLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uCit7CisgICAgW3NlbGYgX2FwaV9kcmFnSW50
ZXJhY3Rpb246X2RhdGFJbnRlcmFjdGlvbi5nZXQoKSBzZXNzaW9uOnNlc3Npb24gZGlkRW5kV2l0
aE9wZXJhdGlvbjpVSURyb3BPcGVyYXRpb25Db3B5XTsKK30KKworLSAodm9pZClfc2ltdWxhdGVX
aWxsQmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoU2Vzc2lvbjooaWQpc2Vzc2lvbgoreworICAgIFtz
ZWxmIGRyYWdJbnRlcmFjdGlvbjpfZGF0YUludGVyYWN0aW9uLmdldCgpIHNlc3Npb25XaWxsQmVn
aW46c2Vzc2lvbl07Cit9CisKKy0gKE5TQXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9u
OihpZClzZXNzaW9uCit7CisgICAgcmV0dXJuIFtzZWxmIGRyYWdJbnRlcmFjdGlvbjpfZGF0YUlu
dGVyYWN0aW9uLmdldCgpIGl0ZW1zRm9yQmVnaW5uaW5nU2Vzc2lvbjpzZXNzaW9uXTsKK30KKwor
LSAodm9pZClfc2ltdWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjooaWQpc2Vz
c2lvbiBjb21wbGV0aW9uOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24KK3sKKyAgICBbc2Vs
ZiBfZHJhZ0ludGVyYWN0aW9uOl9kYXRhSW50ZXJhY3Rpb24uZ2V0KCkgcHJlcGFyZUZvclNlc3Np
b246c2Vzc2lvbiBjb21wbGV0aW9uOmNvbXBsZXRpb25dOworfQorCisjZW5kaWYKKwogQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyAoV0tUZXN0aW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVu
dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkRyYWdDbGllbnRNYWMubW0KaW5kZXggYzdjMjY4OWViMjM0NzUyMDQ2ZTgwNzQ4NDk3NDkyYWZj
ZWFhMjUyNC4uN2E5ODI1YmE2MzUzZGNhNGYyNTI3ZDFjNDI2MWE4YTQxZDcxNzQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC0zNCwzMSArMzQsMzcgQEAKICNpbXBvcnQg
IldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL0NhY2hlZEltYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5o
PgorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TWFpbkZyYW1lLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
SW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU3RyaW5nVHJ1bmNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4
dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJVSUtpdFNQSS5o
IgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdl
YktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5tbT4pCi0jaW1wb3J0
IDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDIubW0+Ci0jZW5k
aWYKK25hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZPUk0oTUFDKQogCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQogc3RhdGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRv
Qml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUp
CiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFncyA9IFNoYXJlYWJsZUJpdG1hcDo6
U3VwcG9ydHNBbHBoYTsKQEAgLTE4NCw4ICsxOTAsNTcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50Ojpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxl
bWUKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0UHJvbWlzZWRE
YXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIGltYWdlSGFuZGxlLCBpbWFnZVNpemUsIGZpbGVu
YW1lLCBleHRlbnNpb24sIHRpdGxlLCBTdHJpbmcoW1tyZXNwb25zZSBVUkxdIGFic29sdXRlU3Ry
aW5nXSksIHVzZXJWaXNpYmxlU3RyaW5nKChOU1VSTCAqKXVybCksIGFyY2hpdmVIYW5kbGUsIGFy
Y2hpdmVTaXplKSk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQogCisjaWYgUExBVEZPUk0oSU9TKQorCitzdGF0aWMgUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4gY29udmVydENHSW1hZ2VUb0JpdG1hcChDR0ltYWdlUmVmIGltYWdlLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCit7CisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFi
bGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShzaXplLCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRz
QWxwaGEgfCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzRXh0ZW5kZWRDb2xvcik7CisgICAgaWYg
KCFiaXRtYXApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncmFwaGljc0Nv
bnRleHQgPSBiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOworICAgIFVJR3JhcGhpY3NQ
dXNoQ29udGV4dChncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBDR0Nv
bnRleHREcmF3SW1hZ2UoZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0
TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpLCBpbWFnZSk7CisgICAgVUlH
cmFwaGljc1BvcENvbnRleHQoKTsKKyAgICByZXR1cm4gYml0bWFwOworfQorCit2b2lkIFdlYkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2lu
dCwgY29uc3QgSW50UG9pbnQmIGV2ZW50TG9jYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJ
bWFnZUFuY2hvciwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgRHJh
Z1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uKQoreworICAgIEludFNpemUgYml0bWFwU2l6
ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGlt
YWdlLmdldCgpLmdldCgpKSk7CisgICAgYXV0byBiaXRtYXAgPSBjb252ZXJ0Q0dJbWFnZVRvQml0
bWFwKGltYWdlLmdldCgpLmdldCgpLCBiaXRtYXBTaXplLCBmcmFtZSk7CisgICAgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUgaGFuZGxlOworICAgIGlmICghYml0bWFwIHx8ICFiaXRtYXAtPmNyZWF0
ZUhhbmRsZShoYW5kbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UtPndpbGxTdGFy
dERyYWcoKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0RHJh
Z0ltYWdlKGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwb2ludCksIGhhbmRsZSwgaW1h
Z2UuaW5kaWNhdG9yRGF0YSgpLCBkcmFnSW1hZ2VBbmNob3IsIGRyYWdTb3VyY2VBY3Rpb24pKTsK
K30KKwordm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKK3sKKyAgICBpZiAoYXV0byBmcmFtZSA9IGVs
ZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkud3JpdGVJ
bWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgZWxl
bWVudCwgdXJsLCBsYWJlbCk7Cit9CisKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6ZGlkQ29uY2x1ZGVF
ZGl0RHJhZygpCit7CisgICAgbV9wYWdlLT5kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24o
KTsKK30KKworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKK3ZvaWQgV2ViRHJhZ0Ns
aWVudDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50Jiwg
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJkOTE5NDVjNTc2ZTc1
ODY2N2Q1MzY1MmJmYjg0ZDkyMzdlY2U2ZS4uMjQyYjBkZjQ5Y2U2OWY0YTljZmY3MTk2YmNmZGM2
N2FkYjZlOTA1NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBh
bmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgdGVzdCBwYWdlcyBhbmQgcGllY2VzIG9mIERhdGFJbnRlcmFj
dGlvblNpbXVsYXRvciBoaWRkZW4gYmVoaW5kIFdlYktpdEFkZGl0aW9ucyBpbnRvIFRlc3RXZWJL
aXRBUEkuIE5vCisgICAgICAgIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNv
bnRlbnRlZGl0YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NvbnRlbnRlZGl0
YWJsZS1hbmQtdGV4dGFyZWEuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9maWxlLXVwbG9hZGluZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbWFn
ZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
aW5rLWFuZC10YXJnZXQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtc3RhcnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFy
ZWEtdG8taW5wdXQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9u
IGluaXRXaXRoSXRlbXM6bG9jYXRpb246d2luZG93Ol0pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ry
b3BTZXNzaW9uIGFsbG93c01vdmVPcGVyYXRpb25dKToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9w
U2Vzc2lvbiBpc1Jlc3RyaWN0ZWRUb0RyYWdnaW5nQXBwbGljYXRpb25dKToKKyAgICAgICAgKC1b
TW9ja0RyYWdEcm9wU2Vzc2lvbiBoYXNJdGVtc0NvbmZvcm1pbmdUb1R5cGVJZGVudGlmaWVyczpd
KToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9wU2Vzc2lvbiBjYW5Mb2FkT2JqZWN0c09mQ2xhc3M6
XSk6CisgICAgICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gY2FuTG9hZE9iamVjdHNPZkNsYXNz
ZXM6XSk6CisgICAgICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gaXRlbXNdKToKKyAgICAgICAg
KC1bTW9ja0RyYWdEcm9wU2Vzc2lvbiBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bTW9ja0RyYWdE
cm9wU2Vzc2lvbiBsb2NhdGlvbkluVmlldzpdKToKKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRp
b25TZXNzaW9uIGluaXRXaXRoUHJvdmlkZXJzOmxvY2F0aW9uOndpbmRvdzpdKToKKyAgICAgICAg
KC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIHNlc3Npb25dKToKKyAgICAgICAgKC1bTW9ja0Rh
dGFPcGVyYXRpb25TZXNzaW9uIGlzTG9jYWxdKToKKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRp
b25TZXNzaW9uIHByb2dyZXNzXSk6CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lv
biBzZXRQcm9ncmVzc0luZGljYXRvclN0eWxlOl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJh
dGlvblNlc3Npb24gcHJvZ3Jlc3NJbmRpY2F0b3JTdHlsZV0pOgorICAgICAgICAoLVtNb2NrRGF0
YU9wZXJhdGlvblNlc3Npb24gb3BlcmF0aW9uTWFza10pOgorICAgICAgICAoLVtNb2NrRGF0YU9w
ZXJhdGlvblNlc3Npb24gbG9jYWxEcmFnU2Vzc2lvbl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9w
ZXJhdGlvblNlc3Npb24gaGFzSXRlbXNDb25mb3JtaW5nVG9UeXBlSWRlbnRpZmllcjpdKToKKyAg
ICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGNhbkNyZWF0ZUl0ZW1zT2ZDbGFzczpd
KToKKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGxvYWRPYmplY3RzT2ZDbGFz
czpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBp
bml0V2l0aFdpbmRvdzpdKToKKyAgICAgICAgKC1bTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24g
bG9jYWxPcGVyYXRpb25NYXNrXSk6CisgICAgICAgICgtW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNz
aW9uIGV4dGVybmFsT3BlcmF0aW9uTWFza10pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0
aW9uU2Vzc2lvbiBzZXNzaW9uXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRv
ciBfYWR2YW5jZVByb2dyZXNzXSk6CisKIDIwMTctMDYtMTUgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ10gUmVtb3ZpbmcgYSBNZWRpYVN0cmVhbVRy
YWNrIGZyb20gYSBNZWRpYVN0cmVhbSByZXBvcnRzIG5vIHJlY29yZGluZyB0byBXZWJLaXQgY2xp
ZW50cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNzg0NzY1NzQ5YmQwZTZmNTU0Y2Q1ZmJlOTEz
ZjRlMTliOTgwY2RkMC4uZjVhOTE0YmZhNGFjYTQ0YjY5NTBhNzY5MjMyOTFlNTFmOThiYjk3MSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDkgQEAgRU5BQkxFX1ZBUklBVElP
Tl9GT05UU19JRl9OT1RfID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyk7CiBF
TkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJMRV9WQVJJQVRJT05fRk9OVFM7
CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7CiAKLUZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBM
RV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVAp
ICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09S
RCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJM
RV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChF
TkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIp
ICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklC
VVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVU
RVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NP
TkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJ
TUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRF
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FH
RSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9T
VUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05f
TU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VC
X0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChF
TkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcp
ICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAk
KEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFC
TEVfWFNMVCk7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVf
RFJBR19TVVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMTEq
XSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBo
b25lb3MxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFCTEVfREFUQV9JTlRFUkFD
VElPTltzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwor
CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElO
RykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChF
TkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZB
U19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVf
Q1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVf
Q1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJ
U0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJN
SVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQo
RU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
X0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BP
VkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJT
RUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZ
Qk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRU
RVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVE
SUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJF
QU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VT
RV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJM
RV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1Qp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFV
RVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJM
RV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVE
SUEpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVf
REFUQV9JTlRFUkFDVElPTik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhZmU3YTI2NGE2
Mjk2YzE4NmQ5MWFiMzBlYjQyZDdiYTEzMWVhNDEuLjc1ZmNkMjdmZjUwMmEwNjhkOTY2ODA5OWNi
ZmE2YTg0Zjc0YjRjZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjIsNiArNjIyLDE4
IEBACiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNl
aXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9t
RGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJCUVDQTY4MENFMUU2OENDMDkwMDczMUQy
MCAvKiBTdHJpbmdVdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFQ0E2ODBDRDFFNjhDQzA5MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVz
Lm1tICovOyB9OwogCQlGNDE1MDg2RDFEQTA0MEM1MDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1j
bGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0
bWwgKi87IH07CisJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAvKiBhdXRvZm9jdXMtY29udGVu
dGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8qIGF1dG9mb2N1cy1jb250ZW50
ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tn
cm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDFBQjk5NzFFRjQ2OTJDMDA4M0ZBMDggLyog
YmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OworCQlGNDFBQjlBMTFF
RjQ2OTZCMDA4M0ZBMDggLyogY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MUFCOTlD
MUVGNDY5MkMwMDgzRkEwOCAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwgKi87
IH07CisJCUY0MUFCOUEyMUVGNDY5NkIwMDgzRkEwOCAvKiBkaXYtYW5kLWxhcmdlLWltYWdlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQxQUI5OUUxRUY0NjkyQzAwODNGQTA4IC8qIGRpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCAqLzsg
fTsKKwkJRjQxQUI5QTMxRUY0Njk2QjAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5
OUIxRUY0NjkyQzAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgKi87IH07CisJCUY0MUFC
OUE0MUVGNDY5NkIwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5
OTkxRUY0NjkyQzAwODNGQTA4IC8qIGltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsg
fTsKKwkJRjQxQUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCAqLzsgfTsK
KwkJRjQxQUI5QTYxRUY0Njk2QjAwODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTYx
RUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi87IH07CisJCUY0MUFCOUE3
MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUQxRUY0Njky
QzAwODNGQTA4IC8qIGxpbmstYW5kLXRhcmdldC1kaXYuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTgx
RUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTQxRUY0NjkyQzAw
ODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgKi87IH07CisJCUY0MUFCOUE5MUVGNDY5
NkIwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUExRUY0NjkyQzAwODNGQTA4IC8q
IHByZXZlbnQtc3RhcnQuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QUExRUY0Njk2QjAwODNGQTA4IC8q
IHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTUxRUY0NjkyQzAwODNGQTA4IC8qIHRleHRhcmVh
LXRvLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJn
ZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJCUY0NDUxQzc2MUVC
OEZEODkwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDUxQzc1
MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICov
OyB9OwogCQlGNDUzOEVGNzFFODQ3M0U2MDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1
MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICovOyB9OwpAQCAt
NzExLDYgKzcyMywxOCBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwog
CQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlGNDFBQjk5RjFFRjQ2
OTZCMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCUY0MUFCOUEwMUVGNDY5NkIwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWlt
YWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5
QTExRUY0Njk2QjAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDFBQjlBMjFFRjQ2OTZCMDA4M0ZBMDggLyogZGl2
LWFuZC1sYXJnZS1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUEz
MUVGNDY5NkIwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCUY0MUFCOUE0MUVGNDY5NkIwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVk
aXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTUxRUY0Njk2QjAw
ODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCUY0MUFCOUE2MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFuZC1pbnB1dC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUE3MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFu
ZC10YXJnZXQtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTgxRUY0
Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJRjQxQUI5QTkxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDFBQjlBQTFFRjQ2OTZCMDA4M0ZBMDggLyogdGV4
dGFyZWEtdG8taW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDREM5NDQyRjFF
RjIwNUQ2MDA1OUMzQzQgLyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAvKiByaWNoLWFuZC1w
bGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUz
MjAwRkE3NkY2IC8qIG9mZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTE1NjAsNiArMTU4NCwxOCBAQAogCQlFQ0E2ODBDRDFFNjhD
QzA5MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU3RyaW5nVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGM0ZDM0VFMjEzNjc4QjczMDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBh
dGggPSBsaWJndGVzdC5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlG
NDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gInBsYXktYXVkaW8tb24tY2xpY2suaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFn
ZS1hbmQtdGV4dGFyZWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTk0MUVGNDY5MkMwMDgzRkEwOCAv
KiBwcmV2ZW50LW9wZXJhdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInByZXZlbnQtb3BlcmF0aW9uLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5NTFFRjQ2OTJDMDA4M0ZB
MDggLyogdGV4dGFyZWEtdG8taW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0ZXh0YXJlYS10by1pbnB1
dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OTYxRUY0NjkyQzAw
ODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGluay1hbmQtaW5wdXQu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTk3MUVGNDY5MkMwMDgz
RkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
YmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8qIGF1dG9mb2N1cy1jb250ZW50
ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5OTFFRjQ2OTJDMDA4M0ZBMDgg
LyogaW1hZ2UtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLWFuZC1j
b250ZW50ZWRpdGFibGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFC
OTlBMUVGNDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicHJl
dmVudC1zdGFydC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OUIx
RUY0NjkyQzAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZmlsZS11
cGxvYWRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTlDMUVG
NDY5MkMwMDgzRkEwOCAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OUQxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLXRhcmdl
dC1kaXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2LWFu
ZC1sYXJnZS1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImRpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAv
KiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHBhdGggPSAi
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEg
LyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJ0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJl
ZC1zcXVhcmUucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gImxhcmdlLXJlZC1zcXVhcmUucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NTksNiArMTk5NSwxOCBAQAogCQlBMTZGNjZCODFDNDBF
OUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlGNDFBQjk5ODFFRjQ2OTJDMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNv
bnRlbnRlZGl0YWJsZS5odG1sICovLAorCQkJCUY0MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBi
YWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQxQUI5OUMxRUY0
NjkyQzAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAqLywKKwkJ
CQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sICov
LAorCQkJCUY0MUFCOTlCMUVGNDY5MkMwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1sICov
LAorCQkJCUY0MUFCOTk5MUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRh
YmxlLmh0bWwgKi8sCisJCQkJRjQxQUI5OTMxRUY0NjkyQzAwODNGQTA4IC8qIGltYWdlLWFuZC10
ZXh0YXJlYS5odG1sICovLAorCQkJCUY0MUFCOTk2MUVGNDY5MkMwMDgzRkEwOCAvKiBsaW5rLWFu
ZC1pbnB1dC5odG1sICovLAorCQkJCUY0MUFCOTlEMUVGNDY5MkMwMDgzRkEwOCAvKiBsaW5rLWFu
ZC10YXJnZXQtZGl2Lmh0bWwgKi8sCisJCQkJRjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHBy
ZXZlbnQtb3BlcmF0aW9uLmh0bWwgKi8sCisJCQkJRjQxQUI5OUExRUY0NjkyQzAwODNGQTA4IC8q
IHByZXZlbnQtc3RhcnQuaHRtbCAqLywKKwkJCQlGNDFBQjk5NTFFRjQ2OTJDMDA4M0ZBMDggLyog
dGV4dGFyZWEtdG8taW5wdXQuaHRtbCAqLywKIAkJCQlGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEg
LyogYXBwbGUuZ2lmICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUwMDI2Q0I4QSAvKiBBbGxBaGVt
LnN2ZyAqLywKIAkJCQk1QzlFNTkzRTFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNo
ZS5kYiAqLywKQEAgLTI2NzQsNyArMjcyMiw2IEBACiAJCQkJOERENzZGOUIwNDg2QUE3NjAwRDk2
QjVFIC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJOERENzZGOUUwNDg2QUE3NjAwRDk2QjVFIC8qIENv
cHlGaWxlcyAqLywKIAkJCQlCQ0I5RjRGQjExMjM4NEMwMDBBMTM3RTAgLyogQ29weSBSZXNvdXJj
ZXMgKi8sCi0JCQkJRjQ3MUNCOEIxRTU2NUMwRjAwMjgwNTVDIC8qIENvcHkgYWRkaXRpb25hbCBy
ZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CkBAIC0yNzg1LDIz
ICsyODMyLDYgQEAKIAkJfTsKIC8qIEVuZCBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24g
Ki8KIAotLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJRjQ3
MUNCOEIxRTU2NUMwRjAwMjgwNTVDIC8qIENvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJ
CSk7Ci0JCQluYW1lID0gIkNvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMiOwotCQkJb3V0cHV0UGF0
aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiQURESVRJT05BTF9S
RVNPVVJDRVNfUEFUSD1cInVzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy9SZXNvdXJj
ZXMvVGVzdFdlYktpdEFQSVwiXG5ERVNUSU5BVElPTl9QQVRIPVwiJFRBUkdFVF9CVUlMRF9ESVIv
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXNcIlxuaWYgWyAtZCAkVEFSR0VUX0JVSUxEX0RJUi8kQURE
SVRJT05BTF9SRVNPVVJDRVNfUEFUSCBdOyB0aGVuXG4gICAgY3AgJFRBUkdFVF9CVUlMRF9ESVIv
JEFERElUSU9OQUxfUkVTT1VSQ0VTX1BBVEgvKiAkREVTVElOQVRJT05fUEFUSFxuZWxpZiBbIC1k
ICRTREtST09ULyRBRERJVElPTkFMX1JFU09VUkNFU19QQVRIIF07IHRoZW5cbiAgICBjcCAkU0RL
Uk9PVC8kQURESVRJT05BTF9SRVNPVVJDRVNfUEFUSC8qICRERVNUSU5BVElPTl9QQVRIXG5maSI7
Ci0JCX07Ci0vKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQogLyog
QmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCQk3QzgzREU5NjFEMEE1OTBD
MDBGRUJDRjMgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNl
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0
b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUw
MzYzNWY5NGUzMGJkN2Y5ZmUzNDQyM2MwN2U4NTgxMWM0ZWRiOWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvZm9jdXMtY29udGVu
dGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4K
KyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAg
ICNzb3VyY2UsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAg
ICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAg
ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsK
KyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAg
IDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlIGlk
PSJzb3VyY2UiPkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9
ImVkaXRvciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBl
KGV2ZW50KSB7CisgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJk
cmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIo
ImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUpOworCisgICAgbGV0IHRleHQgPSBzb3VyY2UuY2hp
bGROb2Rlc1swXTsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRleHQsIDAs
IHRleHQsIHRleHQuZGF0YS5sZW5ndGgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dyb3VuZC1p
bWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjljOTg5ODQ1Y2I5N2M1NGE1ZDBmZGI5ZTNkMzdkYjM5YTE0ZjgyZmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWlt
YWdlLWxpbmstYW5kLWlucHV0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGhlYWQ+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQor
CisgICAgICAgIGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAg
ICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAg
ICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICBhIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpY29uLnBuZyk7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7
CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxh
Y2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5PgorICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUuY29tIj48L2E+PC9kaXY+
CisgICAgPGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48L2Rpdj4KKyAgICA8c2NyaXB0
PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICB3ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUpOworICAgIH0K
KworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10
ZXh0YXJlYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNDg5ZmMzOTQ2NDc1ZmY5NDhmYWZmZDUzODJkMDcy
NmYzOGIyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9jb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwKQEAgLTAsMCArMSw0
MCBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgICNzb3VyY2UsICNlZGl0b3IgeworICAgICAg
ICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAg
ICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cisg
ICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sg
MXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5
PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJzb3VyY2UiPkhlbGxvIHdvcmxkPC9kaXY+
CisgICAgPHRleHRhcmVhIGNvbnRlbnRlZGl0YWJsZSBpZD0iZWRpdG9yIj48L3RleHRhcmVhPgor
ICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcG9zdEV2ZW50VHlwZShldmVudCkgeworICAgICAg
IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlw
ZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZl
bnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2
ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2
ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RF
dmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0
RXZlbnRUeXBlKTsKKworICAgIGxldCB0ZXh0ID0gc291cmNlLmNoaWxkTm9kZXNbMF07CisgICAg
Z2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAwLCB0ZXh0LCB0ZXh0LmRhdGEu
bGVuZ3RoKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Rpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Rpdi1hbmQtbGFyZ2UtaW1hZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40Y2EwMTllMmFiNmYzMTY3NjhhMTMxM2Q2MDZiMmRiNGY2NDU3Njcy
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4w
Ij4KKzxzdHlsZT4KK2h0bWwsIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgICBmb250LXNpemU6
IDEuMmVtOworICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3Jv
bGxpbmc6IHRvdWNoOworfQorCisjdGFyZ2V0IHsKKyAgICB3aWR0aDogMjAwMHB4OworICAgIGhl
aWdodDogMzAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKK30KKworY29kZSB7Cisg
ICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKworPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4K
KzxpbWcgc3JjPSJsYXJnZS1yZWQtc3F1YXJlLnBuZyI+PC9pbWc+CisKKzxzY3JpcHQ+Cit0YXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERl
ZmF1bHQoKSk7Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKK3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwg
ZXZlbnQgPT4geworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGNvZGU+UEFTUzwvY29kZT4iOwor
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZmlsZS11cGxvYWRpbmcuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ZpbGUtdXBsb2FkaW5n
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjc3NDk1ODcxMzBmNzlkZWMwYmNmYjNjNmJmMzAwODVlZTNmNDg4
MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2ZpbGUtdXBsb2FkaW5nLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGhlYWQ+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xIj4KKyAgICA8c3R5bGU+CisgICAgYm9keSwgaHRtbCB7CisgICAgICAgIHdpZHRoOiAx
MDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAg
Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW07CisgICAgfQorCisgICAgI2lucHV0LCAjdXBsb2Fk
IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
IGJvcmRlcjogMXB4IGJsdWUgZGFzaGVkOworICAgIH0KKworICAgICNvdXRwdXQgeworICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZm9udC1zaXpl
OiAxZW07CisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+
PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJpbnB1dCI+PC9pbnB1dD48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJ1cGxvYWQiPjwvZGl2PgorICAgIDxkaXY+PGgzPlVwbG9hZGVkIGZpbGUgdHlwZXM6IDwvaDM+
PHRleHRhcmVhIGRpc2FibGVkIGlkPSJvdXRwdXQiPjwvdGV4dGFyZWE+PC9kaXY+CisgICAgPHNj
cmlwdD4KKyAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7CisgICAg
ICAgIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1RvQXBwKGlucHV0LmZpbGVzKTsKKyAgICB9KTsKKwor
ICAgIHVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBldmVudCA9PiBldmVudC5w
cmV2ZW50RGVmYXVsdCgpKTsKKyAgICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIi
LCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKKyAgICB1cGxvYWQuYWRkRXZlbnRM
aXN0ZW5lcigiZHJvcCIsIGV2ZW50ID0+IHsKKyAgICAgICAgc2VuZFVwbG9hZGVkRmlsZVR5cGVz
VG9BcHAoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTsKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1Rv
QXBwKGZpbGVzKQorICAgIHsKKyAgICAgICAgb3V0cHV0LnZhbHVlID0gQXJyYXkuZnJvbShmaWxl
cykubWFwKGZpbGUgPT4gZmlsZS50eXBlKS5zb3J0KCkuam9pbigiLCAiKTsKKyAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9pbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2M3ZGU3M2I4YjFhY2UyMTA5MTRkMDFiZDM4ZWFlNjljZGQzNDFkYQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2ltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aGVhZD4K
KyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAl
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAg
ICAgICB9CisKKyAgICAgICAgI3NvdXJjZSwgI2VkaXRvciB7CisgICAgICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICB9CisKKyAgICAgICAg
I2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAg
fQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxpbWcgaWQ9
InNvdXJjZSIgc3JjPSJpY29uLnBuZyI+PC9pbWc+PC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRp
dGFibGUgaWQ9ImVkaXRvciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0
RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50
TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50
TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvaW1hZ2UtYW5kLXRleHRhcmVhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdlNmZhYTU5NTQz
NWRjMTBkYWMzYzkwZWNhOTU2ZGEwYjk1OTk1OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAg
ICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICAjc291cmNlLCAjZWRpdG9y
IHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxh
Y2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5PgorICAgIDxkaXY+PGltZyBpZD0ic291cmNlIiBzcmM9Imljb24ucG5nIj48L2ltZz48L2Rp
dj4KKyAgICA8dGV4dGFyZWEgY29udGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvdGV4dGFyZWE+
CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAg
ICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQu
dHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0
RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9z
dEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9z
dEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBv
c3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBw
b3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBjYjkzMWRhMDEzYmE0NDU4Yjg0OWI5MDk0ZWI3NzVlMTZiNjUzY2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
aW5rLWFuZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAg
ICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAg
ICAgICBhLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAg
ICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7Cisg
ICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8
L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0dHBzOi8vd3d3
LmFwcGxlLmNvbSI+SGVsbG8gd29ybGQ8L2E+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImVk
aXRvciI+PC9pbnB1dD48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVu
dFR5cGUoZXZlbnQpIHsKKyAgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0
ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0
ZW5lcigiZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlz
dGVuZXIoImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGlu
ay1hbmQtdGFyZ2V0LWRpdi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGluay1hbmQtdGFyZ2V0LWRpdi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmYWQ2NjkxYWMxMTg3
MjMyN2RkZTIwMWNmMWU4Yjk0ZTkxZjBlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwKQEAg
LTAsMCArMSwzMyBAQAorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgorPHN0eWxlPgorYm9keSB7CisgICAgd2lkdGg6
IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIG1hcmdpbjogMDsKK30KKworYSwgI3Rhcmdl
dCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBmb250LXNpemU6
IDIwMHB4OworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKyN0YXJnZXQgeworICAgIGJv
cmRlcjogYmxhY2sgMXB4IHNvbGlkOworfQorCitjb2RlIHsKKyAgICBjb2xvcjogZ3JlZW47Cit9
Cis8L3N0eWxlPgorPGRpdj48YSBocmVmPSJodHRwczovL3d3dy5hcHBsZS5jb20iPkhlbGxvIHdv
cmxkPC9hPjwvZGl2PgorPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxzY3JpcHQ+Cit0YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1
bHQoKSk7Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpKTsKK3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZXZl
bnQgPT4geworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGNvZGU+UEFTUzwvY29kZT4iOworICAg
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1vcGVyYXRpb24uaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtb3BlcmF0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3NmU2Nzc0NTdlZDFhMDY4NTJhZDNjNTcyMGRhMWI1ZTBm
NTljMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cisg
ICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAg
ICAgfQorCisgICAgICAgIGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsK
KyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAj
ZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9
CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGEgaHJlZj0i
aHR0cHM6Ly93d3cuYXBwbGUuY29tIj5IZWxsbyB3b3JsZDwvYT48L2Rpdj4KKyAgICA8ZGl2Pjx0
ZXh0YXJlYSBvbmRyb3A9InJldHVybiBmYWxzZSIgaWQ9ImVkaXRvciI+PC90ZXh0YXJlYT48L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAg
ICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVu
dC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBv
c3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBw
b3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBw
b3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwg
cG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIs
IHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1zdGFydC5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1zdGFydC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY0MDUyMDEyZDUyMzg5ZWIwNzVkZmRiZDUzZjBjNGEzZjIwMjQzNGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9w
cmV2ZW50LXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHls
ZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAg
ICAgIGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBo
ZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAg
IHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAg
ICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwv
c3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGEgb25kcmFnc3RhcnQ9InJldHVy
biBmYWxzZSIgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUuY29tIj5IZWxsbyB3b3JsZDwvYT48L2Rp
dj4KKyAgICA8ZGl2Pjx0ZXh0YXJlYSBpZD0iZWRpdG9yIj48L3RleHRhcmVhPjwvZGl2PgorICAg
IDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcG9zdEV2ZW50VHlwZShldmVudCkgeworICAgICAgICB3
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUp
OworICAgIH0KKworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50
VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVu
dFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVu
dFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCBwb3N0RXZl
bnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgcG9zdEV2
ZW50VHlwZSk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS90ZXh0YXJlYS10by1pbnB1dC5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFyZWEtdG8taW5wdXQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zM2I4ZjljYzJkY2FjNjhhMGYwYzE2NWE5YjU2YWIzNGM1ZjY4MjFmCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
dGV4dGFyZWEtdG8taW5wdXQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aGVhZD4KKyAgICA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEuMCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdp
bjogMDsKKyAgICAgICAgfQorCisgICAgICAgICNzb3VyY2UsICNlZGl0b3IgeworICAgICAgICAg
ICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAg
Zm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAg
ICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4
IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5Pgor
ICAgIDx0ZXh0YXJlYSBpZD0ic291cmNlIj5IZWxsbyB3b3JsZDwvdGV4dGFyZWE+CisgICAgPGlu
cHV0IGlkPSJlZGl0b3IiPjwvaW5wdXQ+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0
RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50
TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50
TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBzb3VyY2Uuc2VsZWN0
aW9uU3RhcnQgPSAwOworICAgIHNvdXJjZS5zZWxlY3Rpb25FbmQgPSBzb3VyY2UudmFsdWUubGVu
Z3RoOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4IDcwOTBmN2I4OTk0OGRjN2I2
ZjE2M2I2YmY0Njg0ZjFiNTYzOTAwYjEuLjljOWJlNDdlMTIxYTMzOTRkYTM3MzM3YzliYTNjYzEz
YTFlYzdjNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IubW0KQEAgLTMwLDYgKzMwLDEwIEBACiAKICNpbXBvcnQgIkluc3RhbmNl
TWV0aG9kU3dpenpsZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0
IDxVSUtpdC9VSURyYWdJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnSXRlbS5o
PgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnU2Vzc2lvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlEcmFn
Z2luZy5oPgogI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KQEAgLTQyLDkgKzQ2LDE5MSBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJQXBwbGljYXRpb25J
bnN0YW50aWF0ZVNpbmdsZXRvbiwgdm9pZCwgKENsYXNzIHNpbmdsZXRvbkNsYXNzKQogCiB1c2lu
ZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
ICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3JBZGRpdGlvbnMubW0+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9EYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3JBZGRpdGlvbnMubW0+Ci0jZW5kaWYKK0BpbnRlcmZhY2UgTW9ja0RyYWdEcm9w
U2Vzc2lvbiA6IE5TT2JqZWN0IDxVSURyYWdEcm9wU2Vzc2lvbj4geworQHByaXZhdGUKKyAgICBS
ZXRhaW5QdHI8TlNBcnJheT4gX21vY2tJdGVtczsKKyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IF93
aW5kb3c7Cit9CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBtb2NrTG9jYXRpb25Jbldp
bmRvdzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE1vY2tEcmFnRHJvcFNlc3Npb24KKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoSXRlbXM6KE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4qKWl0ZW1z
IGxvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uSW5XaW5kb3cgd2luZG93OihVSVdpbmRvdyAqKXdp
bmRvdworeworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7CisgICAgICAgIF9tb2NrSXRl
bXMgPSBpdGVtczsKKyAgICAgICAgX21vY2tMb2NhdGlvbkluV2luZG93ID0gbG9jYXRpb25Jbldp
bmRvdzsKKyAgICAgICAgX3dpbmRvdyA9IHdpbmRvdzsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKEJPT0wpYWxsb3dzTW92ZU9wZXJhdGlvbgoreworICAgIHJldHVybiBZRVM7Cit9
CisKKy0gKEJPT0wpaXNSZXN0cmljdGVkVG9EcmFnZ2luZ0FwcGxpY2F0aW9uCit7CisgICAgcmV0
dXJuIE5POworfQorCistIChCT09MKWhhc0l0ZW1zQ29uZm9ybWluZ1RvVHlwZUlkZW50aWZpZXJz
OihOU0FycmF5PE5TU3RyaW5nICo+ICopdHlwZUlkZW50aWZpZXJzCit7CisgICAgZm9yIChOU1N0
cmluZyAqdHlwZUlkZW50aWZpZXIgaW4gdHlwZUlkZW50aWZpZXJzKSB7CisgICAgICAgIEJPT0wg
aGFzSXRlbUNvbmZvcm1pbmdUb1R5cGUgPSBOTzsKKyAgICAgICAgZm9yIChVSURyYWdJdGVtICpp
dGVtIGluIHNlbGYuaXRlbXMpCisgICAgICAgICAgICBoYXNJdGVtQ29uZm9ybWluZ1RvVHlwZSB8
PSBbW2l0ZW0uaXRlbVByb3ZpZGVyIHJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllcnNdIGNvbnRhaW5z
T2JqZWN0OnR5cGVJZGVudGlmaWVyXTsKKyAgICAgICAgaWYgKCFoYXNJdGVtQ29uZm9ybWluZ1Rv
VHlwZSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisgICAgcmV0dXJuIFlFUzsKK30K
KworLSAoQk9PTCljYW5Mb2FkT2JqZWN0c09mQ2xhc3M6KENsYXNzPFVJSXRlbVByb3ZpZGVyUmVh
ZGluZz4pYUNsYXNzCit7CisgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRlbXMp
IHsKKyAgICAgICAgaWYgKFtpdGVtLml0ZW1Qcm92aWRlciBjYW5Mb2FkT2JqZWN0T2ZDbGFzczph
Q2xhc3NdKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJuIE5POwor
fQorCistIChCT09MKWNhbkxvYWRPYmplY3RzT2ZDbGFzc2VzOihOU0FycmF5PENsYXNzPFVJSXRl
bVByb3ZpZGVyUmVhZGluZz4+ICopY2xhc3NlcworeworICAgIGZvciAoQ2xhc3M8VUlJdGVtUHJv
dmlkZXJSZWFkaW5nPiBhQ2xhc3MgaW4gY2xhc3NlcykgeworICAgICAgICBCT09MIGNhbkxvYWQg
PSBOTzsKKyAgICAgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRlbXMpCisgICAg
ICAgICAgICBjYW5Mb2FkIHw9IFtpdGVtLml0ZW1Qcm92aWRlciBjYW5Mb2FkT2JqZWN0T2ZDbGFz
czphQ2xhc3NdOworICAgICAgICBpZiAoIWNhbkxvYWQpCisgICAgICAgICAgICByZXR1cm4gTk87
CisgICAgfQorICAgIHJldHVybiBZRVM7Cit9CisKKy0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAq
KWl0ZW1zCit7CisgICAgcmV0dXJuIF9tb2NrSXRlbXMuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0
SXRlbXM6KE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7CisgICAgX21vY2tJdGVtcyA9
IGl0ZW1zOworfQorCistIChDR1BvaW50KWxvY2F0aW9uSW5WaWV3OihVSVZpZXcgKil2aWV3Cit7
CisgICAgcmV0dXJuIFtfd2luZG93IGNvbnZlcnRQb2ludDpfbW9ja0xvY2F0aW9uSW5XaW5kb3cg
dG9WaWV3OnZpZXddOworfQorCitAZW5kCisKK05TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0
aW9uRW50ZXJFdmVudE5hbWUgPSBAImRyYWdlbnRlciI7CitOU1N0cmluZyAqIGNvbnN0IERhdGFJ
bnRlcmFjdGlvbk92ZXJFdmVudE5hbWUgPSBAImRyYWdvdmVyIjsKK05TU3RyaW5nICogY29uc3Qg
RGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFtZSA9IEAiZHJvcCI7CitOU1N0
cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvbkxlYXZlRXZlbnROYW1lID0gQCJkcmFnbGVhdmUi
OworTlNTdHJpbmcgKiBjb25zdCBEYXRhSW50ZXJhY3Rpb25TdGFydEV2ZW50TmFtZSA9IEAiZHJh
Z3N0YXJ0IjsKKworQGludGVyZmFjZSBNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gOiBNb2NrRHJh
Z0Ryb3BTZXNzaW9uIDxVSURyb3BTZXNzaW9uPgorQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
ZykgaWQgbG9jYWxDb250ZXh0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTW9ja0RhdGFPcGVy
YXRpb25TZXNzaW9uCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFByb3ZpZGVyczooTlNBcnJh
eTxVSUl0ZW1Qcm92aWRlciAqPiAqKXByb3ZpZGVycyBsb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
bkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBhdXRvIGl0ZW1zID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChVSUl0ZW1Q
cm92aWRlciAqaXRlbVByb3ZpZGVyIGluIHByb3ZpZGVycykKKyAgICAgICAgW2l0ZW1zIGFkZE9i
amVjdDpbW1tVSURyYWdJdGVtIGFsbG9jXSBpbml0V2l0aEl0ZW1Qcm92aWRlcjppdGVtUHJvdmlk
ZXJdIGF1dG9yZWxlYXNlXV07CisKKyAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoSXRlbXM6aXRl
bXMuZ2V0KCkgbG9jYXRpb246bG9jYXRpb25JbldpbmRvdyB3aW5kb3c6d2luZG93XTsKK30KKwor
LSAoVUlEcmFnZ2luZ1Nlc3Npb24gKilzZXNzaW9uCit7CisgICAgcmV0dXJuIG5pbDsKK30KKwor
LSAoQk9PTClpc0xvY2FsCit7CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAoTlNQcm9ncmVzcyAq
KXByb2dyZXNzCit7CisgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jlc3NXaXRo
VG90YWxVbml0Q291bnQ6MTAwXTsKK30KKworLSAodm9pZClzZXRQcm9ncmVzc0luZGljYXRvclN0
eWxlOihVSURyb3BTZXNzaW9uUHJvZ3Jlc3NJbmRpY2F0b3JTdHlsZSlwcm9ncmVzc0luZGljYXRv
clN0eWxlCit7Cit9CisKKy0gKFVJRHJvcFNlc3Npb25Qcm9ncmVzc0luZGljYXRvclN0eWxlKXBy
b2dyZXNzSW5kaWNhdG9yU3R5bGUKK3sKKyAgICByZXR1cm4gVUlEcm9wU2Vzc2lvblByb2dyZXNz
SW5kaWNhdG9yU3R5bGVOb25lOworfQorCistIChOU1VJbnRlZ2VyKW9wZXJhdGlvbk1hc2sKK3sK
KyAgICByZXR1cm4gMDsKK30KKworLSAoaWQgPFVJRHJhZ1Nlc3Npb24+KWxvY2FsRHJhZ1Nlc3Np
b24KK3sKKyAgICByZXR1cm4gbmlsOworfQorCistIChCT09MKWhhc0l0ZW1zQ29uZm9ybWluZ1Rv
VHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpY2FuQ3JlYXRlSXRl
bXNPZkNsYXNzOihDbGFzczxVSUl0ZW1Qcm92aWRlclJlYWRpbmc+KWFDbGFzcworeworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOTzsKK30KKworLSAoTlNQcm9ncmVzcyAq
KWxvYWRPYmplY3RzT2ZDbGFzczooQ2xhc3M8TlNJdGVtUHJvdmlkZXJSZWFkaW5nPilhQ2xhc3Mg
Y29tcGxldGlvbjoodm9pZCheKShOU0FycmF5PF9fa2luZG9mIGlkIDxOU0l0ZW1Qcm92aWRlclJl
YWRpbmc+PiAqb2JqZWN0cykpY29tcGxldGlvbgoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBuaWw7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBNb2NrRGF0YUludGVy
YWN0aW9uU2Vzc2lvbiA6IE1vY2tEcmFnRHJvcFNlc3Npb24gPFVJRHJhZ1Nlc3Npb24+CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBpZCBsb2NhbENvbnRleHQ7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc3Ryb25nKSBpZCBjb250ZXh0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTW9j
a0RhdGFJbnRlcmFjdGlvblNlc3Npb24KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2luZG93
OihVSVdpbmRvdyAqKXdpbmRvdworeworICAgIHJldHVybiBbc3VwZXIgaW5pdFdpdGhJdGVtczpA
WyBdIGxvY2F0aW9uOkNHUG9pbnRaZXJvIHdpbmRvdzp3aW5kb3ddOworfQorCistIChOU1VJbnRl
Z2VyKWxvY2FsT3BlcmF0aW9uTWFzaworeworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiAwOworfQorCistIChOU1VJbnRlZ2VyKWV4dGVybmFsT3BlcmF0aW9uTWFzaworewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCistIChpZClzZXNz
aW9uCit7CisgICAgcmV0dXJuIG5pbDsKK30KKworQGVuZAogCiBzdGF0aWMgZG91YmxlIHByb2dy
ZXNzSW5jcmVtZW50U3RlcCA9IDAuMDMzOwogc3RhdGljIGRvdWJsZSBwcm9ncmVzc1RpbWVTdGVw
ID0gMC4wMTY7CkBAIC0yMTIsNyArMzk4LDcgQEAgc3RhdGljIE5TQXJyYXkgKmRhdGFJbnRlcmFj
dGlvbkV2ZW50TmFtZXMoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgZm9yIChXS0RhdGFJbnRlcmFjdGlvbkl0ZW0gKml0ZW0gaW4gaXRlbXMpCisgICAgICAgIGZv
ciAoVUlEcmFnSXRlbSAqaXRlbSBpbiBpdGVtcykKICAgICAgICAgICAgIFtpdGVtUHJvdmlkZXJz
IGFkZE9iamVjdDppdGVtLml0ZW1Qcm92aWRlcl07CiAKICAgICAgICAgX2RhdGFPcGVyYXRpb25T
ZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5pdFdp
dGhQcm92aWRlcnM6aXRlbVByb3ZpZGVycyBsb2NhdGlvbjpzZWxmLl9jdXJyZW50TG9jYXRpb24g
d2luZG93Oltfd2ViVmlldyB3aW5kb3ddXSk7Cg==
</data>
<flag name="review"
          id="334053"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313158</attachid>
            <date>2017-06-16 16:54:59 -0700</date>
            <delta_ts>2017-06-16 17:33:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173366-20170616165457.patch</filename>
            <type>text/plain</type>
            <size>169450</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NzdiNWQ0YWVmNWMzYTJlMDIzMTI5YzM5ZGE4NTFkYWU5Mjc4NDA1Li5jMjMxOWM1NDZlNmIwZDBm
NmVlNmVmYWY2OWMwZWM3NjE0NTg2NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TIERuRF0gVXBzdHJlYW0gaU9TIGRyYWcgYW5kIGRyb3AgaW1w
bGVtZW50YXRpb24gaW50byBPcGVuU291cmNlIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMjc2NzAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
IEludHJvZHVjZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiBhbmQgRU5BQkxFX0RSQUdfU1VQUE9S
VCB0byBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE3LTA2LTE2ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBmYXN0IHBhdGggZm9y
IE9iamVjdC5hc3NpZ24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKaW5kZXggNzg4NGUwM2JlZThkM2YwN2MzZjg1YTExNjI3NzdlYmI5NTMz
MTY1Yi4uOTU5NjEyNjUzZTNmMjhlYjMwOTE3ZjFjOWU5Nzk4YjYyNTJiNTMzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wNi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TIERuRF0gVXBzdHJlYW0gaU9TIGRyYWcgYW5kIGRyb3AgaW1w
bGVtZW50YXRpb24gaW50byBPcGVuU291cmNlIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMjc2NzAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
IERlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIGFzIDEgYnkgZGVmYXVsdCBhbmQgMCBmb3IgaU9T
LCBhbmQgZGVmaW5lIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OIGFzIDAgYnkgZGVmYXVsdC4KKyAg
ICAgICAgVGhlc2UgYXJlIG92ZXJyaWRkZW4gdG8gYm90aCBiZSAxIGZvciBpT1MgMTErIGluIHRo
ZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyB3aXRoaW4gZWFjaCBpbmRpdmlkdWFsIHByb2plY3Qu
CisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNy0wNi0xNSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0eXBvIGluIFhQQ1NQSS5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNTJlZjllZDhlNzZmNDFlYzMwYWYxZWI4ZjAwNTljYWZkNDA2M2Y5NC4uNzEzNzQz
N2I4NTEzMTQ3OGMxYWJiM2NlM2FmZWI3NTJjZWI0NmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDYxIEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1l
bnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMy
NzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW92
ZXMgYWxsIGRyYWcgYW5kIGRyb3AgbG9naWMgcHJldmlvdXNseSBoaWRkZW4gYmVoaW5kIFdlYktp
dEFkZGl0aW9ucyBpbnRvIHRoZSBvcGVuIHNvdXJjZSByZXBvc2l0b3J5LCBhbG9uZworICAgICAg
ICB3aXRoIHVuaXQgdGVzdCBwYWdlcyBpbiBUZXN0V2ViS2l0QVBJLiBBbHNvIHJlbW92ZXMgYWxs
ICNpbmNsdWRlcyBhbmQgI2ltcG9ydHMgb2YgZHJhZ2dpbmctcmVsYXRlZCBmaWxlcyBpbgorICAg
ICAgICBXZWJLaXRBZGRpdGlvbnMgZnJvbSB0aGUgb3BlbiBzb3VyY2UgcmVwb3NpdG9yeS4KKwor
ICAgICAgICBUaGlzIGluaXRpYWwgdXBzdHJlYW1pbmcgcGhhc2UgaXMgb25seSBjb25jZXJuZWQg
d2l0aCBtb3ZpbmcgY29kZSBvdXQgb2YgV2ViS2l0QWRkaXRpb25zLCBhbmQgYXR0ZW1wdHMgdG8K
KyAgICAgICAgcHJlc2VydmUgdGhlIGNvZGUgYXMtaXMsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0
cml2aWFsIHN0eWxlIGNoYW5nZXMgc28gdGhhdCB0aGUgb3BlbiBzb3VyY2UgbGludGVyIHBhc3Nl
cy4KKyAgICAgICAgRnV0dXJlIHBhdGNoZXMgd2lsbCByZW1vdmUgdGhlIERBVEFfSU5URVJBQ1RJ
T04gZmVhdHVyZSBmbGFnIGFsdG9nZXRoZXIgYW5kIHVub2JzY3VyZSBhbGwgdmFyaWFibGUgYW5k
IGZ1bmN0aW9uCisgICAgICAgIG5hbWVzIHJlZmVyZW5jaW5nICJkYXRhIGludGVyYWN0aW9uIi4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IgZnJvbSB0aGUgaW50ZXJuYWwgYnVpbGQu
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAg
ICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWxldGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0lt
YWdlRm9yTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2Fj
aGVkSW1hZ2VGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUFkanVzdERyYWdJ
bWFnZUZvckRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXNzb2x2ZURyYWdJbWFnZVRv
RnJhY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6UGFzdGVib2FyZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnRGF0
YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OnJ0ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdQ
YXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjp1cmxQYXN0ZWJvYXJkVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpodG1sUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZQYXN0ZWJvYXJkVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjp0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
Ojpjb250YWluc1VSTCk6CisgICAgICAgIChydGZQYXN0ZWJvYXJkVHlwZSk6IERlbGV0ZWQuCisg
ICAgICAgIChydGZkUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoc3RyaW5nUGFz
dGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAodXJsUGFzdGVib2FyZFR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoaHRtbFBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKGNv
bG9yUGFzdGVib2FyZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAocGRmUGFzdGVib2FyZFR5cGUp
OiBEZWxldGVkLgorICAgICAgICAodGlmZlBhc3RlYm9hcmRUeXBlKTogRGVsZXRlZC4KKwogMjAx
Ny0wNi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
Q29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Z2F0aGVyU3RhdHNGb3JMb2dnaW5nIGlzIGNy
YXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1N2EyOGU0MWVhMTU5MmNjZGY5Y2U1MjQzMzQx
MzRiMWFiM2FmNzE0Li5jMmNkNmI1ZGNkZDUyNGM1NWM0ZmJlYzMxNTlmNTVhMmU0OGI1NTEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wNi0xNiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gVXBzdHJl
YW0gaU9TIGRyYWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gaW50byBPcGVuU291cmNlIFdlYktp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzY2
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjc2NzAxND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIEludHJvZHVjZSBFTkFCTEVfREFUQV9JTlRFUkFDVElP
TiBhbmQgRU5BQkxFX0RSQUdfU1VQUE9SVCB0byBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZy4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE3
LTA2LTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0
ZWQgcjIxODA1NiBiZWNhdXNlIGl0IG1hZGUgdGhlIElERSByZWluZGV4IGNvbnN0YW50bHkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMWUwMWNhMmQwNzgxYjkzYzA3ZGY2ZmZiMzFjMmZiMDhhYTIzZTRj
ZS4uNDY1ZDFhYjVkZTNhZDc2OWM5M2IwYjIzMDliNWJkMGJkZDcyNTdjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBh
bmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgTW92ZSBwaWVjZXMgb2YgaU9TIFdlYktpdDEgZHJhZyBhbmQgZHJvcCBpbXBs
ZW1lbnRhdGlvbiBpbnRvIE9wZW5Tb3VyY2UuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW06CisgICAgICAgIChXZWJEcmFnQ2xpZW50
Ojp1c2VMZWdhY3lEcmFnQ2xpZW50KToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OndpbGxQZXJm
b3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OmRyYWdT
b3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6d2lsbFBl
cmZvcm1EcmFnU291cmNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpiZWdpbkRyYWcpOgorICAgICAgICAoV2ViRHJh
Z0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkRyYWdDbGll
bnQ6OmRlY2xhcmVBbmRXcml0ZUF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6
ZGlkQ29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOnRleHRJbmRpY2F0b3I6YXRD
bGllbnRQb3NpdGlvbjphbmNob3JQb2ludDphY3Rpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X2dldERhdGFJbnRlcmFjdGlvbkRhdGFdKToKKyAgICAgICAgKC1bV2ViVmlldyBkcmFnRGF0YUZv
clNlc3Npb246Y2xpZW50Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X2VudGVyZWREYXRhSW50ZXJhY3Rpb246Y2xpZW50Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAg
ICAgICgtW1dlYlZpZXcgX3VwZGF0ZWREYXRhSW50ZXJhY3Rpb246Y2xpZW50Omdsb2JhbDpvcGVy
YXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2V4aXRlZERhdGFJbnRlcmFjdGlvbjpjbGll
bnQ6Z2xvYmFsOm9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcGVyZm9ybURhdGFJ
bnRlcmFjdGlvbjpjbGllbnQ6Z2xvYmFsOm9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmll
dyBfdHJ5VG9QZXJmb3JtRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IF9lbmRlZERhdGFJbnRlcmFjdGlvbjpnbG9iYWw6XSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbl0pOgorICAg
ICAgICAoZmxvYXRSZWN0c0ZvckNHUmVjdEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2Vi
VmlldyBfY3JlYXRlSW1hZ2VXaXRoUGxhdHRlckZvckltYWdlOmJvdW5kaW5nUmVjdDpjb250ZW50
U2NhbGVGYWN0b3I6Y2xpcHBpbmdSZWN0czpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAg
ICAgKC1bV2ViVmlld1ByaXZhdGUgZGVhbGxvY10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d1ByaXZhdGUuaDoKKwogMjAxNy0wNi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0gW1dLMV0gRHJvcHBpbmcgbGlua3Mgb250byBV
SVdlYlZpZXdzIHNob3VsZCBub3QgdHJpZ2dlciBuYXZpZ2F0aW9uIGJ5IGRlZmF1bHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBhMDM1NDM1OThmOWFmOTU5NWU4NjVmOGM0MzQ1ZTI5ZTVkNmRiZDI3Li5lMmE0MDZj
NmI0ODEzMDA3NjJmOWJmNjQzZmI3NzNkNWQ3MDk0NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzUgQEAKKzIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBkcmFnIGFuZCBkcm9wIGltcGxlbWVu
dGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI3
NjcwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNb3Zl
IHBpZWNlcyBvZiBpT1MgV2ViS2l0MiBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIGludG8g
T3BlblNvdXJjZS4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dERyYWdJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJvbWlzZWRE
YXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByb21pc2Vk
RGF0YUZvckF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldERy
YWdDYXJldFJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgIChsb25nUHJlc3NBY3Rpb25EZWxheUFmdGVyTGlmdCk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgd2ViVmlld1VJRGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBzZXR1cERhdGFJbnRlcmFjdGlvbkRlbGVnYXRlc10pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRlYXJkb3duRGF0YUludGVyYWN0aW9uRGVsZWdhdGVzXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3N0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOndpdGhJbmRpY2F0
b3JEYXRhOmF0Q2xpZW50UG9zaXRpb246YW5jaG9yUG9pbnQ6YWN0aW9uOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9kaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6XSk6
CisgICAgICAgICh1aUltYWdlRm9ySW1hZ2UpOgorICAgICAgICAoc2hvdWxkVXNlVGV4dEluZGlj
YXRvclRvQ3JlYXRlUHJldmlld0ZvckRyYWdBY3Rpb24pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IGRyYWdQcmV2aWV3Rm9ySW1hZ2U6ZnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6Y2xpcHBp
bmdSZWN0c0luRnJhbWVDb29yZGluYXRlczpiYWNrZ3JvdW5kQ29sb3I6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgZHJhZ1ByZXZpZXdGb3JDdXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGVd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3JtRGVmZXJyZWRBY3Rpb25BdERyYWdP
cmlnaW5dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjYW5jZWxEZWZlcnJlZEFjdGlvbkF0
RHJhZ09yaWdpbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbXB1dGVDbGllbnRBbmRH
bG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpvdXRDbGllbnRQb2ludDpvdXRHbG9iYWxQb2ludDpd
KToKKyAgICAgICAgKGRyb3BPcGVyYXRpb25Gb3JXZWJDb3JlRHJhZ09wZXJhdGlvbik6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpkcmFnRGVzdGluYXRp
b25BY3Rpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcERyYWdTb3VyY2VT
ZXNzaW9uU3RhdGVdKToKKyAgICAgICAgKGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyYWdJdGVt
cyk6CisgICAgICAgIChleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbik6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbjpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRy
b2xsZXJPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3RyYW5zaXRpb25E
cmFnUHJldmlld1RvSW1hZ2VJZk5lY2Vzc2FyeTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OmN1cnJlbnRSZWN0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lv
bjpdKToKKyAgICAgICAgKHBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlv
bik6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3VycmVudERyYWdPckRyb3BTZXNzaW9uXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RyYWdJbnRlcmFjdGlvbjpwcmVwYXJlRm9yU2Vz
c2lvbjpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyYWdJbnRlcmFj
dGlvbjppdGVtc0ZvckJlZ2lubmluZ1Nlc3Npb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2FwaV9kcmFnSW50ZXJhY3Rpb246cHJldmlld0ZvckxpZnRpbmdJdGVtOnNlc3Npb246XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOnNlc3Npb25XaWxsQmVn
aW46XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FwaV9kcmFnSW50ZXJhY3Rpb246c2Vz
c2lvbjpkaWRFbmRXaXRoT3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRy
YWdJbnRlcmFjdGlvbjpwcmV2aWV3Rm9yQ2FuY2VsbGluZ0l0ZW06d2l0aERlZmF1bHQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FwaV9kcmFnSW50ZXJhY3Rpb246aXRlbTp3aWxsQW5p
bWF0ZUNhbmNlbFdpdGhBbmltYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcm9w
SW50ZXJhY3Rpb246Y2FuSGFuZGxlU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfYXBpX2Ryb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkRW50ZXI6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2FwaV9kcm9wSW50ZXJhY3Rpb246c2Vzc2lvbkRpZFVwZGF0ZTpdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkcm9wSW50ZXJhY3Rpb246c2Vzc2lvbkRpZEV4aXQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZHJvcEludGVyYWN0aW9uOnBlcmZvcm1Ecm9wOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJbnRlcmFjdGlvbjpwcmV2aWV3Rm9yRHJv
cHBpbmdJdGVtOndpdGhEZWZhdWx0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJ
bnRlcmFjdGlvbjpzZXNzaW9uRGlkRW5kOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvbkVudGVyZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbmRlZDpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJmb3JtT3BlcmF0aW9uOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25E
aWRFbmQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlV2lsbEJlZ2luRGF0
YUludGVyYWN0aW9uV2l0aFNlc3Npb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Np
bXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2lt
dWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjpjb21wbGV0aW9uOl0pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRDR0ltYWdlVG9CaXRtYXApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFn
Q2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJE
cmFnQ2xpZW50OjpkaWRDb25jbHVkZUVkaXREcmFnKToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJh
Z0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudCk6CisKIDIwMTctMDYtMTYgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBBZGQgV0tQcm9jZXNz
UG9vbCBTUEkgdG8gZWZmaWNpZW50bHkgcmVzZXQgYWxsIHBsdWdpbiBsb2FkIGNsaWVudCBwb2xp
Y2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZi
ZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVmZWUxNmU1YmZiYWRhMDlhZTE0NWEwY2U3YjViMjA3NDVjOGNl
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI0OCw0ICsyNDgsOSBAQCBFTkFCTEVf
VkFSSUFUSU9OX0ZPTlRTX0lGX05PVF8gPSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9U
X05PKTsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX05PID0gRU5BQkxFX1ZBUklBVElP
Tl9GT05UUzsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX1lFUyA9IDsKIAotRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5B
QkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FU
VEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9Q
QVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkp
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykg
JChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0Vf
QURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JP
TExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJ
TElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQ
T1JUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVF
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMp
ICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9G
VExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNB
VEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9P
QlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVO
QUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0tF
WV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9M
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVUVEVSUFJFU1Mp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChF
TkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJD
RSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09S
X1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdB
VE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFC
TEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRP
Q09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09V
UkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05U
Uk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQo
RU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBI
T05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVO
QUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQ
TEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9uZW9zMTEqXSA9
IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVzaW11
bGF0b3IxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9O
W3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKK0VOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT047CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFC
TEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElP
TikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAk
KEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFH
X1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9KSVRfUEVS
TUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAk
KEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBB
RF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVS
U0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tF
WUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAk
KEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9N
RURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RS
RUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFC
TEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNU
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVR
VUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VS
VklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5B
QkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01F
RElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDE3MTdjMzZmYzRjODgx
MzEzYzliZWMxNGU3ZjBmYWI0OGZiZjRhZjIuLjUwMDQwNzdhNTZhMmYyYWUzNTA3YzU0ZGY1ZTgy
ODBjZWFiODEwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNzExLDEwICs3MTEsNiBAQAogLyogSW5jbHVk
ZSBmZWF0dXJlIG1hY3JvcyAqLwogI2luY2x1ZGUgPHd0Zi9GZWF0dXJlRGVmaW5lcy5oPgogCi0j
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRp
b25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlv
bnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5kaWYKLQogI2lmIE9TKFdJTkRPV1Mp
CiAjZGVmaW5lIFVTRV9TWVNURU1fTUFMTE9DIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA3ODQ3
NjU3NDliZDBlNmY1NTRjZDVmYmU5MTNmNGUxOWI5ODBjZGQwLi5lZmVlMTZlNWJmYmFkYTA5YWUx
NDVhMGNlN2I1YjIwNzQ1YzhjZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjQ4LDQgKzI0OCw5IEBAIEVO
QUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UXyA9ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UU19J
Rl9OT1RfTk8pOwogRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfTk8gPSBFTkFCTEVfVkFS
SUFUSU9OX0ZPTlRTOwogRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfWUVTID0gOwogCi1G
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykg
JChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFC
TEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19Q
Uk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVS
SU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RF
VklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NT
X1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NT
X1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lC
SUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVf
VkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNT
SU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5B
QkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RF
UFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNU
SU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9B
UkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5B
QkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQ
UkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
QVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAk
KEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNU
X0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQ
SSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9f
UFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEp
ICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lb3Mx
MSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9u
ZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT05bc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOworRU5BQkxF
X0RBVEFfSU5URVJBQ1RJT05bc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfREFUQV9J
TlRFUkFDVElPTjsKKworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NF
U1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAk
KEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcp
ICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJ
VF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVM
XzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
QU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVf
SU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVS
RV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFC
TEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJV
VEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJ
QV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJM
RV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAk
KEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRF
Ul9MT0NLKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklY
X0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJM
RV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkg
JChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJM
RV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
VFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFC
TEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9D
U1NfTUVESUEpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRT
KSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4
NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVmZWUxNmU1YmZiYWRhMDlh
ZTE0NWEwY2U3YjViMjA3NDVjOGNlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI0OCw0ICsy
NDgsOSBAQCBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF8gPSAkKEVOQUJMRV9WQVJJQVRJ
T05fRk9OVFNfSUZfTk9UX05PKTsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX05PID0g
RU5BQkxFX1ZBUklBVElPTl9GT05UUzsKIEVOQUJMRV9WQVJJQVRJT05fRk9OVFNfSUZfTk9UX1lF
UyA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05f
VjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJM
RV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05U
RU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5B
QkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQo
RU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQo
RU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9K
SVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZF
TF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dP
UktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5B
QkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklC
VVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVO
QUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5B
QkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVE
SUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFC
TEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykg
JChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5U
RVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJ
WF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFC
TEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFC
TEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVf
U1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5B
QkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVf
Q1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAk
KEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VU
UykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9EUkFHX1NVUFBPUlRbc2Rr
PWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfRFJBR19TVVBQT1JU
W3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKK0VOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElP
TjsKK0VOQUJMRV9EQVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RS
QU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxF
UkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxF
X0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xF
VkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19U
RVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTikgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxV
RSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklM
VEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9K
SVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NP
REVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBU
VVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJ
T04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05J
RkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVC
TElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RP
UikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykg
JChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09O
X0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9O
VFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9f
VE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VC
X0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9X
RUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVf
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCBiMDlmOWU5MGZlMDRhOWRlODkxODkz
ZTYxMDM0YWY1ZWJlM2MzMjEwLi45NjczYmM1ZTkwZWMwYjU4NmFkYjNmZmNmYjQ2ZTg0NzAwNWRm
ZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0y
OSwxMiArMjksMTUgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9t
ZS5oIgogI2ltcG9ydCAiQ2hyb21lQ2xpZW50LmgiCisjaW1wb3J0ICJEYXRhVHJhbnNmZXIuaCIK
KyNpbXBvcnQgIkRyYWdTdGF0ZS5oIgogI2ltcG9ydCAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW1w
b3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJLZXlib2FyZEV2
ZW50LmgiCiAjaW1wb3J0ICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW1wb3J0
ICJQYWdlLmgiCisjaW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUV2ZW50
RmFjdG9yeUlPUy5oIgogI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0
ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTQ0LDE1ICs0NywxMiBAQAogI2ltcG9ydCA8d3RmL0Jsb2Nr
T2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9y
dCA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50
SGFuZGxlcklPU1RvdWNoLmNwcD4KICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJBZGRpdGlvbnMubW0+Ci0j
ZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUmV0YWluUHRyPFdlYkV2ZW50
PiYgY3VycmVudEV2ZW50U2xvdCgpCkBAIC01NTksNCArNTU5LDQ5IEBAIFBsYXRmb3JtTW91c2VF
dmVudCBFdmVudEhhbmRsZXI6OmN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSBjb25zdAogICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50KGN1
cnJlbnRFdmVudCgpKTsKIH0KIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK1JlZjxEYXRh
VHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25z
dAoreworICAgIFBhc3RlYm9hcmQoImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpLmNsZWFy
KCk7CisgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZygpOworfQorCitib29s
IEV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBF
dmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKQorewor
ICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CisKKyAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgc3ludGhldGljTW91c2VQcmVzc0V2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBs
YXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudChjbGllbnRQb3NpdGlvbiwg
Z2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisK
KyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRU
ZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKKyAgICBhdXRvIGRv
Y3VtZW50UG9pbnQgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpID8gcHJvdGVjdGVkRnJhbWUtPnZp
ZXcoKS0+d2luZG93VG9Db250ZW50cyhzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
KSA6IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCk7CisgICAgYXV0byBoaXRUZXN0
ZWRNb3VzZUV2ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5wcmVwYXJlTW91c2VFdmVudChyZXF1
ZXN0LCBkb2N1bWVudFBvaW50LCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudCk7CisKKyAgICBSZWZQ
dHI8RnJhbWU+IHN1YmZyYW1lID0gc3ViZnJhbWVGb3JIaXRUZXN0UmVzdWx0KGhpdFRlc3RlZE1v
dXNlRXZlbnQpOworICAgIGlmIChzdWJmcmFtZSAmJiBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCku
dHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBv
c2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBGSVhNRTogVGhpcyBuZWVk
cyB0byBiZSByZWZhY3RvcmVkLCBhbG9uZyB3aXRoIGhhbmRsZU1vdXNlUHJlc3NFdmVudCBhbmQg
aGFuZGxlTW91c2VNb3ZlRXZlbnQsIHNvIHRoYXQgc3RhdGUgYXNzb2NpYXRlZCBvbmx5IHdpdGgg
ZHJhZ2dpbmcKKyAgICAvLyBsaXZlcyBzb2xlbHkgaW4gdGhlIERyYWdDb250cm9sbGVyLCBhbmQg
c28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHByZXRlbmQgdGhhdCBhIG1vdXNlIHByZXNzIGFuZCBt
b3VzZSBtb3ZlIGhhdmUgYWxyZWFkeSBvY2N1cnJlZCBoZXJlLgorICAgIG1fbW91c2VEb3duTWF5
U3RhcnREcmFnID0gZXZlbnRNYXlTdGFydERyYWcoc3ludGhldGljTW91c2VQcmVzc0V2ZW50KTsK
KyAgICBpZiAoIW1fbW91c2VEb3duTWF5U3RhcnREcmFnKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBtb3VzZVByZXNzZWQobV9tb3VzZVByZXNzZWQsIHRy
dWUpOworICAgIGRyYWdTdGF0ZSgpLnNvdXJjZSA9IG51bGxwdHI7CisgICAgZHJhZ1N0YXRlKCku
ZHJhZ2dlZENvbnRlbnRSYW5nZSA9IG51bGxwdHI7CisgICAgbV9tb3VzZURvd25Qb3MgPSBwcm90
ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHN5bnRoZXRpY01vdXNlTW92ZUV2
ZW50LnBvc2l0aW9uKCkpOworICAgIHByb3RlY3RlZEZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVT
dHlsZUlmTmVlZGVkKCk7CisKKyAgICByZXR1cm4gaGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQoaGl0
VGVzdGVkTW91c2VFdmVudCwgRG9udENoZWNrRHJhZ0h5c3RlcmVzaXMpOworfQorCisjZW5kaWYK
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXgg
MjJhYmNhYmFiMzUxZDZmOTM1OTg0NTcwM2ZkMThkZGZjYzZjMmQ0MS4uMDIwNzI0NzcxMTQxZDJh
OWViMDY2ZjZlZGFmMGQ4NzJmNTUyYTFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC0yNiwxNiArMjYsMTk0IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIkRyYWdJbWFnZS5oIgogCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0
ICJEb2N1bWVudC5oIgorI2ltcG9ydCAiRWxlbWVudC5oIgorI2ltcG9ydCAiRmxvYXRSb3VuZGVk
UmVjdC5oIgorI2ltcG9ydCAiRm9udENhc2NhZGUuaCIKKyNpbXBvcnQgIkZvbnRQbGF0Zm9ybURh
dGEuaCIKKyNpbXBvcnQgIkZyYW1lLmgiCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKKyNp
bXBvcnQgIkltYWdlLmgiCisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiUGFn
ZS5oIgorI2ltcG9ydCAiUmFuZ2UuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0
ICJTdHJpbmdUcnVuY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKKyNpbXBvcnQg
IlRleHRSdW4uaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBv
cnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1w
b3J0IDxVSUtpdC9VSUZvbnQuaD4KKyNpbXBvcnQgPFVJS2l0L1VJR3JhcGhpY3NJbWFnZVJlbmRl
cmVyLmg+CisjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFi
aWxpdHktY29tcGxldGVuZXNzIgogCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0ltYWdl
QWRkaXRpb25zLm1tPgorU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFT
UyhVSUtpdCwgVUlGb250KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUdyYXBoaWNzSW1hZ2VS
ZW5kZXJlcikKK1NPRlRfTElOSyhVSUtpdCwgVUlHcmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0
aE9wdGlvbnMsIHZvaWQsIChDR1NpemUgc2l6ZSwgQk9PTCBvcGFxdWUsIENHRmxvYXQgc2NhbGUp
LCAoc2l6ZSwgb3BhcXVlLCBzY2FsZSkpCitTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRD
dXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQorU09GVF9MSU5LKFVJS2l0
LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAo
dm9pZCksICgpKQorU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2
b2lkLCAodm9pZCksICgpKQogCi0jZWxzZQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCitJbnRT
aXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQoreworICAgIHJldHVybiBJbnRT
aXplKENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2Uu
Z2V0KCkpKTsKK30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBp
bWFnZSwgRmxvYXRTaXplIHNjYWxlKQoreworICAgIENHU2l6ZSBpbWFnZVNpemUgPSBDR1NpemVN
YWtlKHNjYWxlLndpZHRoKCkgKiBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBzY2FsZS5o
ZWlnaHQoKSAqIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpKTsKKyAgICBDR1JlY3QgaW1h
Z2VSZWN0ID0geyBDR1BvaW50WmVybywgaW1hZ2VTaXplIH07CisKKyAgICBSZXRhaW5QdHI8VUlH
cmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlHcmFwaGljc0lt
YWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKKyAgICBVSUlt
YWdlICppbWFnZUNvcHkgPSBbcmVuZGVyLmdldCgpIGltYWdlV2l0aEFjdGlvbnM6XihVSUdyYXBo
aWNzSW1hZ2VSZW5kZXJlckNvbnRleHQgKnJlbmRlcmVyQ29udGV4dCkgeworICAgICAgICBDR0Nv
bnRleHRSZWYgY29udGV4dCA9IHJlbmRlcmVyQ29udGV4dC5DR0NvbnRleHQ7CisgICAgICAgIENH
Q29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAwLCBpbWFnZVNpemUuaGVpZ2h0KTsKKyAgICAg
ICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgMSwgLTEpOworICAgICAgICBDR0NvbnRleHRE
cmF3SW1hZ2UoY29udGV4dCwgaW1hZ2VSZWN0LCBpbWFnZS5nZXQoKSk7CisgICAgfV07CisgICAg
cmV0dXJuIGltYWdlQ29weS5DR0ltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKEltYWdlICogX051bGxhYmxlIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24gb3JpZW50YXRpb24pCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIENHU2l6ZSBpbWFnZVNpemUoaW1hZ2UtPnNpemUoKSk7CisKKyAgICBSZXRh
aW5QdHI8VUlHcmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMoW2FsbG9jVUlH
cmFwaGljc0ltYWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsK
KyAgICBVSUltYWdlICppbWFnZUNvcHkgPSBbcmVuZGVyLmdldCgpIGltYWdlV2l0aEFjdGlvbnM6
XihVSUdyYXBoaWNzSW1hZ2VSZW5kZXJlckNvbnRleHQgKnJlbmRlcmVyQ29udGV4dCkgeworICAg
ICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dChyZW5kZXJlckNvbnRleHQuQ0dDb250ZXh0KTsK
KyAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgaW1hZ2VTaXplLmhlaWdodCk7CisgICAgICAg
IGNvbnRleHQuc2NhbGUoeyAxLCAtMSB9KTsKKyAgICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMg
cGFpbnRpbmdPcHRpb25zOworICAgICAgICBwYWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbkRl
c2NyaXB0aW9uID0gb3JpZW50YXRpb247CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFn
ZSwgRmxvYXRQb2ludCgpLCBwYWludGluZ09wdGlvbnMpOworICAgIH1dOworICAgIHJldHVybiBp
bWFnZUNvcHkuQ0dJbWFnZTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVm
KQoreworfQorCitzdGF0aWMgVGV4dEluZGljYXRvck9wdGlvbnMgZGVmYXVsdExpbmtJbmRpY2F0
b3JPcHRpb25zID0gVGV4dEluZGljYXRvck9wdGlvblRpZ2h0bHlGaXRDb250ZW50IHwgVGV4dElu
ZGljYXRvck9wdGlvblJlc3BlY3RUZXh0Q29sb3IgfCBUZXh0SW5kaWNhdG9yT3B0aW9uVXNlQm91
bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyB8IFRleHRJbmRpY2F0
b3JPcHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9u
Q29tcHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xvcjsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURy
YWdJbWFnZUZvckxpbmsoRWxlbWVudCYgbGlua0VsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBUZXh0SW5kaWNhdG9yRGF0YSYgaW5kaWNhdG9yRGF0YSwgRm9udFJlbmRlcmlu
Z01vZGUsIGZsb2F0KQoreworICAgIC8vIEZJWE1FOiBNb3N0IG9mIHRoaXMgY2FuIGdvIGF3YXkg
b25jZSB3ZSBjYW4gdXNlIFVJVVJMRHJhZ1ByZXZpZXdWaWV3IHVuY29uZGl0aW9uYWxseS4KKyAg
ICBzdGF0aWMgQ0dGbG9hdCBkcmFnSW1hZ2VQYWRkaW5nID0gMTA7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxGb250Q2FzY2FkZT4gdGl0bGVGb250Q2FzY2FkZTsKKyAgICBzdGF0aWMg
TGF6eU5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRlPiB1cmxGb250Q2FzY2FkZTsKKyAgICBzdGF0
aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9r
ZW4sIF4geworICAgICAgICBVSUZvbnQgKnRpdGxlRm9udCA9IFtnZXRVSUZvbnRDbGFzcygpIHN5
c3RlbUZvbnRPZlNpemU6MTZdOworICAgICAgICBVSUZvbnQgKnVybEZvbnQgPSBbZ2V0VUlGb250
Q2xhc3MoKSBzeXN0ZW1Gb250T2ZTaXplOjE0XTsKKyAgICAgICAgdGl0bGVGb250Q2FzY2FkZS5j
b25zdHJ1Y3QoRm9udFBsYXRmb3JtRGF0YShDVEZvbnRDcmVhdGVXaXRoTmFtZSgoQ0ZTdHJpbmdS
ZWYpdGl0bGVGb250LmZvbnROYW1lLCB0aXRsZUZvbnQucG9pbnRTaXplLCBuaWwpLCB0aXRsZUZv
bnQucG9pbnRTaXplKSwgQXV0b1Ntb290aGluZyk7CisgICAgICAgIHVybEZvbnRDYXNjYWRlLmNv
bnN0cnVjdChGb250UGxhdGZvcm1EYXRhKENURm9udENyZWF0ZVdpdGhOYW1lKChDRlN0cmluZ1Jl
Zil1cmxGb250LmZvbnROYW1lLCB1cmxGb250LnBvaW50U2l6ZSwgbmlsKSwgdXJsRm9udC5wb2lu
dFNpemUpLCBBdXRvU21vb3RoaW5nKTsKKyAgICB9KTsKKworICAgIFN0cmluZyB0b3BTdHJpbmco
dGl0bGUuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgIFN0cmluZyBib3R0b21TdHJpbmcoWyhOU1VS
TCAqKXVybCBhYnNvbHV0ZVN0cmluZ10pOworICAgIGlmICh0b3BTdHJpbmcuaXNFbXB0eSgpKSB7
CisgICAgICAgIHRvcFN0cmluZyA9IGJvdHRvbVN0cmluZzsKKyAgICAgICAgYm90dG9tU3RyaW5n
ID0gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgQ0dGbG9hdCBtYXhUZXh0V2lk
dGggPSAzMjA7CisgICAgYXV0byB0cnVuY2F0ZWRUb3BTdHJpbmcgPSBTdHJpbmdUcnVuY2F0b3I6
OnJpZ2h0VHJ1bmNhdGUodG9wU3RyaW5nLCBtYXhUZXh0V2lkdGgsIHRpdGxlRm9udENhc2NhZGUp
OworICAgIGF1dG8gdHJ1bmNhdGVkQm90dG9tU3RyaW5nID0gU3RyaW5nVHJ1bmNhdG9yOjpjZW50
ZXJUcnVuY2F0ZShib3R0b21TdHJpbmcsIG1heFRleHRXaWR0aCwgdXJsRm9udENhc2NhZGUpOwor
ICAgIENHRmxvYXQgdGV4dFdpZHRoID0gc3RkOjptYXgoU3RyaW5nVHJ1bmNhdG9yOjp3aWR0aCh0
cnVuY2F0ZWRUb3BTdHJpbmcsIHRpdGxlRm9udENhc2NhZGUpLCBTdHJpbmdUcnVuY2F0b3I6Ondp
ZHRoKHRydW5jYXRlZEJvdHRvbVN0cmluZywgdXJsRm9udENhc2NhZGUpKTsKKyAgICBDR0Zsb2F0
IHRleHRIZWlnaHQgPSB0cnVuY2F0ZWRCb3R0b21TdHJpbmcuaXNFbXB0eSgpID8gMjIgOiA0NDsK
KworICAgIENHUmVjdCBpbWFnZVJlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIHRleHRXaWR0aCArIDIg
KiBkcmFnSW1hZ2VQYWRkaW5nLCB0ZXh0SGVpZ2h0ICsgMiAqIGRyYWdJbWFnZVBhZGRpbmcpOwor
CisgICAgUmV0YWluUHRyPFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyPiByZW5kZXIgPSBhZG9wdE5T
KFthbGxvY1VJR3JhcGhpY3NJbWFnZVJlbmRlcmVySW5zdGFuY2UoKSBpbml0V2l0aFNpemU6aW1h
Z2VSZWN0LnNpemVdKTsKKyAgICBVSUltYWdlICppbWFnZSA9IFtyZW5kZXIuZ2V0KCkgaW1hZ2VX
aXRoQWN0aW9uczpeKFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyQ29udGV4dCAqcmVuZGVyZXJDb250
ZXh0KSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KHJlbmRlcmVyQ29udGV4dC5D
R0NvbnRleHQpOworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBDR1JlY3RHZXRIZWlnaHQo
aW1hZ2VSZWN0KSk7CisgICAgICAgIGNvbnRleHQuc2NhbGUoeyAxLCAtMSB9KTsKKyAgICAgICAg
Y29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChpbWFnZVJlY3QsIEZsb2F0
Um91bmRlZFJlY3Q6OlJhZGlpKDQpKSwgeyAyNTUsIDI1NSwgMjU1IH0pOworICAgICAgICB0aXRs
ZUZvbnRDYXNjYWRlLT5kcmF3VGV4dChjb250ZXh0LCBUZXh0UnVuKHRydW5jYXRlZFRvcFN0cmlu
ZyksIEZsb2F0UG9pbnQoZHJhZ0ltYWdlUGFkZGluZywgMTggKyBkcmFnSW1hZ2VQYWRkaW5nKSk7
CisgICAgICAgIGlmICghdHJ1bmNhdGVkQm90dG9tU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHVybEZvbnRDYXNjYWRlLT5kcmF3VGV4dChjb250ZXh0LCBUZXh0UnVuKHRydW5jYXRlZEJv
dHRvbVN0cmluZyksIEZsb2F0UG9pbnQoZHJhZ0ltYWdlUGFkZGluZywgNDAgKyBkcmFnSW1hZ2VQ
YWRkaW5nKSk7CisgICAgfV07CisKKyAgICBhdXRvIGxpbmtSYW5nZSA9IHJhbmdlT2ZDb250ZW50
cyhsaW5rRWxlbWVudCk7CisgICAgaWYgKGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0
b3I6OmNyZWF0ZVdpdGhSYW5nZShsaW5rUmFuZ2UsIGRlZmF1bHRMaW5rSW5kaWNhdG9yT3B0aW9u
cywgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUsIEZsb2F0U2l6ZSgp
KSkKKyAgICAgICAgaW5kaWNhdG9yRGF0YSA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsKKworICAg
IHJldHVybiBpbWFnZS5DR0ltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
SWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitEcmFnSW1hZ2VSZWYgcGxhdGZv
cm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3RvcihEcmFnSW1hZ2VSZWYgaW1hZ2Us
IGZsb2F0KQoreworICAgIC8vIE9uIGlPUywgd2UganVzdCBjcmVhdGUgdGhlIGRyYWcgaW1hZ2Ug
YXQgdGhlIHJpZ2h0IGRldmljZSBzY2FsZSBmYWN0b3IsIHNvIHdlIGRvbid0IG5lZWQgdG8gc2Nh
bGUgaXQgYnkgMSAvIGRldmljZVNjYWxlRmFjdG9yIGxhdGVyLgorICAgIHJldHVybiBpbWFnZTsK
K30KKworc3RhdGljIFRleHRJbmRpY2F0b3JPcHRpb25zIGRlZmF1bHRTZWxlY3Rpb25EcmFnSW1h
Z2VUZXh0SW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJbmRpY2F0b3JPcHRpb25FeHBhbmRDbGlwQmV5
b25kVmlzaWJsZVJlY3QgfCBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50IHwgVGV4
dEluZGljYXRvck9wdGlvblVzZVNlbGVjdGlvblJlY3RGb3JTaXppbmcgfCBUZXh0SW5kaWNhdG9y
T3B0aW9uQ29tcHV0ZUVzdGltYXRlZEJhY2tncm91bmRDb2xvcjsKKworRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFRleHRJbmRpY2F0b3JEYXRh
JiBpbmRpY2F0b3JEYXRhLCBib29sIGZvcmNlQmxhY2tUZXh0KQoreworICAgIGlmIChhdXRvIGRv
Y3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91
dCgpOworCisgICAgVGV4dEluZGljYXRvck9wdGlvbnMgb3B0aW9ucyA9IGRlZmF1bHRTZWxlY3Rp
b25EcmFnSW1hZ2VUZXh0SW5kaWNhdG9yT3B0aW9uczsKKyAgICBpZiAoIWZvcmNlQmxhY2tUZXh0
KQorICAgICAgICBvcHRpb25zIHw9IFRleHRJbmRpY2F0b3JPcHRpb25SZXNwZWN0VGV4dENvbG9y
OworCisgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNl
bGVjdGlvbkluRnJhbWUoZnJhbWUsIG9wdGlvbnMsIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25U
cmFuc2l0aW9uOjpOb25lLCBGbG9hdFNpemUoKSk7CisgICAgYXV0byBpbWFnZSA9IHRleHRJbmRp
Y2F0b3ItPmNvbnRlbnRJbWFnZSgpOworICAgIGlmIChpbWFnZSkKKyAgICAgICAgaW5kaWNhdG9y
RGF0YSA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwg
aW1hZ2UtPmhlaWdodCgpKTsKKyAgICBpZiAoYXV0byBwYWdlID0gZnJhbWUucGFnZSgpKQorICAg
ICAgICBpbWFnZVJlY3Quc2NhbGUoMSAvIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworCisK
KyAgICBSZXRhaW5QdHI8VUlHcmFwaGljc0ltYWdlUmVuZGVyZXI+IHJlbmRlciA9IGFkb3B0TlMo
W2FsbG9jVUlHcmFwaGljc0ltYWdlUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRXaXRoU2l6ZTppbWFn
ZVJlY3Quc2l6ZSgpXSk7CisgICAgVUlJbWFnZSAqZmluYWxJbWFnZSA9IFtyZW5kZXIuZ2V0KCkg
aW1hZ2VXaXRoQWN0aW9uczpeKFVJR3JhcGhpY3NJbWFnZVJlbmRlcmVyQ29udGV4dCAqcmVuZGVy
ZXJDb250ZXh0KSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KHJlbmRlcmVyQ29u
dGV4dC5DR0NvbnRleHQpOworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBpbWFnZVJlY3Qu
aGVpZ2h0KCkpOworICAgICAgICBjb250ZXh0LnNjYWxlKHsgMSwgLTEgfSk7CisgICAgICAgIGNv
bnRleHQuZHJhd0ltYWdlKCppbWFnZSwgaW1hZ2VSZWN0KTsKKyAgICB9XTsKKworICAgIHJldHVy
biBmaW5hbEltYWdlLkNHSW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFn
ZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworI2Vsc2UKKwogdm9pZCBkZWxldGVEcmFn
SW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+KQogewogICAgIC8vIFNpbmNlIHRoaXMgaXMgYSBS
ZXRhaW5QdHIsIHRoZXJlJ3Mgbm90aGluZyBhZGRpdGlvbmFsIHdlIG5lZWQgdG8gZG8gdG8KQEAg
LTQ2LDIwICsyMjQsMjAgQEAgdm9pZCBkZWxldGVEcmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VS
ZWY+KQogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkK
IHsKICAgICByZXR1cm4gSW50U2l6ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0lt
YWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSk7Ci0gICAgfQorfQogCiBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gc2NhbGVEcmFnSW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+LCBGbG9hdFNpemUpCiB7
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9TOiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24pCiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9T
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODQ5CiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggYjc1
N2E1NzlmZDAzNTljNWEzNDlmMjEwZGFiNWJhYjJmNzg5YjQ1Yi4uNjA0MTM2ODc4NGI2MTZiNWE4
MGU5NzFhOGVlYzY5YzAyNjczOTgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Bhc3RlYm9hcmRJT1MubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRvY3VtZW50Lmgi
CiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5o
IgorI2ltcG9ydCAiRHJhZ0RhdGEuaCIKICNpbXBvcnQgIkVkaXRpbmcuaCIKICNpbXBvcnQgIkVk
aXRvci5oIgogI2ltcG9ydCAiRWRpdG9yQ2xpZW50LmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW1w
b3J0ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiTGVn
YWN5V2ViQXJjaGl2ZS5oIgorI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKICNpbXBvcnQgIlBh
c3RlYm9hcmRTdHJhdGVneS5oIgogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1w
b3J0ICJSZW5kZXJJbWFnZS5oIgpAQCAtNTgsMTIgKzYwLDMzIEBACiAtIChCT09MKWNvbnRhaW5z
QXR0YWNobWVudHM7CiBAZW5kCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9y
dCA8V2ViS2l0QWRkaXRpb25zL1Bhc3RlYm9hcmRBZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKworUGFzdGVib2Fy
ZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQorICAgIDogbV9wYXN0
ZWJvYXJkTmFtZShwYXN0ZWJvYXJkTmFtZSkKKyAgICAsIG1fY2hhbmdlQ291bnQocGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5jaGFuZ2VDb3VudChwYXN0ZWJvYXJk
TmFtZSkpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZSwg
Y29uc3QgSW50UG9pbnQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3N0ZDo6dW5p
cXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oImRhdGEgaW50ZXJhY3Rp
b24gcGFzdGVib2FyZCIpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorewor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBhc3RlYm9h
cmROYW1lKCkpOworfQorCisjZW5kaWYKKwogc3RhdGljIGxvbmcgY2hhbmdlQ291bnRGb3JQYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUgPSB7IH0pCiB7CiAgICAgcmV0dXJu
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Y2hhbmdlQ291bnQo
cGFzdGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0RyYWdEYXRhTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFj
Lm1tCmluZGV4IDIwZDEyOWQwNjdmYzc4NGZmNWQxZDNmZWZhZGU0ODg5NDgwZmVlOTAuLjk0NzY1
YTI3ODdjYjk0MGY0NDg5MGQ4MDE3ODkxNzg0M2Q0YTMxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KQEAgLTI4LDYxICsyOCw5MSBAQAogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbXBvcnQg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJQYXN0
ZWJvYXJkU3RyYXRlZ3kuaCIKKyNpbXBvcnQgIlBsYXRmb3JtUGFzdGVib2FyZC5oIgogI2ltcG9y
dCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIK
IAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9u
cy9EcmFnRGF0YUFkZGl0aW9ucy5tbT4KKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxNb2Jp
bGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjZW5kaWYKIAotI2Vsc2UKK25h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5
cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5cGVSVEYp
OworI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSk7CisjZW5kaWYKIH0K
IAogc3RhdGljIGlubGluZSBTdHJpbmcgcnRmZFBhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgcmV0dXJuIFN0cmluZyhrVVRUeXBlRmxhdFJURkQpOworI2Vsc2UKICAg
ICByZXR1cm4gU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBp
bmxpbmUgU3RyaW5nIHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgcmV0dXJuIFN0cmluZyhrVVRUeXBlVGV4dCk7CisjZWxzZQogICAgIHJldHVybiBTdHJp
bmcoTlNTdHJpbmdQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmlu
ZyB1cmxQYXN0ZWJvYXJkVHlwZSgpCiB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBT
dHJpbmcoa1VUVHlwZVVSTCk7CisjZWxzZQogICAgIHJldHVybiBTdHJpbmcoTlNVUkxQYm9hcmRU
eXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5
cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKGtVVFR5cGVIVE1M
KTsKKyNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyhOU0hUTUxQYm9hcmRUeXBlKTsKKyNlbmRpZgog
fQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBjb2xvclBhc3RlYm9hcmRUeXBlKCkKIHsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgcmV0dXJuICJjb20uYXBwbGUudWlraXQuY29sb3IiOworI2Vsc2UK
ICAgICByZXR1cm4gU3RyaW5nKE5TQ29sb3JQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0
aWMgaW5saW5lIFN0cmluZyBwZGZQYXN0ZWJvYXJkVHlwZSgpCiB7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBTdHJpbmcoa1VUVHlwZVBERik7CisjZWxzZQogICAgIHJldHVybiBTdHJp
bmcoTlNQREZQYm9hcmRUeXBlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyB0
aWZmUGFzdGVib2FyZFR5cGUoKQogeworI2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3Ry
aW5nKGtVVFR5cGVUSUZGKTsKKyNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyhOU1RJRkZQYm9hcmRU
eXBlKTsKKyNlbmRpZgogfQogCi0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCiBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0
YSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIERyYWdPcGVyYXRpb24gc291cmNlT3BlcmF0aW9uTWFzaywgRHJhZ0FwcGxpY2F0
aW9uRmxhZ3MgZmxhZ3MsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBkZXN0aW5hdGlvbkFjdGlvbikK
ICAgICA6IG1fY2xpZW50UG9zaXRpb24oY2xpZW50UG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBv
c2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtMTU0LDEyICsxODQsOCBAQCB2b2lkIERyYWdEYXRh
Ojphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdl
dFBhdGhuYW1lc0ZvclR5cGUocmVzdWx0LCBTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSwg
bV9wYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQogICAgIGlmICghcmVzdWx0LnNpemUoKSkKICAgICAgICAgcmVzdWx0
ID0gZmlsZU5hbWVzKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwotI2VuZGlm
CiB9CiAKIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKQEAgLTIzMSwx
NCArMjU3LDMwIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUHJvbWlzZSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZpbGVzLnNpemUoKSA9PSAxOwogfQogCi0jaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQotCiBib29sIERyYWdEYXRhOjpjb250YWluc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3kgZmlsZW5hbWVQb2xpY3kpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFhc1VSTChmaWxlbmFtZVBv
bGljeSkuaXNFbXB0eSgpOwotfQorI2lmIFBMQVRGT1JNKElPUykKKyAgICBVTlVTRURfUEFSQU0o
ZmlsZW5hbWVQb2xpY3kpOworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFz
dGVib2FyZE5hbWUpOworICAgIGlmICghdHlwZXMuY29udGFpbnModXJsUGFzdGVib2FyZFR5cGUo
KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gdXJsU3RyaW5nID0gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKHVybFBh
c3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlmICh1cmxTdHJpbmcuaXNF
bXB0eSgpKSB7CisgICAgICAgIC8vIE9uIGlPUywgd2UgZG9uJ3QgZ2V0IGFjY2VzcyB0byB0aGUg
Y29udGVudHMgb2YgVUlJdGVtUHJvdmlkZXJzIHVudGlsIHdlIHBlcmZvcm0gdGhlIGRyYWcgb3Bl
cmF0aW9uLgorICAgICAgICAvLyBUaHVzLCB3ZSBjb25zaWRlciBEcmFnRGF0YSB0byBjb250YWlu
IGFuIFVSTCBpZiBpdCBjb250YWlucyB0aGUgYHB1YmxpYy51cmxgIFVUSSB0eXBlLiBMYXRlciBk
b3duIHRoZQorICAgICAgICAvLyByb2FkLCB3aGVuIHdlIHBlcmZvcm0gdGhlIGRyYWcgb3BlcmF0
aW9uLCB3ZSBjYW4gdGhlbiBjaGVjayBpZiB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgaHR0cCBvciBo
dHRwcywKKyAgICAgICAgLy8gYW5kIGlmIGl0IGlzbid0LCB3ZSBiYWlsIG91dCBvZiBwYWdlIG5h
dmlnYXRpb24uCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAorICAgIFVSTCB3ZWJjb3Jl
VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsU3RyaW5nXTsKKyAgICByZXR1cm4gd2ViY29y
ZVVSTC5wcm90b2NvbElzKCJodHRwIikgfHwgd2ViY29yZVVSTC5wcm90b2NvbElzKCJodHRwcyIp
OworI2Vsc2UKKyAgICByZXR1cm4gIWFzVVJMKGZpbGVuYW1lUG9saWN5KS5pc0VtcHR5KCk7CiAj
ZW5kaWYKK30KIAogU3RyaW5nIERyYWdEYXRhOjphc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3ksIFN0cmluZyogdGl0bGUpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDc4NDc2NTc0
OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVmZWUxNmU1YmZiYWRhMDlhZTE0NWEw
Y2U3YjViMjA3NDVjOGNlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDkgQEAg
RU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRT
X0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJMRV9W
QVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7CiAK
LUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5H
KSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVO
QUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVf
Q0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFT
X1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1Nf
REVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9D
U1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9D
U1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1J
U1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChF
TkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQURf
REVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNF
Q1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlC
T0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChF
TkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVB
TSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNF
X0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxF
X05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0sp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVF
U1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJ
Q0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNf
QVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURF
T19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJ
QSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5B
QkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVv
czExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBo
b25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9JTlRF
UkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitFTkFC
TEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1T
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09W
RVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQ
VElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgp
ICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAk
KEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElO
RykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVH
SU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xF
VkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1Rf
SklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJ
T04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVO
QUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJ
QlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
RElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
ICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZG
SVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5B
QkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
KSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5B
QkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxF
X1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVO
QUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gp
ICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RF
X0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQppbmRleCAxYmQ5YjM0MjE1ZDE1ZDUx
MTcwZjczNTIxZmIzZGIwMjRjNjhiYzA5Li4xMTVhODM3MzI5NWM3NjE2YzAyMDhjMTNhMzIwODk0
ODY1ZDI1ZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQubW0KQEAgLTU5LDEwICs1OSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2Vi
S2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJLaXQxLm1tPikKLSNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0MS5tbT4KLSNlbmRp
ZgotCiBXZWJEcmFnQ2xpZW50OjpXZWJEcmFnQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
OiBtX3dlYlZpZXcod2ViVmlldykgCiB7CkBAIC0yMjIsNiArMjE4LDU1IEBAIHZvaWQgV2ViRHJh
Z0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNobWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50
JiwgY29uc3QgVVJMCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorCitib29sIFdlYkRy
YWdDbGllbnQ6OnVzZUxlZ2FjeURyYWdDbGllbnQoKQoreworICAgIC8vIEZJWE1FOiBNb3ZlIHRo
ZSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViS2l0MSBvZmYgb2YgdGhl
IGxlZ2FjeSBkcmFnIGNsaWVudC4KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJEcmFn
Q2xpZW50Ojp3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25B
Y3Rpb24sIGNvbnN0IERyYWdEYXRhJikKK3sKK30KKworV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlv
biBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBv
aW50JikKK3sKKyAgICByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbkFueTsKK30KKwordm9pZCBXZWJE
cmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJj
ZUFjdGlvbiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImKQoreworfQorCit2b2lkIFdl
YkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2UgZHJhZ0ltYWdlLCBjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGNvbnN0IEludFBvaW50JiBldmVudExvY2F0aW9uLCBjb25zdCBGbG9hdFBvaW50
JiBkcmFnSW1hZ2VBbmNob3IsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYgZnJh
bWUsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbikKK3sKKyAgICBbbV93ZWJWaWV3
IF9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOmRyYWdJbWFnZS5nZXQoKS5nZXQoKSB0ZXh0SW5kaWNh
dG9yOmRyYWdJbWFnZS5pbmRpY2F0b3JEYXRhKCkgYXRDbGllbnRQb3NpdGlvbjpldmVudExvY2F0
aW9uIGFuY2hvclBvaW50OmRyYWdJbWFnZUFuY2hvciBhY3Rpb246ZHJhZ1NvdXJjZUFjdGlvbl07
Cit9CisKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6YmVnaW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNv
bnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNl
QWN0aW9uKQoreworfQorCit2b2lkIFdlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJ
bWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBFbGVtZW50JiBlbGVtZW50LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKQoreworICAgIGlmIChhdXRv
KiBmcmFtZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+ZWRp
dG9yKCkud3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7Cit9CisKKyNpZiBFTkFCTEUoQVRUQUNITUVO
VF9FTEVNRU5UKQordm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVBdHRhY2htZW50
KGNvbnN0IFN0cmluZyYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopCit7Cit9CisjZW5kaWYKKwordm9pZCBXZWJEcmFnQ2xpZW50OjpkaWRDb25jbHVkZUVkaXRE
cmFnKCkKK3sKKyAgICBbbV93ZWJWaWV3IF9kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25d
OworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmRy
YWdDb250cm9sbGVyRGVzdHJveWVkKCkgCiB7CiAgICAgZGVsZXRlIHRoaXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNTRlM2RkMzJkNjNlN2ZhMzBhYzZjNTc1YmUwNDFi
NWY1Mjg0ZDk4OC4uMzhhNDYwMTZmOTIxYzVhYmIxMzdkMjBjZDg3M2I3ZTMwOGEwODMxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgyMCw3ICsxODIwLDggQEAgc3Rh
dGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKIH0K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1
c3BsdXMpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCiAtIChC
T09MKV9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24g
Z2xvYmFsUG9zaXRpb246KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24KIHsKICAgICByZXR1cm4gX3By
aXZhdGUtPnBhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnRyeVRvQmVnaW5EYXRhSW50
ZXJhY3Rpb25BdFBvaW50KEludFBvaW50KGNsaWVudFBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFs
UG9zaXRpb24pKTsKQEAgLTE4MjksOSArMTgzMCw5IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRp
YWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAtICh2b2lkKV9zZXREYXRhSW50ZXJh
Y3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KHN0ZDo6b3B0aW9uYWw8
VGV4dEluZGljYXRvckRhdGE+KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2lu
dCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246
KHVpbnQ2NF90KWFjdGlvbgogewogICAgIGlmIChpbmRpY2F0b3JEYXRhKQotICAgICAgICBfcHJp
dmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9j
XSBpbml0V2l0aEltYWdlOmltYWdlIHRleHRJbmRpY2F0b3JEYXRhOmluZGljYXRvckRhdGEudmFs
dWUoKSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0gcmV0YWluXTsK
KyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhID0gYWRvcHROUyhbW1dlYlVJVGV4
dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRoSW1hZ2U6aW1hZ2UgdGV4dEluZGljYXRvckRh
dGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpXSk7CiAgICAgZWxzZQotICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRh
dGEgPSBbW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aEltYWdlOmltYWdl
IHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXSByZXRhaW5dOworICAg
ICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5k
aWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOwogfQogCiAtIChDR1JlY3QpX2RhdGFJbnRlcmFjdGlv
bkNhcmV0UmVjdApAQCAtMTg0OSw1MyArMTg1MCw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRp
YWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAKIC0gKFdlYlVJVGV4dEluZGljYXRv
ckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YQogewotICAgIHJldHVybiBfcHJpdmF0ZS0+
dGV4dEluZGljYXRvckRhdGE7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBmbG9hdFJl
Y3RzRm9yQ0dSZWN0QXJyYXkoTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVzKQotewotICAg
IFZlY3RvcjxGbG9hdFJlY3Q+IHJlY3RzOwotICAgIGZvciAoTlNWYWx1ZSAqcmVjdFZhbHVlIGlu
IHJlY3RWYWx1ZXMpCi0gICAgICAgIHJlY3RzLmFwcGVuZChyZWN0VmFsdWUuQ0dSZWN0VmFsdWUp
OwotICAgIHJldHVybiByZWN0czsKLX0KLQotLSAoVUlJbWFnZSAqKV9jcmVhdGVJbWFnZVdpdGhQ
bGF0dGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBib3VuZGluZ1JlY3Q6KENHUmVjdClib3Vu
ZGluZ1JlY3QgY29udGVudFNjYWxlRmFjdG9yOihDR0Zsb2F0KWNvbnRlbnRTY2FsZUZhY3RvciBj
bGlwcGluZ1JlY3RzOihOU0FycmF5PE5TVmFsdWUgKj4gKiljbGlwcGluZ1JlY3RzCi17Ci0gICAg
aWYgKCFfcHJpdmF0ZS0+cGFnZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIGlmICghaW1h
Z2UpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBDR0Zsb2F0IGltYWdlU2NhbGVGYWN0b3Ig
PSBjb250ZW50U2NhbGVGYWN0b3IgLyBfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KTsKLSAgICBDR1JlY3QgaW1hZ2VQYWludEJvdW5kcyA9IENHUmVjdE1ha2UoMCwgMCwgQ0dSZWN0
R2V0V2lkdGgoYm91bmRpbmdSZWN0KSAqIGltYWdlU2NhbGVGYWN0b3IsIENHUmVjdEdldEhlaWdo
dChib3VuZGluZ1JlY3QpICogaW1hZ2VTY2FsZUZhY3Rvcik7Ci0gICAgVUlHcmFwaGljc0JlZ2lu
SW1hZ2VDb250ZXh0V2l0aE9wdGlvbnMoaW1hZ2VQYWludEJvdW5kcy5zaXplLCBOTywgX3ByaXZh
dGUtPnBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgIENHQ29udGV4dFJlZiBuZXdDb250
ZXh0ID0gVUlHcmFwaGljc0dldEN1cnJlbnRDb250ZXh0KCk7Ci0KLSAgICBhdXRvIHNjYWxlZENs
aXBwaW5nUmVjdHMgPSBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXkoY2xpcHBpbmdSZWN0cyk7Ci0g
ICAgZm9yIChhdXRvJiB0ZXh0Qm91bmRpbmdSZWN0IDogc2NhbGVkQ2xpcHBpbmdSZWN0cykKLSAg
ICAgICAgdGV4dEJvdW5kaW5nUmVjdC5zY2FsZShpbWFnZVNjYWxlRmFjdG9yKTsKLQotICAgIGlm
ICghc2NhbGVkQ2xpcHBpbmdSZWN0cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byB3ZWJjb3Jl
UGF0aCA9IFBhdGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzKHNjYWxlZENs
aXBwaW5nUmVjdHMsIDYgKiBpbWFnZVNjYWxlRmFjdG9yKTsKLSAgICAgICAgW1tnZXRVSUJlemll
clBhdGhDbGFzcygpIGJlemllclBhdGhXaXRoQ0dQYXRoOndlYmNvcmVQYXRoLmVuc3VyZVBsYXRm
b3JtUGF0aCgpXSBhZGRDbGlwXTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
bWF0Y2ggdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRleHQsIG9yIGlmIHRoZSBiYWNrZ3Jv
dW5kIGNhbm5vdCBiZSBjYXB0dXJlZCBhcyBhIHNpbmdsZSBjb2xvciwgd2Ugc2hvdWxkIGZhbGwg
YmFjawotICAgIC8vIHRvIGEgZGVmYXVsdCByZXByZXNlbnRhdGlvbiwgZS5nLiBibGFjayB0ZXh0
IG9uIGEgd2hpdGUgYmFja2dyb3VuZC4KLSAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29s
b3IobmV3Q29udGV4dCwgWyhVSUNvbG9yICopW2dldFVJQ29sb3JDbGFzcygpIHdoaXRlQ29sb3Jd
IENHQ29sb3JdKTsKLSAgICBmb3IgKGF1dG8gdGV4dEJvdW5kaW5nUmVjdCA6IHNjYWxlZENsaXBw
aW5nUmVjdHMpCi0gICAgICAgIENHQ29udGV4dEZpbGxSZWN0KG5ld0NvbnRleHQsIHRleHRCb3Vu
ZGluZ1JlY3QpOwotCi0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKG5ld0NvbnRleHQsIDAsIENH
UmVjdEdldEhlaWdodChpbWFnZVBhaW50Qm91bmRzKSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0o
bmV3Q29udGV4dCwgMSwgLTEpOwotICAgIENHQ29udGV4dERyYXdJbWFnZShuZXdDb250ZXh0LCBp
bWFnZVBhaW50Qm91bmRzLCBpbWFnZS5DR0ltYWdlKTsKLQotICAgIFVJSW1hZ2UgKnByZXZpZXdJ
bWFnZSA9IFVJR3JhcGhpY3NHZXRJbWFnZUZyb21DdXJyZW50SW1hZ2VDb250ZXh0KCk7Ci0gICAg
VUlHcmFwaGljc0VuZEltYWdlQ29udGV4dCgpOwotCi0gICAgcmV0dXJuIFtwcmV2aWV3SW1hZ2Ug
cmV0YWluXTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhLmdldCgpOwog
fQogCiAtIChXZWJEcmFnRGVzdGluYXRpb25BY3Rpb24pZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFz
a0ZvclNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCkBAIC0xOTAzLDY1ICsxODU4
LDY3IEBAIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBmbG9hdFJlY3RzRm9yQ0dSZWN0QXJyYXko
TlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVzCiAgICAgcmV0dXJuIFtzZWxmLl9VSURlbGVn
YXRlRm9yd2FyZGVyIHdlYlZpZXc6c2VsZiBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yU2Vz
c2lvbjpzZXNzaW9uXTsKIH0KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFz
X2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3QWRkaXRpb25zLm1tPikKLSNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0FkZGl0aW9ucy5tbT4KLSNlbmRpZgotCi0jZWxzZQot
LSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0
aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uCi17Ci0gICAgcmV0dXJu
IE5POwotfQotLSAodm9pZClfc2V0RGF0YUludGVyYWN0aW9uRGF0YTooQ0dJbWFnZVJlZilpbWFn
ZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9yRGF0YSBhdENsaWVu
dFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFu
Y2hvclBvaW50IGFjdGlvbjoodWludDY0X3QpYWN0aW9uCi17Ci19Ci0tIChXZWJVSVRleHRJbmRp
Y2F0b3JEYXRhICopX2dldERhdGFJbnRlcmFjdGlvbkRhdGEKKy0gKERyYWdEYXRhKWRyYWdEYXRh
Rm9yU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVp
bnQ2NF90KW9wZXJhdGlvbgogewotICAgIHJldHVybiBuaWw7CisgICAgYXV0byBkcmFnT3BlcmF0
aW9uTWFzayA9IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KG9wZXJhdGlvbik7CisgICAgYXV0
byBkcmFnRGVzdGluYXRpb25NYXNrID0gc3RhdGljX2Nhc3Q8RHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
Pihbc2VsZiBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yU2Vzc2lvbjpzZXNzaW9uXSk7Cisg
ICAgcmV0dXJuIHsgc2Vzc2lvbiwgcm91bmRlZEludFBvaW50KGNsaWVudFBvc2l0aW9uKSwgcm91
bmRlZEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgZHJhZ09wZXJhdGlvbk1hc2ssIERyYWdBcHBs
aWNhdGlvbk5vbmUsIGRyYWdEZXN0aW5hdGlvbk1hc2sgfTsKIH0KLS0gKHVpbnQ2NF90KV9lbnRl
cmVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVp
bnQ2NF90KW9wZXJhdGlvbgorCistICh1aW50NjRfdClfZW50ZXJlZERhdGFJbnRlcmFjdGlvbjoo
aWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9u
IGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJh
dGlvbgogewotICAgIHJldHVybiAwOworICAgIFdlYlRocmVhZExvY2soKTsKKyAgICBhdXRvIGRy
YWdEYXRhID0gW3NlbGYgZHJhZ0RhdGFGb3JTZXNzaW9uOnNlc3Npb24gY2xpZW50OmNsaWVudFBv
c2l0aW9uIGdsb2JhbDpnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246b3BlcmF0aW9uXTsKKyAgICBy
ZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0VudGVyZWQoZHJhZ0Rh
dGEpOwogfQogCi0tICh1aW50NjRfdClfdXBkYXRlZERhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUlu
dGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQp
Z2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb24KKy0gKHVpbnQ2NF90
KV91cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGll
bnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9u
IG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgV2Vi
VGhyZWFkTG9jaygpOworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvclNlc3Np
b246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9w
ZXJhdGlvbjpvcGVyYXRpb25dOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRy
b2xsZXIoKS5kcmFnVXBkYXRlZChkcmFnRGF0YSk7CiB9Ci0tICh2b2lkKV9leGl0ZWREYXRhSW50
ZXJhY3Rpb246KGlkKWRhdGFJbnRlcmFjdGlvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRp
b24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3Bl
cmF0aW9uCistICh2b2lkKV9leGl0ZWREYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9u
PilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQp
Z2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb24KIHsKKyAgICBXZWJU
aHJlYWRMb2NrKCk7CisgICAgYXV0byBkcmFnRGF0YSA9IFtzZWxmIGRyYWdEYXRhRm9yU2Vzc2lv
bjpzZXNzaW9uIGNsaWVudDpjbGllbnRQb3NpdGlvbiBnbG9iYWw6Z2xvYmFsUG9zaXRpb24gb3Bl
cmF0aW9uOm9wZXJhdGlvbl07CisgICAgX3ByaXZhdGUtPnBhZ2UtPmRyYWdDb250cm9sbGVyKCku
ZHJhZ0V4aXRlZChkcmFnRGF0YSk7CiB9Ci0tICh2b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0aW9u
OihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2Jh
bDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgor
LSAodm9pZClfcGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Np
b24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQ
b3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbgogeworICAgIFtzZWxmIF90cnlU
b1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246c2Vzc2lvbiBjbGllbnQ6Y2xpZW50UG9zaXRpb24gZ2xv
YmFsOmdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25dOwogfQogCi0tIChCT09MKV90
cnlUb1BlcmZvcm1EYXRhSW50ZXJhY3Rpb246KGlkKWRhdGFJbnRlcmFjdGlvbiBjbGllbnQ6KENH
UG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJh
dGlvbjoodWludDY0X3Qpb3BlcmF0aW9uCistIChCT09MKV90cnlUb1BlcmZvcm1EYXRhSW50ZXJh
Y3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQ
b3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRf
dClvcGVyYXRpb24KIHsKLSAgICByZXR1cm4gTk87CisgICAgV2ViVGhyZWFkTG9jaygpOworICAg
IGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvclNlc3Npb246c2Vzc2lvbiBjbGllbnQ6
Y2xpZW50UG9zaXRpb24gZ2xvYmFsOmdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjpvcGVyYXRpb25d
OworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5wZXJmb3JtRHJh
Z09wZXJhdGlvbihkcmFnRGF0YSk7CiB9CiAKIC0gKHZvaWQpX2VuZGVkRGF0YUludGVyYWN0aW9u
OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbgog
eworICAgIFdlYlRocmVhZExvY2soKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xs
ZXIoKS5kcmFnRW5kZWQoKTsKKyAgICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0
b3IgPSBudWxscHRyOwogfQogCi0tIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2RhdGFPcGVy
YXRpb25UZXh0SW5kaWNhdG9yCi17Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotI2lmIFBMQVRGT1JN
KElPUykKLS0gKFVJSW1hZ2UgKilfY3JlYXRlSW1hZ2VXaXRoUGxhdHRlckZvckltYWdlOihVSUlt
YWdlICopaW1hZ2UgYm91bmRpbmdSZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0IGNvbnRlbnRTY2Fs
ZUZhY3RvcjooQ0dGbG9hdCljb250ZW50U2NhbGVGYWN0b3IgY2xpcHBpbmdSZWN0czooTlNBcnJh
eTxOU1ZhbHVlICo+ICopY2xpcHBpbmdSZWN0cworLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0
YUludGVyYWN0aW9uCiB7Ci0gICAgcmV0dXJuIG5pbDsKLX0KKyAgICBfcHJpdmF0ZS0+ZGF0YU9w
ZXJhdGlvblRleHRJbmRpY2F0b3IgPSBudWxscHRyOworICAgIGF1dG8qIHBhZ2UgPSBfcHJpdmF0
ZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKIAotLSAoQ0dSZWN0KV9k
YXRhSW50ZXJhY3Rpb25DYXJldFJlY3QKLXsKLSAgICByZXR1cm4gQ0dSZWN0TnVsbDsKKyAgICBz
dGF0aWMgYXV0byBkZWZhdWx0RWRpdERyYWdUZXh0SW5kaWNhdG9yT3B0aW9ucyA9IFRleHRJbmRp
Y2F0b3JPcHRpb25JbmNsdWRlU25hcHNob3RPZkFsbFZpc2libGVDb250ZW50V2l0aG91dFNlbGVj
dGlvbiB8IFRleHRJbmRpY2F0b3JPcHRpb25FeHBhbmRDbGlwQmV5b25kVmlzaWJsZVJlY3QgfCBU
ZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50IHwgVGV4dEluZGljYXRvck9wdGlvbklu
Y2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVjdGlvbiB8IFRleHRJbmRpY2F0b3JPcHRpb25Q
YWludEJhY2tncm91bmRzIHwgVGV4dEluZGljYXRvck9wdGlvblVzZVNlbGVjdGlvblJlY3RGb3JT
aXppbmcgfCBUZXh0SW5kaWNhdG9yT3B0aW9uSW5jbHVkZVNuYXBzaG90V2l0aFNlbGVjdGlvbkhp
Z2hsaWdodCB8IFRleHRJbmRpY2F0b3JPcHRpb25SZXNwZWN0VGV4dENvbG9yOworICAgIGF1dG8m
IGZyYW1lID0gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Cisg
ICAgaWYgKGF1dG8gcmFuZ2UgPSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS50b05vcm1h
bGl6ZWRSYW5nZSgpKSB7CisgICAgICAgIGlmIChhdXRvIHRleHRJbmRpY2F0b3IgPSBUZXh0SW5k
aWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UoKnJhbmdlLCBkZWZhdWx0RWRpdERyYWdUZXh0SW5kaWNh
dG9yT3B0aW9ucywgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUsIEZs
b2F0U2l6ZSgpKSkKKyAgICAgICAgICAgIF9wcml2YXRlLT5kYXRhT3BlcmF0aW9uVGV4dEluZGlj
YXRvciA9IGFkb3B0TlMoW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9jXSBpbml0V2l0aElt
YWdlOm5pbCB0ZXh0SW5kaWNhdG9yRGF0YTp0ZXh0SW5kaWNhdG9yLT5kYXRhKCkgc2NhbGU6cGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOworICAgIH0KIH0KLSNlbmRpZgogCi0jZW5kaWYgLy8g
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQogCiBzdGF0aWMgTlNNdXRh
YmxlU2V0ICprbm93blBsdWdpbk1JTUVUeXBlcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmgKaW5kZXggMjNkODM3ZDZkYTRiZjYyYmNmZTdhNWM3MmJhNDBjMTAzMWFh
NzkzMS4uMGU2ZGYyN2FhYjAxZjU3MTUyMTYzYjI3NjYwMmIyOGNhODg4OGE3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjk4LDcgKzI5OCw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBXZWJV
SVRleHRJbmRpY2F0b3JEYXRhICp0ZXh0SW5kaWNhdG9yRGF0YTsKKyAgICBSZXRhaW5QdHI8V2Vi
VUlUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dEluZGljYXRvckRhdGE7CiAgICAgUmV0YWluUHRyPFdl
YlVJVGV4dEluZGljYXRvckRhdGE+IGRhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGIzNzRjYjNl
YTViOTQ2YjZlYzA2YjliNGU2NTE1MWUwMmJhOGI3ZGUuLjc3OTczNmExNmFmZjYwZTNmYTVhMGFj
N2VhMzY0MDZkYzM2NGYyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5tbQpAQCAtMjEzLDkgKzIxMyw2IEBAIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJW
aWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZsdXNoQ29udHJvbGxlciogZmx1CiAgICAgW19j
YXJldENoYW5nZUxpc3RlbmVycyByZWxlYXNlXTsKICAgICBbX2ZpeGVkUG9zaXRpb25Db250ZW50
IHJlbGVhc2VdOwogI2VuZGlmCi0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW3Rl
eHRJbmRpY2F0b3JEYXRhIHJlbGVhc2VdOwotI2VuZGlmCiAKICAgICBbc3VwZXIgZGVhbGxvY107
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNGZk
MDc1YTNjMGJjYWVhNzhkMmExODA3ZTdlYzU2NTlkNzliZmJlMC4uMDlhYTcwMjJjYTBkODVmYWVj
MzFkZTk3OGZhZDczNGZiNmIzYTQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaApAQCAtMTE4LDYgKzExOCwxMCBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlF1
aWNrTG9va0ZpbGVOYW1lS2V5OwogZXh0ZXJuIE5TU3RyaW5nICpXZWJRdWlja0xvb2tVVElLZXk7
CiAjZW5kaWYKIAorI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwCitAcHJvdG9jb2wgVUlEcm9wU2Vzc2lvbjsKKyNlbmRpZgor
CiBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXZWJWaWV3V2lsbENsb3NlTm90aWZpY2F0aW9uOwog
CiAjaWYgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUCkBAIC00NjQsMjEgKzQ2OCwyMSBAQCBDb3Vs
ZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KICsgKHZvaWQpX3JlbGVhc2VNZW1vcnlOb3c7
CiAKIC0gKHZvaWQpX3JlcGxhY2VDdXJyZW50SGlzdG9yeUl0ZW06KFdlYkhpc3RvcnlJdGVtICop
aXRlbTsKLSNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCiAKKyNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKIC0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRl
cmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludCln
bG9iYWxQb3NpdGlvbjsKIC0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVy
YWN0aW9uRGF0YTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nLCBnZXR0
ZXI9X2RhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yKSBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICpk
YXRhT3BlcmF0aW9uVGV4dEluZGljYXRvcjsKLS0gKHVpbnQ2NF90KV9lbnRlcmVkRGF0YUludGVy
YWN0aW9uOihpZClkYXRhSW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9u
IGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJh
dGlvbjsKLS0gKHVpbnQ2NF90KV91cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZClkYXRhSW50ZXJh
Y3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9i
YWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKHZvaWQpX2V4aXRl
ZERhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDooQ0dQb2ludCljbGll
bnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50
NjRfdClvcGVyYXRpb247Ci0tICh2b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZClkYXRh
SW50ZXJhY3Rpb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2lu
dClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKLS0gKEJPT0wp
X3RyeVRvUGVyZm9ybURhdGFJbnRlcmFjdGlvbjooaWQpZGF0YUludGVyYWN0aW9uIGNsaWVudDoo
Q0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3Bl
cmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247CistICh1aW50NjRfdClfZW50ZXJlZERhdGFJbnRl
cmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVu
dFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2
NF90KW9wZXJhdGlvbjsKKy0gKHVpbnQ2NF90KV91cGRhdGVkRGF0YUludGVyYWN0aW9uOihpZCA8
VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xv
YmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9u
OworLSAodm9pZClfZXhpdGVkRGF0YUludGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vz
c2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2Jh
bFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uOworLSAodm9pZClfcGVyZm9y
bURhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1Bv
aW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRp
b246KHVpbnQ2NF90KW9wZXJhdGlvbjsKKy0gKEJPT0wpX3RyeVRvUGVyZm9ybURhdGFJbnRlcmFj
dGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBv
c2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90
KW9wZXJhdGlvbjsKIC0gKHZvaWQpX2VuZGVkRGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVu
dFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludCljbGllbnRQb3NpdGlvbjsKIAotI2lmIFRBUkdFVF9P
U19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9kYXRhSW50
ZXJhY3Rpb25DYXJldFJlY3QpIENHUmVjdCBkYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q7Ci0tIChV
SUltYWdlICopX2NyZWF0ZUltYWdlV2l0aFBsYXR0ZXJGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdl
IGJvdW5kaW5nUmVjdDooQ0dSZWN0KWJvdW5kaW5nUmVjdCBjb250ZW50U2NhbGVGYWN0b3I6KENH
RmxvYXQpY29udGVudFNjYWxlRmFjdG9yIGNsaXBwaW5nUmVjdHM6KE5TQXJyYXk8TlNWYWx1ZSAq
PiAqKWNsaXBwaW5nUmVjdHM7CisjZW5kaWYKKwogLy8gRGVwcmVjYXRlZC4gVXNlIC1bV2ViRGF0
YVNvdXJjZSBfcXVpY2tMb29rQ29udGVudF0gaW5zdGVhZC4KIC0gKE5TRGljdGlvbmFyeSAqKXF1
aWNrTG9va0NvbnRlbnRGb3JVUkw6KE5TVVJMICopdXJsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDc4NDc2NTc0OWJkMGU2ZjU1NGNkNWZiZTkxM2Y0ZTE5Yjk4MGNkZDAuLmVmZWUxNmU1YmZiYWRh
MDlhZTE0NWEwY2U3YjViMjA3NDVjOGNlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDkg
QEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZP
TlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJM
RV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FO
VkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9G
SUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1Jf
VklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFU
QUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BF
Uk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQ
QURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxF
X0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRF
UlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9L
RVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NU
UkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
UVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVO
QUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9W
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhv
bmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9
aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9J
TlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitF
TkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZP
Uk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
X09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9Q
QVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZf
Q0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BB
VEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8y
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JT
X0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkg
JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExF
UikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
ICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZB
U1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNf
TEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAk
KEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FU
VFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19T
VUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FV
RVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xC
T1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOGYwNDQ1NGU3
NjNhZGMzOWI5YWFlNjkwMWE5ZDAyNmQ2NjRkMzlmZC4uZTRlZDBiMzc3MzNiNmM4NTFmODFhOGJj
MzJiZDZhOGVjYzJkZWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMjksMTQgKzI5LDE0IEBACiAjaW1wb3J0ICJB
UElVSUNsaWVudC5oIgogI2ltcG9ydCAiRGF0YURldGVjdGlvblJlc3VsdC5oIgogI2ltcG9ydCAi
TG9hZFBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIldlYlBy
b2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxp
ZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9X
ZWJQYWdlUHJveHlBZGRpdGlvbnMubW0+KQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBh
Z2VQcm94eUFkZGl0aW9ucy5tbT4KLSNlbmRpZgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMDIsNCArMTAyLDM3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlcywKICAgICB9CiB9CiAKKyNpZiBQTEFURk9STShJT1MpICYmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREcmFnSW1hZ2UoY29uc3QgSW50UG9pbnQm
IGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdl
SGFuZGxlLCBzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yLCBj
b25zdCBGbG9hdFBvaW50JiBkcmFnSW1hZ2VBbmNob3IsIHVpbnQ2NF90IGFjdGlvbikKK3sKKyAg
ICBtX3BhZ2VDbGllbnQuc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY2xpZW50UG9zaXRp
b24sIGRyYWdJbWFnZUhhbmRsZSwgdGV4dEluZGljYXRvciwgZHJhZ0ltYWdlQW5jaG9yLCBhY3Rp
b24pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29u
c3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
Kwordm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CisjZW5kaWYKKwordm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdDYXJldFJlY3QoY29uc3QgSW50
UmVjdCYgZHJhZ0NhcmV0UmVjdCkKK3sKKyAgICBpZiAobV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9
PSBkcmFnQ2FyZXRSZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHByZXZpb3VzUmVj
dCA9IG1fY3VycmVudERyYWdDYXJldFJlY3Q7CisgICAgbV9jdXJyZW50RHJhZ0NhcmV0UmVjdCA9
IGRyYWdDYXJldFJlY3Q7CisgICAgbV9wYWdlQ2xpZW50LmRpZENoYW5nZURhdGFJbnRlcmFjdGlv
bkNhcmV0UmVjdChwcmV2aW91c1JlY3QsIGRyYWdDYXJldFJlY3QpOworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCBmYzk0ZTUyNmEzMDUwNTJkYzQ4Y2RlODUwNzE5NzlhNTU3NGNjOTdlLi4zMzRkNTgwNjQz
YWNkOWIxMTZhMzA5NjI5ZTkzM2U3NmVmOGEzNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM5LDE2
ICszOSwxMyBAQAogI2ltcG9ydCAiV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVy
LmgiCiAjaW1wb3J0IDxVSUtpdC9VSVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRR
dWFkLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFk
ZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnMuaD4pCi0jaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zLmg+Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPcGVuUGFuZWxQYXJhbWV0ZXJzOwogfQpAQCAt
NzYsNyArNzMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBAY2xhc3MgX1VJV2ViSGlnaGxpZ2h0
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKLUBjbGFzcyBXS0RhdGFJbnRlcmFjdGlvbkNhcmV0VmlldzsKK0BjbGFzcyBfVUlUZXh0RHJh
Z0NhcmV0VmlldzsKICNlbmRpZgogCiB0eXBlZGVmIHZvaWQgKF5VSVdLQXV0b2NvcnJlY3Rpb25D
b21wbGV0aW9uSGFuZGxlcikoVUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMgKnJlY3RzRm9ySW5wdXQp
OwpAQCAtMTExLDYgKzEwOCwzMiBAQCB0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKK3N0cnVjdCBXS0RhdGFJ
bnRlcmFjdGlvblN0YXRlIHsKKyAgICBSZXRhaW5QdHI8VUlJbWFnZT4gaW1hZ2U7CisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4gaW5kaWNhdG9yRGF0YTsKKyAg
ICBDR1BvaW50IGdlc3R1cmVPcmlnaW4geyBDR1BvaW50WmVybyB9OworICAgIENHUG9pbnQgYWRq
dXN0ZWRPcmlnaW4geyBDR1BvaW50WmVybyB9OworICAgIENHUG9pbnQgbGFzdEdsb2JhbFBvc2l0
aW9uIHsgQ0dQb2ludFplcm8gfTsKKyAgICBDR1JlY3QgZWxlbWVudEJvdW5kcyB7IENHUmVjdFpl
cm8gfTsKKyAgICBCT09MIGRpZEJlZ2luRHJhZ2dpbmcgeyBOTyB9OworICAgIEJPT0wgaXNQZXJm
b3JtaW5nT3BlcmF0aW9uIHsgTk8gfTsKKyAgICBCT09MIGlzQW5pbWF0aW5nQ29uY2x1ZGVFZGl0
RHJhZyB7IE5PIH07CisgICAgUmV0YWluUHRyPGlkIDxVSURyYWdTZXNzaW9uPj4gZHJhZ1Nlc3Np
b247CisgICAgUmV0YWluUHRyPGlkIDxVSURyb3BTZXNzaW9uPj4gZHJvcFNlc3Npb247CisgICAg
QmxvY2tQdHI8dm9pZCgpPiBkcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7CisgICAgV2ViQ29yZTo6
RHJhZ1NvdXJjZUFjdGlvbiBzb3VyY2VBY3Rpb24geyBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9u
Tm9uZSB9OworCisgICAgU3RyaW5nIGxpbmtUaXRsZTsKKyAgICBXZWJDb3JlOjpVUkwgbGlua1VS
TDsKKworICAgIFJldGFpblB0cjxVSVZpZXc+IHZpc2libGVDb250ZW50Vmlld1NuYXBzaG90Owor
ICAgIFJldGFpblB0cjxfVUlUZXh0RHJhZ0NhcmV0Vmlldz4gY2FyZXRWaWV3OworfTsKKworI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKIHN0cnVjdCBXS1NlbGVjdGlvbkRyYXdpbmdJ
bmZvIHsKICAgICBlbnVtIGNsYXNzIFNlbGVjdGlvblR5cGUgeyBOb25lLCBQbHVnaW4sIFJhbmdl
IH07CiAgICAgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbygpOwpAQCAtMjIzLDggKzI0Niw4IEBAIHN0
cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKICAgICBXZWJLaXQ6OldLRGF0YUludGVyYWN0aW9uU3RhdGUgX2RhdGFJbnRlcmFjdGlvblN0
YXRlOwotICAgIFJldGFpblB0cjxXS0RhdGFJbnRlcmFjdGlvbj4gX2RhdGFJbnRlcmFjdGlvbjsK
LSAgICBSZXRhaW5QdHI8V0tEYXRhT3BlcmF0aW9uPiBfZGF0YU9wZXJhdGlvbjsKKyAgICBSZXRh
aW5QdHI8VUlEcmFnSW50ZXJhY3Rpb24+IF9kYXRhSW50ZXJhY3Rpb247CisgICAgUmV0YWluUHRy
PFVJRHJvcEludGVyYWN0aW9uPiBfZGF0YU9wZXJhdGlvbjsKICAgICBDR1BvaW50IF9kZWZlcnJl
ZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uOwogI2VuZGlmCiB9CkBAIC0yMzMsNyArMjU2LDcg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogQGludGVyZmFjZSBXS0NvbnRlbnRW
aWV3IChXS0ludGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRv
dWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBV
SVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBX
S0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUK
ICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICAsIFdLRGF0YUludGVyYWN0aW9uRGVs
ZWdhdGUsIFdLRGF0YU9wZXJhdGlvbkRlbGVnYXRlCisgICAgLCBVSURyYWdJbnRlcmFjdGlvbkRl
bGVnYXRlLCBVSURyb3BJbnRlcmFjdGlvbkRlbGVnYXRlCiAjZW5kaWYKID4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQppbmRleCBiNjRhYjM1YzkwOTlhNjBiZmI0NThmMmQzZTU2M2Q2MmFhOGU1NDk3Li44OGUx
YzJmNmU1N2FmYTNiYjMxMWE1YjFmMGRkMThiMGUzMDQ4ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpA
QCAtODMsMTMgKzgzLDI2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNlbGVj
dGlvblJlY3QuaD4gLy8gRklYTUU6IFdLMiBzaG91bGQgbm90IGluY2x1ZGUgV2ViS2l0IGhlYWRl
cnMhCisjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCi0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJ
T04pCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKy8vIEZJWE1FOiBNb3ZlIHByaXZhdGUgaGVh
ZGVycyB0byBVSUtpdFNQSS5oIGFuZCBhZGQgZGVjbGFyYXRpb25zIGFzIG5lZWRlZCBmb3IgYnVp
bGRpbmcgb24gT3BlblNvdXJjZSBhZ2FpbnN0IHRoZSBpT1MgMTEgU0RLLgorI2ltcG9ydCA8VUlL
aXQvVUlEcmFnSW50ZXJhY3Rpb24uaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ0ludGVyYWN0aW9u
X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzLmg+Cisj
aW1wb3J0IDxVSUtpdC9VSURyYWdQcmV2aWV3X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJ
RHJhZ1Nlc3Npb24uaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ2dpbmcuaD4KKyNpbXBvcnQgPFVJ
S2l0L1VJRHJvcEludGVyYWN0aW9uLmg+CisjaW1wb3J0IDxVSUtpdC9VSVByZXZpZXdJbnRlcmFj
dGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlVUkxEcmFnUHJldmlld1ZpZXcuaD4KKyNpbXBvcnQg
PFVJS2l0L19VSVRleHREcmFnQ2FyZXRWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmg+Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKQogCiBAaW50ZXJmYWNlIFVJRXZlbnQoVUlFdmVudEludGVybmFsKQog
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgVUlLZXlib2FyZElucHV0RmxhZ3MgX2lucHV0
RmxhZ3M7CkBAIC00OTMsMTAgKzUwNiw2IEBAIGNvbnN0IENHRmxvYXQgbWluaW11bVRhcEhpZ2hs
aWdodFJhZGl1cyA9IDIuMDsKIAogQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcgKFdLSW50
ZXJhY3Rpb24pCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRl
KDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zLm1tPikK
LSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlv
bnMubW0+Ci0jZW5kaWYKLQogLSAodm9pZClfY3JlYXRlQW5kQ29uZmlndXJlRG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXIKIHsKICAgICBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9w
dE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBh
Y3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNvZ25pemVkOildKTsKQEAgLTQxNTcsNiArNDE2
Niw2NTQgQEAgc3RhdGljIGJvb2wgaXNBc3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VHlwZSB0eXBl
KQogICAgICAgICBjb21wbGV0aW9uKG5pbCwgbmlsKTsKIH0KIAorI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisKK3N0YXRpYyBOU1RpbWVJbnRlcnZhbCBsb25nUHJlc3NBY3Rpb25EZWxheUFmdGVy
TGlmdCgpCit7CisgICAgcmV0dXJuIF9VSURyYWdJbnRlcmFjdGlvbkRlZmF1bHRDb21wZXRpbmdM
b25nUHJlc3NEZWxheSgpIC0gX1VJRHJhZ0ludGVyYWN0aW9uRGVmYXVsdExpZnREZWxheSgpOwor
fQorCistIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pd2ViVmlld1VJRGVsZWdhdGUKK3sKKyAg
ICByZXR1cm4gKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilbX3dlYlZpZXcgVUlEZWxlZ2F0ZV07
Cit9CisKKy0gKHZvaWQpc2V0dXBEYXRhSW50ZXJhY3Rpb25EZWxlZ2F0ZXMKK3sKKyAgICBfZGF0
YUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJRHJhZ0ludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0
aERlbGVnYXRlOnNlbGZdKTsKKyAgICBfZGF0YU9wZXJhdGlvbiA9IGFkb3B0TlMoW1tVSURyb3BJ
bnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxmXSk7CisgICAgW3NlbGYgYWRk
SW50ZXJhY3Rpb246X2RhdGFJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgW3NlbGYgYWRkSW50ZXJh
Y3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCldOworfQorCistICh2b2lkKXRlYXJkb3duRGF0YUlu
dGVyYWN0aW9uRGVsZWdhdGVzCit7CisgICAgaWYgKF9kYXRhSW50ZXJhY3Rpb24pCisgICAgICAg
IFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9kYXRhSW50ZXJhY3Rpb24uZ2V0KCldOworCisgICAg
aWYgKF9kYXRhT3BlcmF0aW9uKQorICAgICAgICBbc2VsZiByZW1vdmVJbnRlcmFjdGlvbjpfZGF0
YU9wZXJhdGlvbi5nZXQoKV07CisKKyAgICBfZGF0YUludGVyYWN0aW9uID0gbmlsOworICAgIF9k
YXRhT3BlcmF0aW9uID0gbmlsOworCisgICAgW3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9u
U3RhdGVdOworfQorCistICh2b2lkKV9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTooUmV0
YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIHdpdGhJbmRpY2F0b3JEYXRhOihzdGQ6Om9wdGlvbmFs
PFRleHRJbmRpY2F0b3JEYXRhPilpbmRpY2F0b3JEYXRhIGF0Q2xpZW50UG9zaXRpb246KENHUG9p
bnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9u
Oih1aW50NjRfdClhY3Rpb24KK3sKKyAgICBBU1NFUlQoYWN0aW9uICE9IERyYWdTb3VyY2VBY3Rp
b25Ob25lKTsKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuaW1hZ2UgPSBhZG9wdE5TKFtbVUlJ
bWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmltYWdlLmdldCgpIHNjYWxlOl9wYWdlLT5kZXZp
Y2VTY2FsZUZhY3RvcigpIG9yaWVudGF0aW9uOlVJSW1hZ2VPcmllbnRhdGlvblVwXSk7CisgICAg
X2RhdGFJbnRlcmFjdGlvblN0YXRlLmluZGljYXRvckRhdGEgPSBpbmRpY2F0b3JEYXRhOworICAg
IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb24gPSBzdGF0aWNfY2FzdDxEcmFnU291
cmNlQWN0aW9uPihhY3Rpb24pOworCisgICAgLy8gQXMgdGhlIGRyYWcgaXMgYmVpbmcgcmVjb2du
aXplZCwgc2NoZWR1bGUgdGhlIGFjdGlvbiBzaGVldCB0byBzaG93IGluIDUwMCBtcywgaWYgdGhl
cmUgaXMgYW4gYWN0aW9uIHNoZWV0IHRvIGJlIHNob3duLgorICAgIC8vIFdlIHdpbGwgaGFuZGxl
IHNob3dpbmcgdGhlIGFjdGlvbiBzaGVldCBoZXJlLCBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2gg
dGhlIGxvbmcgcHJlc3MgZ2VzdHVyZSByZWNvZ25pemVyLgorICAgIFtfbG9uZ1ByZXNzR2VzdHVy
ZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgW19sb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplciBzZXRFbmFibGVkOllFU107CisgICAgW3NlbGYgY2FuY2VsRGVmZXJyZWRBY3Rpb25BdERy
YWdPcmlnaW5dOworICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybURl
ZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luKSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OmxvbmdQ
cmVzc0FjdGlvbkRlbGF5QWZ0ZXJMaWZ0KCldOworICAgIF9kZWZlcnJlZEFjdGlvblNoZWV0UmVx
dWVzdExvY2F0aW9uID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmdlc3R1cmVPcmlnaW47Cit9CisK
Ky0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDooQk9PTClzdGFy
dGVkCit7CisgICAgQmxvY2tQdHI8dm9pZCgpPiBzYXZlZENvbXBsZXRpb25CbG9jayA9IF9kYXRh
SW50ZXJhY3Rpb25TdGF0ZS5kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7CisgICAgX2RhdGFJbnRl
cmFjdGlvblN0YXRlLmRyYWdTdGFydENvbXBsZXRpb25CbG9jayA9IG5pbDsKKyAgICBBU1NFUlQo
c2F2ZWRDb21wbGV0aW9uQmxvY2spOworCisgICAgaWYgKHN0YXJ0ZWQpIHsKKyAgICAgICAgLy8g
U2luY2Ugd2UncmUgZ29pbmcgdGhyb3VnaCB3aXRoIHRoZSBkcmFnLCBkb24ndCBhbGxvdyB0aGUg
aGlnaGxpZ2h0IGxvbmcgcHJlc3MgZ2VzdHVyZSByZWNvZ25pemVyIHRvIGZpcmUgYSBzeW50aGV0
aWMgY2xpY2suCisgICAgICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
cl07CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIHJlamVjdGVkIHRo
ZSBkcmFnIHN0YXJ0IHJlcXVlc3QsIHNvIGRvbid0IGdvIHRocm91Z2ggd2l0aCB0aGUgZHJhZy4K
KyAgICAgICAgLy8gQnkgY2xlYXJpbmcgb3V0IHRoZSBzb3VyY2Ugc2Vzc2lvbiBzdGF0ZSwgd2Ug
Zm9yY2UgLWl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uOnNlc3Npb246IHRvIHJldHVybiBhbiBlbXB0
eSBhcnJheSwgd2hpY2gKKyAgICAgICAgLy8gY2F1c2VzIFVJS2l0IHRvIGJhaWwgYmVmb3JlIGJl
Z2lubmluZyB0aGUgbGlmdCBhbmltYXRpb24uCisgICAgICAgIFtzZWxmIGNsZWFuVXBEcmFnU291
cmNlU2Vzc2lvblN0YXRlXTsKKyAgICB9CisKKyAgICBpZiAoc2F2ZWRDb21wbGV0aW9uQmxvY2sp
CisgICAgICAgIHNhdmVkQ29tcGxldGlvbkJsb2NrKCk7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8
VUlJbWFnZT4gdWlJbWFnZUZvckltYWdlKFJlZlB0cjxJbWFnZT4gaW1hZ2UpCit7CisgICAgaWYg
KCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBp
bWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICBpZiAoIWNnSW1hZ2UpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0aENH
SW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOworfQorCitzdGF0aWMgQk9PTCBzaG91bGRVc2VUZXh0SW5k
aWNhdG9yVG9DcmVhdGVQcmV2aWV3Rm9yRHJhZ0FjdGlvbihEcmFnU291cmNlQWN0aW9uIGFjdGlv
bikKK3sKKyAgICBpZiAoYWN0aW9uICYgKERyYWdTb3VyY2VBY3Rpb25MaW5rIHwgRHJhZ1NvdXJj
ZUFjdGlvblNlbGVjdGlvbikpCisgICAgICAgIHJldHVybiBZRVM7CisKKyNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQorICAgIGlmIChhY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uQXR0YWNo
bWVudCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgorCisgICAgcmV0dXJuIE5POworfQor
CistIChSZXRhaW5QdHI8VUlUYXJnZXRlZERyYWdQcmV2aWV3PilkcmFnUHJldmlld0ZvckltYWdl
OihVSUltYWdlICopaW1hZ2UgZnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6KGNvbnN0IEZsb2F0
UmVjdCYpZnJhbWUgY2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGluYXRlczooY29uc3QgVmVjdG9y
PEZsb2F0UmVjdD4mKWNsaXBwaW5nUmVjdHMgYmFja2dyb3VuZENvbG9yOihVSUNvbG9yICopYmFj
a2dyb3VuZENvbG9yCit7CisgICAgaWYgKGZyYW1lLmlzRW1wdHkoKSB8fCAhaW1hZ2UpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgVUlWaWV3ICpjb250YWluZXIgPSBbc2VsZiB1bnNj
YWxlZFZpZXddOworICAgIEZsb2F0UmVjdCBmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXM7Cisg
ICAgTlNNdXRhYmxlQXJyYXkgKmNsaXBwaW5nUmVjdFZhbHVlc0luRnJhbWVDb29yZGluYXRlcyA9
IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpjbGlwcGluZ1JlY3RzLnNpemUoKV07
CisKKyAgICBmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpm
cmFtZSB0b1ZpZXc6Y29udGFpbmVyXTsKKyAgICBpZiAoZnJhbWVJbkNvbnRhaW5lckNvb3JkaW5h
dGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBmbG9hdCB3aWR0
aFNjYWxpbmdSYXRpbyA9IGZyYW1lSW5Db250YWluZXJDb29yZGluYXRlcy53aWR0aCgpIC8gZnJh
bWUud2lkdGgoKTsKKyAgICBmbG9hdCBoZWlnaHRTY2FsaW5nUmF0aW8gPSBmcmFtZUluQ29udGFp
bmVyQ29vcmRpbmF0ZXMuaGVpZ2h0KCkgLyBmcmFtZS5oZWlnaHQoKTsKKyAgICBmb3IgKGF1dG8g
cmVjdCA6IGNsaXBwaW5nUmVjdHMpIHsKKyAgICAgICAgcmVjdC5zY2FsZSh3aWR0aFNjYWxpbmdS
YXRpbywgaGVpZ2h0U2NhbGluZ1JhdGlvKTsKKyAgICAgICAgW2NsaXBwaW5nUmVjdFZhbHVlc0lu
RnJhbWVDb29yZGluYXRlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OnJlY3Rd
XTsKKyAgICB9CisKKyAgICBhdXRvIGltYWdlVmlldyA9IGFkb3B0TlMoW1tVSUltYWdlVmlldyBh
bGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZV0pOworICAgIFtpbWFnZVZpZXcgc2V0RnJhbWU6ZnJh
bWVJbkNvbnRhaW5lckNvb3JkaW5hdGVzXTsKKworICAgIFJldGFpblB0cjxVSURyYWdQcmV2aWV3
UGFyYW1ldGVycz4gcGFyYW1ldGVyczsKKyAgICBpZiAoY2xpcHBpbmdSZWN0VmFsdWVzSW5GcmFt
ZUNvb3JkaW5hdGVzLmNvdW50KQorICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJRHJh
Z1ByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0V2l0aFRleHRMaW5lUmVjdHM6Y2xpcHBpbmdS
ZWN0VmFsdWVzSW5GcmFtZUNvb3JkaW5hdGVzXSk7CisgICAgZWxzZQorICAgICAgICBwYXJhbWV0
ZXJzID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0XSk7CisK
KyAgICBpZiAoYmFja2dyb3VuZENvbG9yKQorICAgICAgICBbcGFyYW1ldGVycyBzZXRCYWNrZ3Jv
dW5kQ29sb3I6YmFja2dyb3VuZENvbG9yXTsKKworICAgIENHUG9pbnQgY2VudGVySW5Db250YWlu
ZXJDb29yZGluYXRlcyA9IHsgQ0dSZWN0R2V0TWlkWChmcmFtZUluQ29udGFpbmVyQ29vcmRpbmF0
ZXMpLCBDR1JlY3RHZXRNaWRZKGZyYW1lSW5Db250YWluZXJDb29yZGluYXRlcykgfTsKKyAgICBh
dXRvIHRhcmdldCA9IGFkb3B0TlMoW1tVSURyYWdQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0
aENvbnRhaW5lcjpjb250YWluZXIgY2VudGVyOmNlbnRlckluQ29udGFpbmVyQ29vcmRpbmF0ZXNd
KTsKKyAgICBhdXRvIGRyYWdQcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWREcmFnUHJldmll
dyBhbGxvY10gaW5pdFdpdGhWaWV3OmltYWdlVmlldy5nZXQoKSBwYXJhbWV0ZXJzOnBhcmFtZXRl
cnMuZ2V0KCkgdGFyZ2V0OnRhcmdldC5nZXQoKV0pOworICAgIHJldHVybiBkcmFnUHJldmlldzsK
K30KKworLSAoUmV0YWluUHRyPFVJVGFyZ2V0ZWREcmFnUHJldmlldz4pZHJhZ1ByZXZpZXdGb3JD
dXJyZW50RGF0YUludGVyYWN0aW9uU3RhdGUKK3sKKyAgICBhdXRvIGFjdGlvbiA9IF9kYXRhSW50
ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb247CisgICAgaWYgKGFjdGlvbiAmIERyYWdTb3VyY2VB
Y3Rpb25JbWFnZSAmJiBfZGF0YUludGVyYWN0aW9uU3RhdGUuaW1hZ2UpIHsKKyAgICAgICAgVmVj
dG9yPEZsb2F0UmVjdD4gZW1wdHlDbGlwcGluZ1JlY3RzOworICAgICAgICByZXR1cm4gW3NlbGYg
ZHJhZ1ByZXZpZXdGb3JJbWFnZTpfZGF0YUludGVyYWN0aW9uU3RhdGUuaW1hZ2UuZ2V0KCkgZnJh
bWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6X2RhdGFJbnRlcmFjdGlvblN0YXRlLmVsZW1lbnRCb3Vu
ZHMgY2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGluYXRlczplbXB0eUNsaXBwaW5nUmVjdHMgYmFj
a2dyb3VuZENvbG9yOm5pbF07CisgICAgfQorCisgICAgaWYgKHNob3VsZFVzZVRleHRJbmRpY2F0
b3JUb0NyZWF0ZVByZXZpZXdGb3JEcmFnQWN0aW9uKGFjdGlvbikgJiYgX2RhdGFJbnRlcmFjdGlv
blN0YXRlLmluZGljYXRvckRhdGEpIHsKKyAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBfZGF0YUlu
dGVyYWN0aW9uU3RhdGUuaW5kaWNhdG9yRGF0YS52YWx1ZSgpOworICAgICAgICByZXR1cm4gW3Nl
bGYgZHJhZ1ByZXZpZXdGb3JJbWFnZTp1aUltYWdlRm9ySW1hZ2UoaW5kaWNhdG9yLmNvbnRlbnRJ
bWFnZSkuZ2V0KCkgZnJhbWVJblJvb3RWaWV3Q29vcmRpbmF0ZXM6aW5kaWNhdG9yLnRleHRCb3Vu
ZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgY2xpcHBpbmdSZWN0c0luRnJhbWVDb29yZGlu
YXRlczppbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyBiYWNrZ3Jv
dW5kQ29sb3I6W1VJQ29sb3IgY29sb3JXaXRoQ0dDb2xvcjpjYWNoZWRDR0NvbG9yKGluZGljYXRv
ci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXV07CisgICAgfQorCisgICAgcmV0dXJuIG5pbDsK
K30KKworLSAodm9pZClwZXJmb3JtRGVmZXJyZWRBY3Rpb25BdERyYWdPcmlnaW4KK3sKKyAgICBh
dXRvIGRlZmVycmVkQWN0aW9uUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQoX2RlZmVycmVkQWN0
aW9uU2hlZXRSZXF1ZXN0TG9jYXRpb24pOworICAgIFtzZWxmIGNhbmNlbERlZmVycmVkQWN0aW9u
QXREcmFnT3JpZ2luXTsKKyAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXJdOworCisgICAgUmV0YWluUHRyPFdLQ29udGVudFZpZXc+IHJldGFpbmVkU2VsZihzZWxmKTsK
KyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxm
XSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbikg
eworICAgICAgICBpZiAoYXV0byBhY3Rpb24gPSBbcmV0YWluZWRTZWxmIF9hY3Rpb25Gb3JMb25n
UHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uXSkKKyAgICAg
ICAgICAgIFtyZXRhaW5lZFNlbGYgcGVyZm9ybVNlbGVjdG9yOmFjdGlvbl07CisgICAgfSBmb3JS
ZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KGRlZmVycmVkQWN0aW9uUG9zaXRp
b24pXTsKK30KKworLSAodm9pZCljYW5jZWxEZWZlcnJlZEFjdGlvbkF0RHJhZ09yaWdpbgorewor
ICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybURlZmVycmVkQWN0aW9uQXREcmFnT3JpZ2luKSBv
YmplY3Q6bmlsXTsKKyAgICBfZGVmZXJyZWRBY3Rpb25TaGVldFJlcXVlc3RMb2NhdGlvbiA9IENH
UG9pbnRaZXJvOworfQorCistICh2b2lkKWNvbXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JE
cm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gb3V0Q2xpZW50UG9pbnQ6KENH
UG9pbnQgKilvdXRDbGllbnRQb2ludCBvdXRHbG9iYWxQb2ludDooQ0dQb2ludCAqKW91dEdsb2Jh
bFBvaW50Cit7CisgICAgaWYgKG91dENsaWVudFBvaW50KQorICAgICAgICAqb3V0Q2xpZW50UG9p
bnQgPSBbc2Vzc2lvbiBsb2NhdGlvbkluVmlldzpzZWxmXTsKKworICAgIGlmIChvdXRHbG9iYWxQ
b2ludCkgeworICAgICAgICBVSVdpbmRvdyAqd2luZG93ID0gc2VsZi53aW5kb3c7CisgICAgICAg
ICpvdXRHbG9iYWxQb2ludCA9IHdpbmRvdyA/IFtzZXNzaW9uIGxvY2F0aW9uSW5WaWV3OndpbmRv
d10gOiBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFzdEdsb2JhbFBvc2l0aW9uOworICAgIH0KK30K
Kworc3RhdGljIFVJRHJvcE9wZXJhdGlvbiBkcm9wT3BlcmF0aW9uRm9yV2ViQ29yZURyYWdPcGVy
YXRpb24oRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCit7CisgICAgaWYgKG9wZXJhdGlvbiAmIERy
YWdPcGVyYXRpb25Nb3ZlKQorICAgICAgICByZXR1cm4gVUlEcm9wT3BlcmF0aW9uTW92ZTsKKwor
ICAgIGlmIChvcGVyYXRpb24gJiBEcmFnT3BlcmF0aW9uQ29weSkKKyAgICAgICAgcmV0dXJuIFVJ
RHJvcE9wZXJhdGlvbkNvcHk7CisKKyAgICByZXR1cm4gVUlEcm9wT3BlcmF0aW9uQ2FuY2VsOwor
fQorCistIChEcmFnRGF0YSlkcmFnRGF0YUZvckRyb3BTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lv
bj4pc2Vzc2lvbiBkcmFnRGVzdGluYXRpb25BY3Rpb246KFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
KWRyYWdEZXN0aW5hdGlvbkFjdGlvbgoreworICAgIENHUG9pbnQgZ2xvYmFsOworICAgIENHUG9p
bnQgY2xpZW50OworICAgIFtzZWxmIGNvbXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9w
U2Vzc2lvbjpzZXNzaW9uIG91dENsaWVudFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmds
b2JhbF07CisKKyAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb25NYXNrID0gc3RhdGljX2Nh
c3Q8RHJhZ09wZXJhdGlvbj4oc2Vzc2lvbi5hbGxvd3NNb3ZlT3BlcmF0aW9uID8gRHJhZ09wZXJh
dGlvbkV2ZXJ5IDogKERyYWdPcGVyYXRpb25FdmVyeSAmIH5EcmFnT3BlcmF0aW9uTW92ZSkpOwor
ICAgIHJldHVybiB7IHNlc3Npb24sIHJvdW5kZWRJbnRQb2ludChjbGllbnQpLCByb3VuZGVkSW50
UG9pbnQoZ2xvYmFsKSwgZHJhZ09wZXJhdGlvbk1hc2ssIERyYWdBcHBsaWNhdGlvbk5vbmUsIHN0
YXRpY19jYXN0PERyYWdEZXN0aW5hdGlvbkFjdGlvbj4oZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKSB9
OworfQorCistICh2b2lkKWNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlCit7CisgICAgaWYg
KCFbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdIGhhc1BlbmRpbmdP
cGVyYXRpb25dKSB7CisgICAgICAgIC8vIElmIHdlJ3JlIHBlcmZvcm1pbmcgYSBkcmFnIG9wZXJh
dGlvbiwgZG9uJ3QgY2xlYXIgb3V0IHRoZSBwYXN0ZWJvYXJkIHlldCwgc2luY2UgYW5vdGhlciB3
ZWIgdmlldyBtYXkgc3RpbGwgcmVxdWlyZSBhY2Nlc3MgdG8gaXQuCisgICAgICAgIC8vIFRoZSBw
YXN0ZWJvYXJkIHdpbGwgYmUgY2xlYXJlZCBhZnRlciB0aGUgbGFzdCBjbGllbnQgaXMgZmluaXNo
ZWQgcGVyZm9ybWluZyBhIGRyYWcgb3BlcmF0aW9uIHVzaW5nIHRoZSBpdGVtIHByb3ZpZGVycy4K
KyAgICAgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJ
dGVtUHJvdmlkZXJzOm5pbF07CisgICAgfQorCisgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2Nr
ID0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTdGFydENvbXBsZXRpb25CbG9jaykgeworICAg
ICAgICAvLyBJZiB0aGUgcHJldmlvdXMgZHJhZyBzZXNzaW9uIGlzIHN0aWxsIGluaXRpYWxpemlu
Zywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCBpdHMgY29tcGxldGlvbiBibG9jayBpcyBjYWxsZWQg
dG8gcHJldmVudCBVSUtpdCBmcm9tIGdldHRpbmcgb3V0IG9mIHN0YXRlLgorICAgICAgICBfZGF0
YUludGVyYWN0aW9uU3RhdGUuZHJhZ1N0YXJ0Q29tcGxldGlvbkJsb2NrID0gbmlsOworICAgICAg
ICBjb21wbGV0aW9uQmxvY2soKTsKKyAgICB9CisKKyAgICBbX2RhdGFJbnRlcmFjdGlvblN0YXRl
LmNhcmV0VmlldyByZW1vdmVdOworICAgIFtfZGF0YUludGVyYWN0aW9uU3RhdGUudmlzaWJsZUNv
bnRlbnRWaWV3U25hcHNob3QgcmVtb3ZlRnJvbVN1cGVydmlld107CisKKyAgICBfZGF0YUludGVy
YWN0aW9uU3RhdGUgPSB7IH07Cit9CisKK3N0YXRpYyBOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+
ICpleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21EcmFnSXRlbXMoTlNBcnJheTxVSURyYWdJdGVtICo+
ICpkcmFnSXRlbXMpCit7CisgICAgX19ibG9jayBOU011dGFibGVBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiAqcHJvdmlkZXJzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBmb3IgKFVJRHJh
Z0l0ZW0gKml0ZW0gaW4gZHJhZ0l0ZW1zKSB7CisgICAgICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92
aWRlcj4gcHJvdmlkZXIgPSBpdGVtLml0ZW1Qcm92aWRlcjsKKyAgICAgICAgaWYgKHByb3ZpZGVy
KQorICAgICAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6cHJvdmlkZXIuZ2V0KCldOworICAg
IH0KKyAgICByZXR1cm4gcHJvdmlkZXJzOworfQorCitzdGF0aWMgTlNBcnJheTxVSUl0ZW1Qcm92
aWRlciAqPiAqZXh0cmFjdEl0ZW1Qcm92aWRlcnNGcm9tRHJvcFNlc3Npb24oaWQgPFVJRHJvcFNl
c3Npb24+IHNlc3Npb24pCit7CisgICAgcmV0dXJuIGV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURy
YWdJdGVtcyhzZXNzaW9uLml0ZW1zKTsKK30KKworLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0
YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0b3JEYXRhPilkYXRhCit7Cisg
ICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHNuYXBzaG90V2l0aG91
dFNlbGVjdGlvbiA9IGRhdGEtPmNvbnRlbnRJbWFnZVdpdGhvdXRTZWxlY3Rpb247CisgICAgaWYg
KCFzbmFwc2hvdFdpdGhvdXRTZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
dW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UgPSBzbmFwc2hvdFdpdGhvdXRTZWxlY3Rpb24tPm5hdGl2
ZUltYWdlKCk7CisgICAgaWYgKCF1bnNlbGVjdGVkU25hcHNob3RJbWFnZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25VbnNlbGVjdGVkQ29udGVudEltYWdlID0g
YWRvcHROUyhbW1VJSW1hZ2UgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTp1bnNlbGVjdGVkU25hcHNo
b3RJbWFnZS5nZXQoKSBzY2FsZTpfcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSBvcmllbnRhdGlv
bjpVSUltYWdlT3JpZW50YXRpb25VcF0pOworICAgIFJldGFpblB0cjxVSUltYWdlVmlldz4gdW5z
ZWxlY3RlZENvbnRlbnRTbmFwc2hvdCA9IGFkb3B0TlMoW1tVSUltYWdlVmlldyBhbGxvY10gaW5p
dFdpdGhJbWFnZTpkYXRhSW50ZXJhY3Rpb25VbnNlbGVjdGVkQ29udGVudEltYWdlLmdldCgpXSk7
CisgICAgW3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3Qgc2V0RnJhbWU6ZGF0YS0+Y29udGVudElt
YWdlV2l0aG91dFNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOworCisgICAgUmV0
YWluUHRyPFdLQ29udGVudFZpZXc+IHByb3RlY3RlZFNlbGYgPSBzZWxmOworICAgIFJldGFpblB0
cjxVSVZpZXc+IHZpc2libGVDb250ZW50Vmlld1NuYXBzaG90ID0gYWRvcHROUyhfZGF0YUludGVy
YWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3QubGVha1JlZigpKTsKKworICAg
IF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pc0FuaW1hdGluZ0NvbmNsdWRlRWRpdERyYWcgPSBZRVM7
CisgICAgW3NlbGYgaW5zZXJ0U3Vidmlldzp1bnNlbGVjdGVkQ29udGVudFNuYXBzaG90LmdldCgp
IGJlbG93U3Vidmlldzp2aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdC5nZXQoKV07CisgICAgW1VJ
VmlldyBhbmltYXRlV2l0aER1cmF0aW9uOjAuMjUgYW5pbWF0aW9uczpeKCkgeworICAgICAgICBb
dmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Qgc2V0QWxwaGE6MF07CisgICAgfSBjb21wbGV0aW9u
Ol4oQk9PTCBjb21wbGV0ZWQpIHsKKyAgICAgICAgW3Zpc2libGVDb250ZW50Vmlld1NuYXBzaG90
IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgICAgICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRp
b246MC4yNSBhbmltYXRpb25zOl4oKSB7CisgICAgICAgICAgICBbcHJvdGVjdGVkU2VsZiBzZXRT
dXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXc6Tk9dOworICAgICAgICAgICAgW3Vuc2VsZWN0
ZWRDb250ZW50U25hcHNob3Qgc2V0QWxwaGE6MF07CisgICAgICAgIH0gY29tcGxldGlvbjpeKEJP
T0wgY29tcGxldGVkKSB7CisgICAgICAgICAgICBbdW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdCBy
ZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgfV07CisgICAgfV07Cit9CisKKy0gKHZvaWQp
X2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOihCT09MKWhhbmRs
ZWQKK3sKKyAgICBbW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdIGRl
Y3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudF07CisgICAgUmV0YWluUHRyPGlkIDxVSURyb3BT
ZXNzaW9uPj4gZHJvcFNlc3Npb24gPSBfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJvcFNlc3Npb247
CisgICAgaWYgKFtzZWxmLndlYlZpZXdVSURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6ZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNz
aW9uOml0ZW1Qcm92aWRlcnM6KV0pCisgICAgICAgIFtzZWxmLndlYlZpZXdVSURlbGVnYXRlIF93
ZWJWaWV3Ol93ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6aGFuZGxl
ZCBmb3JTZXNzaW9uOmRyb3BTZXNzaW9uLmdldCgpIGl0ZW1Qcm92aWRlcnM6W1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdLml0ZW1Qcm92aWRlcnNdOworCisgICAgaWYg
KCFfZGF0YUludGVyYWN0aW9uU3RhdGUuaXNBbmltYXRpbmdDb25jbHVkZUVkaXREcmFnKQorICAg
ICAgICBzZWxmLnN1cHByZXNzQXNzaXN0YW50U2VsZWN0aW9uVmlldyA9IE5POworCisgICAgQ0dQ
b2ludCBnbG9iYWw7CisgICAgQ0dQb2ludCBjbGllbnQ7CisgICAgW3NlbGYgY29tcHV0ZUNsaWVu
dEFuZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOmRyb3BTZXNzaW9uLmdldCgpIG91dENsaWVu
dFBvaW50OiZjbGllbnQgb3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisgICAgW3NlbGYgY2xlYW5V
cERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOworICAgIF9wYWdlLT5kcmFnRW5kZWQocm91bmRlZElu
dFBvaW50KGNsaWVudCksIHJvdW5kZWRJbnRQb2ludChnbG9iYWwpLCBfcGFnZS0+Y3VycmVudERy
YWdPcGVyYXRpb24oKSk7Cit9CisKKy0gKHZvaWQpX3RyYW5zaXRpb25EcmFnUHJldmlld1RvSW1h
Z2VJZk5lY2Vzc2FyeTooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24KK3sKKyAgICBpZiAoX2Rh
dGFJbnRlcmFjdGlvblN0YXRlLnNvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSB8
fCAhKF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb24gJiBEcmFnU291cmNlQWN0aW9u
TGluaykpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbGlua0RyYWdnaW5nQ2VudGVyID0g
X2RhdGFJbnRlcmFjdGlvblN0YXRlLmFkanVzdGVkT3JpZ2luOworICAgIFJldGFpblB0cjxOU1N0
cmluZz4gdGl0bGUgPSAoTlNTdHJpbmcgKilfZGF0YUludGVyYWN0aW9uU3RhdGUubGlua1RpdGxl
OworICAgIFJldGFpblB0cjxOU1VSTD4gdXJsID0gKE5TVVJMICopX2RhdGFJbnRlcmFjdGlvblN0
YXRlLmxpbmtVUkw7CisgICAgc2Vzc2lvbi5pdGVtcy5maXJzdE9iamVjdC5wcmV2aWV3UHJvdmlk
ZXIgPSBbdGl0bGUsIHVybCwgbGlua0RyYWdnaW5nQ2VudGVyXSAoKSAtPiBVSURyYWdQcmV2aWV3
ICogeworICAgICAgICBVSVVSTERyYWdQcmV2aWV3VmlldyAqcHJldmlld1ZpZXcgPSBbVUlVUkxE
cmFnUHJldmlld1ZpZXcgdmlld1dpdGhUaXRsZTp0aXRsZS5nZXQoKSBVUkw6dXJsLmdldCgpXTsK
KyAgICAgICAgcHJldmlld1ZpZXcuY2VudGVyID0gbGlua0RyYWdnaW5nQ2VudGVyOworCisgICAg
ICAgIFVJRHJhZ1ByZXZpZXdQYXJhbWV0ZXJzICpwYXJhbWV0ZXJzID0gW1tbVUlEcmFnUHJldmll
d1BhcmFtZXRlcnMgYWxsb2NdIGluaXRXaXRoVGV4dExpbmVSZWN0czpAWyBbTlNWYWx1ZSB2YWx1
ZVdpdGhDR1JlY3Q6cHJldmlld1ZpZXcuYm91bmRzXSBdXSBhdXRvcmVsZWFzZV07CisgICAgICAg
IHJldHVybiBbW1tVSURyYWdQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6cHJldmlld1ZpZXcg
cGFyYW1ldGVyczpwYXJhbWV0ZXJzXSBhdXRvcmVsZWFzZV07CisgICAgfTsKK30KKworLSAodm9p
ZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0
IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdAoreworICAgIEJPT0wgcHJldmlvdXNSZWN0SXNFbXB0
eSA9IENHUmVjdElzRW1wdHkocHJldmlvdXNSZWN0KTsKKyAgICBCT09MIGN1cnJlbnRSZWN0SXNF
bXB0eSA9IENHUmVjdElzRW1wdHkocmVjdCk7CisgICAgaWYgKHByZXZpb3VzUmVjdElzRW1wdHkg
JiYgY3VycmVudFJlY3RJc0VtcHR5KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocHJldmlv
dXNSZWN0SXNFbXB0eSkgeworICAgICAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuY2FyZXRWaWV3
ID0gYWRvcHROUyhbW19VSVRleHREcmFnQ2FyZXRWaWV3IGFsbG9jXSBpbml0V2l0aFRleHRJbnB1
dFZpZXc6c2VsZl0pOworICAgICAgICBbX2RhdGFJbnRlcmFjdGlvblN0YXRlLmNhcmV0VmlldyBp
bnNlcnRBdFBvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0
XV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoY3VycmVudFJlY3RJc0VtcHR5
KSB7CisgICAgICAgIFtfZGF0YUludGVyYWN0aW9uU3RhdGUuY2FyZXRWaWV3IHJlbW92ZV07Cisg
ICAgICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5jYXJldFZpZXcgPSBuaWw7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbX2RhdGFJbnRlcmFjdGlvblN0YXRlLmNhcmV0VmlldyB1cGRh
dGVUb1Bvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07
Cit9CisKKy0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV9kcmFnRGVzdGluYXRpb25BY3Rpb25G
b3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24KK3sKKyAgICBpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7Cisg
ICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKKyAgICAgICAgcmV0
dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1h
c2tGb3JEcmFnZ2luZ0luZm86c2Vzc2lvbl07CisKKyAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRp
b25BY3Rpb25BbnkgJiB+V0tEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOworfQorCitzdGF0aWMg
Qk9PTCBwb3NpdGlvbkluZm9ybWF0aW9uTWF5U3RhcnREYXRhSW50ZXJhY3Rpb24oY29uc3QgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mb3JtYXRpb24pCit7Cisg
ICAgcmV0dXJuIHBvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSB8fCBwb3NpdGlvbkluZm9ybWF0
aW9uLmlzTGluayB8fCBwb3NpdGlvbkluZm9ybWF0aW9uLmlzQXR0YWNobWVudCB8fCBwb3NpdGlv
bkluZm9ybWF0aW9uLmhhc1NlbGVjdGlvbkF0UG9zaXRpb247Cit9CisKKy0gKGlkIDxVSURyYWdE
cm9wU2Vzc2lvbj4pY3VycmVudERyYWdPckRyb3BTZXNzaW9uCit7CisgICAgaWYgKF9kYXRhSW50
ZXJhY3Rpb25TdGF0ZS5kcm9wU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIF9kYXRhSW50ZXJhY3Rp
b25TdGF0ZS5kcm9wU2Vzc2lvbi5nZXQoKTsKKyAgICByZXR1cm4gX2RhdGFJbnRlcmFjdGlvblN0
YXRlLmRyYWdTZXNzaW9uLmdldCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBVSURyYWdJbnRlcmFj
dGlvbkRlbGVnYXRlCisKKy0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNl
c3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCit7CisgICAgaWYg
KHNlbGYuY3VycmVudERyYWdPckRyb3BTZXNzaW9uKSB7CisgICAgICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG11bHRpcGxlIHNpbXVsdGFuZW91cyBkcmFnIHNlc3Npb25zIGluIHRoZSBmdXR1cmUuCisg
ICAgICAgIGNvbXBsZXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtzZWxm
IGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKKworICAgIENHUG9pbnQgZHJhZ09yaWdp
biA9IFtzZXNzaW9uIGxvY2F0aW9uSW5WaWV3OnNlbGZdOworICAgIFJldGFpblB0cjxXS0NvbnRl
bnRWaWV3PiByZXRhaW5lZFNlbGYoc2VsZik7CisKKyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25J
bmZvcm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxmLCBzZXNzaW9uLCBkcmFnT3JpZ2luLCBjYXB0
dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pXSAoSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbikgeworICAgICAgICBpZiAoIXBvc2l0
aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlvbihwb3NpdGlvbkluZm9ybWF0aW9u
KSkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9jaygpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgYXV0byYgc3RhdGUgPSByZXRhaW5lZFNlbGYtPl9kYXRhSW50
ZXJhY3Rpb25TdGF0ZTsKKyAgICAgICAgc3RhdGUuZHJhZ1N0YXJ0Q29tcGxldGlvbkJsb2NrID0g
Y2FwdHVyZWRCbG9jazsKKyAgICAgICAgc3RhdGUuZ2VzdHVyZU9yaWdpbiA9IGRyYWdPcmlnaW47
CisgICAgICAgIHN0YXRlLmFkanVzdGVkT3JpZ2luID0gcmV0YWluZWRTZWxmLT5fcG9zaXRpb25J
bmZvcm1hdGlvbi5hZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzOwor
ICAgICAgICBzdGF0ZS5lbGVtZW50Qm91bmRzID0gcmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZv
cm1hdGlvbi5ib3VuZHM7CisgICAgICAgIHN0YXRlLmxpbmtUaXRsZSA9IHJldGFpbmVkU2VsZi0+
X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGU7CisgICAgICAgIHN0YXRlLmxpbmtVUkwgPSByZXRh
aW5lZFNlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9uLnVybDsKKyAgICAgICAgc3RhdGUuZHJhZ1Nl
c3Npb24gPSBzZXNzaW9uOworICAgICAgICByZXRhaW5lZFNlbGYtPl9wYWdlLT5yZXF1ZXN0U3Rh
cnREYXRhSW50ZXJhY3Rpb24ocm91bmRlZEludFBvaW50KHN0YXRlLmFkanVzdGVkT3JpZ2luKSwg
cm91bmRlZEludFBvaW50KFtyZXRhaW5lZFNlbGYgY29udmVydFBvaW50OnN0YXRlLmFkanVzdGVk
T3JpZ2luIHRvVmlldzpbcmV0YWluZWRTZWxmIHdpbmRvd11dKSk7CisgICAgfSBmb3JSZXF1ZXN0
OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChkcmFnT3JpZ2lu
KSldOworfQorCistIChOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKilkcmFnSW50ZXJhY3Rpb246KFVJ
RHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gaXRlbXNGb3JCZWdpbm5pbmdTZXNzaW9uOihp
ZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbgoreworICAgIGlmIChfZGF0YUludGVyYWN0aW9uU3Rh
dGUuZHJhZ1Nlc3Npb24gIT0gc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIEBbIF07CisKKyAgICBX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICpkcmFnZ2luZ1Bhc3RlYm9hcmQgPSBbV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5jZV07CisgICAgQVNTRVJUKGludGVyYWN0aW9u
ID09IF9kYXRhSW50ZXJhY3Rpb24pOworICAgIE5TVUludGVnZXIgbnVtYmVyT2ZJdGVtcyA9IGRy
YWdnaW5nUGFzdGVib2FyZC5udW1iZXJPZkl0ZW1zOworICAgIGlmICghbnVtYmVyT2ZJdGVtcykg
eworICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOworICAgICAgICByZXR1cm4gQFsgXTsK
KyAgICB9CisKKyAgICBbVUlDYWxsb3V0QmFyIGZhZGVTaGFyZWRDYWxsb3V0QmFyXTsKKworICAg
IC8vIEdpdmUgaW50ZXJuYWwgY2xpZW50cyBzdWNoIGFzIE1haWwgb25lIGZpbmFsIGNoYW5jZSB0
byBhdWdtZW50IHRoZSBjb250ZW50cyBvZiBlYWNoIFVJSXRlbVByb3ZpZGVyIGJlZm9yZSBzZW5k
aW5nIHRoZSBkcmFnIGl0ZW1zIG9mZiB0byBVSUtpdC4KKyAgICBpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWRqdXN0ZWREYXRh
SW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3ZpZGVyOnJlcHJlc2VudGluZ09iamVj
dHM6YWRkaXRpb25hbERhdGE6KV0pIHsKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmFkanVzdGVk
SXRlbVByb3ZpZGVycyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgICAgIGZvciAoTlNV
SW50ZWdlciBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBudW1iZXJPZkl0ZW1zOyArK2l0ZW1J
bmRleCkgeworICAgICAgICAgICAgV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3Qg
KmluZm9MaXN0ID0gW2RyYWdnaW5nUGFzdGVib2FyZCByZWdpc3RyYXRpb25JbmZvQXRJbmRleDpp
dGVtSW5kZXhdOworICAgICAgICAgICAgYXV0byByZXByZXNlbnRpbmdPYmplY3RzID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgICAgICBhdXRvIGFkZGl0
aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsK
KyAgICAgICAgICAgIFtpbmZvTGlzdCBlbnVtZXJhdGVJdGVtczpbcmVwcmVzZW50aW5nT2JqZWN0
cywgYWRkaXRpb25hbERhdGFdIChXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvICppdGVt
LCBOU1VJbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucmVwcmVzZW50aW5nT2Jq
ZWN0KQorICAgICAgICAgICAgICAgICAgICBbcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRPYmplY3Q6
aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOworICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGVJ
ZGVudGlmaWVyICYmIGl0ZW0uZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxE
YXRhIHNldE9iamVjdDppdGVtLmRhdGEgZm9yS2V5Oml0ZW0udHlwZUlkZW50aWZpZXJdOworICAg
ICAgICAgICAgfV07CisgICAgICAgICAgICBpZiAoTlNBcnJheSAqcmVwbGFjZW1lbnRJdGVtUHJv
dmlkZXJzID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJh
Y3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3ZpZGVyOltkcmFnZ2luZ1Bhc3RlYm9hcmQgaXRl
bVByb3ZpZGVyQXRJbmRleDppdGVtSW5kZXhdIHJlcHJlc2VudGluZ09iamVjdHM6cmVwcmVzZW50
aW5nT2JqZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTphZGRpdGlvbmFsRGF0YS5nZXQoKV0pCisg
ICAgICAgICAgICAgICAgW2FkanVzdGVkSXRlbVByb3ZpZGVycyBhZGRPYmplY3RzRnJvbUFycmF5
OnJlcGxhY2VtZW50SXRlbVByb3ZpZGVyc107CisgICAgICAgIH0KKyAgICAgICAgZHJhZ2dpbmdQ
YXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBhZGp1c3RlZEl0ZW1Qcm92aWRlcnM7CisgICAgfSBl
bHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVByb3ZpZGVyczopXSkKKyAgICAgICAgZHJhZ2dp
bmdQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmll
dyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnM6ZHJhZ2dpbmdQYXN0ZWJvYXJk
Lml0ZW1Qcm92aWRlcnNdOworCisgICAgX19ibG9jayBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+
IGl0ZW1zRm9yRHJhZ0ludGVyYWN0aW9uID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBb
ZHJhZ2dpbmdQYXN0ZWJvYXJkIGVudW1lcmF0ZUl0ZW1Qcm92aWRlcnNXaXRoQmxvY2s6XihVSUl0
ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyLCBOU1VJbnRlZ2VyIGluZGV4LCBCT09MICpzdG9wKSB7
CisgICAgICAgIFtpdGVtc0ZvckRyYWdJbnRlcmFjdGlvbiBhZGRPYmplY3Q6W1tbVUlEcmFnSXRl
bSBhbGxvY10gaW5pdFdpdGhJdGVtUHJvdmlkZXI6aXRlbVByb3ZpZGVyXSBhdXRvcmVsZWFzZV1d
OworICAgIH1dOworCisgICAgaWYgKCFbaXRlbXNGb3JEcmFnSW50ZXJhY3Rpb24gY291bnRdKQor
ICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOworCisgICAgcmV0dXJuIGl0ZW1zRm9yRHJh
Z0ludGVyYWN0aW9uLmdldCgpOworfQorCistIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfYXBp
X2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmV2aWV3
Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0ZW0gKilpdGVtIHNlc3Npb246KGlkIDxVSURyYWdTZXNz
aW9uPilzZXNzaW9uCit7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUg
PSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdGb3JMaWZ0aW5nSXRlbTpzZXNzaW9u
OildKSB7CisgICAgICAgIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqb3ZlcnJpZGVuUHJldmlldyA9
IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdGb3JMaWZ0aW5nSXRlbTppdGVt
IHNlc3Npb246c2Vzc2lvbl07CisgICAgICAgIGlmIChvdmVycmlkZW5QcmV2aWV3KQorICAgICAg
ICAgICAgcmV0dXJuIG92ZXJyaWRlblByZXZpZXc7CisgICAgfQorICAgIHJldHVybiBzZWxmLmRy
YWdQcmV2aWV3Rm9yQ3VycmVudERhdGFJbnRlcmFjdGlvblN0YXRlLmF1dG9yZWxlYXNlKCk7Cit9
CisKKy0gKHZvaWQpZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHNlc3Npb25XaWxsQmVnaW46KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uCit7CisgICAg
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVn
YXRlOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbjpzZXNzaW9uV2lsbEJlZ2luOildKQorICAgICAgICBbdWlE
ZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBkYXRhSW50ZXJhY3Rpb246aW50ZXJhY3Rpb24gc2Vz
c2lvbldpbGxCZWdpbjpzZXNzaW9uXTsKKworICAgIFtzZWxmIGNhbmNlbERlZmVycmVkQWN0aW9u
QXREcmFnT3JpZ2luXTsKKyAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGNsZWFudXBTaGVldF07
CisKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZGlkQmVnaW5EcmFnZ2luZyA9IFlFUzsKKyAg
ICBbc2VsZiBfdHJhbnNpdGlvbkRyYWdQcmV2aWV3VG9JbWFnZUlmTmVjZXNzYXJ5OnNlc3Npb25d
OworCisgICAgX3BhZ2UtPmRpZFN0YXJ0RHJhZygpOworfQorCistICh2b2lkKV9hcGlfZHJhZ0lu
dGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb246KGlkIDxV
SURyYWdTZXNzaW9uPilzZXNzaW9uIGRpZEVuZFdpdGhPcGVyYXRpb246KFVJRHJvcE9wZXJhdGlv
bilvcGVyYXRpb24KK3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9
IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGF0YUludGVyYWN0aW9uOnNlc3Npb246ZGlkRW5k
V2l0aE9wZXJhdGlvbjopXSkKKyAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcg
ZGF0YUludGVyYWN0aW9uOmludGVyYWN0aW9uIHNlc3Npb246c2Vzc2lvbiBkaWRFbmRXaXRoT3Bl
cmF0aW9uOm9wZXJhdGlvbl07CisKKyAgICBpZiAoX2RhdGFJbnRlcmFjdGlvblN0YXRlLmlzUGVy
Zm9ybWluZ09wZXJhdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgW3NlbGYgY2FuY2VsRGVm
ZXJyZWRBY3Rpb25BdERyYWdPcmlnaW5dOworICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vz
c2lvblN0YXRlXTsKKworICAgIF9wYWdlLT5kcmFnRW5kZWQocm91bmRlZEludFBvaW50KF9kYXRh
SW50ZXJhY3Rpb25TdGF0ZS5hZGp1c3RlZE9yaWdpbiksIHJvdW5kZWRJbnRQb2ludChbc2VsZiBj
b252ZXJ0UG9pbnQ6X2RhdGFJbnRlcmFjdGlvblN0YXRlLmFkanVzdGVkT3JpZ2luIHRvVmlldzpz
ZWxmLndpbmRvd10pLCBvcGVyYXRpb24pOworfQorCistIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcg
KilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmll
d0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVtICopaXRlbSB3aXRoRGVmYXVsdDooVUlUYXJn
ZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcKK3sKKyAgICBpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld0Zv
ckNhbmNlbGxpbmdJdGVtOndpdGhEZWZhdWx0OildKSB7CisgICAgICAgIFVJVGFyZ2V0ZWREcmFn
UHJldmlldyAqb3ZlcnJpZGVuUHJldmlldyA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3
IHByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTppdGVtIHdpdGhEZWZhdWx0OmRlZmF1bHRQcmV2aWV3
XTsKKyAgICAgICAgaWYgKG92ZXJyaWRlblByZXZpZXcpCisgICAgICAgICAgICByZXR1cm4gb3Zl
cnJpZGVuUHJldmlldzsKKyAgICB9CisgICAgcmV0dXJuIHNlbGYuZHJhZ1ByZXZpZXdGb3JDdXJy
ZW50RGF0YUludGVyYWN0aW9uU3RhdGUuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClfYXBp
X2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBpdGVtOihV
SURyYWdJdGVtICopaXRlbSB3aWxsQW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvcjooaWQgPFVJRHJh
Z0FuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBbYW5pbWF0b3IgYWRkQ29tcGxldGlvbjpbcGFn
ZSA9IF9wYWdlXSAoVUlWaWV3QW5pbWF0aW5nUG9zaXRpb24gZmluYWxQb3NpdGlvbikgeworICAg
ICAgICBwYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CisgICAgfV07Cit9CisKKyNwcmFnbWEgbWFyayAt
IFVJRHJvcEludGVyYWN0aW9uRGVsZWdhdGUKKworLSAoQk9PTClkcm9wSW50ZXJhY3Rpb246KFVJ
RHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY2FuSGFuZGxlU2Vzc2lvbjooaWQ8VUlEcm9w
U2Vzc2lvbj4pc2Vzc2lvbgoreworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG11bHRpcGxlIHNpbXVs
dGFuZW91cyBkcm9wIHNlc3Npb25zIGluIHRoZSBmdXR1cmUuCisgICAgaWQgPFVJRHJhZ0Ryb3BT
ZXNzaW9uPiBkcmFnT3JEcm9wU2Vzc2lvbiA9IHNlbGYuY3VycmVudERyYWdPckRyb3BTZXNzaW9u
OworICAgIHJldHVybiAhZHJhZ09yRHJvcFNlc3Npb24gfHwgc2Vzc2lvbi5sb2NhbERyYWdTZXNz
aW9uID09IGRyYWdPckRyb3BTZXNzaW9uOworfQorCistICh2b2lkKV9hcGlfZHJvcEludGVyYWN0
aW9uOihVSURyb3BJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25EaWRFbnRlcjooaWQg
PFVJRHJvcFNlc3Npb24+KXNlc3Npb24KK3sKKyAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuZHJv
cFNlc3Npb24gPSBzZXNzaW9uOworCisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNo
YXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOmV4dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURy
b3BTZXNzaW9uKHNlc3Npb24pXTsKKworICAgIGF1dG8gZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0
YUZvckRyb3BTZXNzaW9uOnNlc3Npb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOltzZWxmIF9kcmFn
RGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lvbjpzZXNzaW9uXV07CisKKyAgICBfcGFnZS0+
ZHJhZ0VudGVyZWQoZHJhZ0RhdGEsICJkYXRhIGludGVyYWN0aW9uIHBhc3RlYm9hcmQiKTsKKyAg
ICBfZGF0YUludGVyYWN0aW9uU3RhdGUubGFzdEdsb2JhbFBvc2l0aW9uID0gZHJhZ0RhdGEuZ2xv
YmFsUG9zaXRpb24oKTsKK30KKworLSAoVUlEcm9wUHJvcG9zYWwgKilfYXBpX2Ryb3BJbnRlcmFj
dGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzZXNzaW9uRGlkVXBkYXRlOihp
ZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgoreworICAgIFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZCBzaGFyZWRJbnN0YW5jZV0gc2V0SXRlbVByb3ZpZGVyczpleHRyYWN0SXRlbVByb3ZpZGVy
c0Zyb21Ecm9wU2Vzc2lvbihzZXNzaW9uKV07CisKKyAgICBhdXRvIGRyYWdEYXRhID0gW3NlbGYg
ZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIGRyYWdEZXN0aW5hdGlvbkFjdGlvbjpbc2Vs
ZiBfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJvcFNlc3Npb246c2Vzc2lvbl1dOworICAgIF9w
YWdlLT5kcmFnVXBkYXRlZChkcmFnRGF0YSwgImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIp
OworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5sYXN0R2xvYmFsUG9zaXRpb24gPSBkcmFnRGF0
YS5nbG9iYWxQb3NpdGlvbigpOworCisgICAgTlNVSW50ZWdlciBvcGVyYXRpb24gPSBkcm9wT3Bl
cmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24oX3BhZ2UtPmN1cnJlbnREcmFnT3BlcmF0aW9u
KCkpOworICAgIGlmIChbc2VsZi53ZWJWaWV3VUlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09w
ZXJhdGlvbjpmb3JTZXNzaW9uOildKQorICAgICAgICBvcGVyYXRpb24gPSBbc2VsZi53ZWJWaWV3
VUlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3Bl
cmF0aW9uVG9PcGVyYXRpb246b3BlcmF0aW9uIGZvclNlc3Npb246c2Vzc2lvbl07CisKKyAgICBy
ZXR1cm4gW1tbVUlEcm9wUHJvcG9zYWwgYWxsb2NdIGluaXRXaXRoRHJvcE9wZXJhdGlvbjpzdGF0
aWNfY2FzdDxVSURyb3BPcGVyYXRpb24+KG9wZXJhdGlvbildIGF1dG9yZWxlYXNlXTsKK30KKwor
LSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
c2Vzc2lvbkRpZEV4aXQ6KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCit7CisgICAgW1tXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOmV4
dHJhY3RJdGVtUHJvdmlkZXJzRnJvbURyb3BTZXNzaW9uKHNlc3Npb24pXTsKKworICAgIGF1dG8g
ZHJhZ0RhdGEgPSBbc2VsZiBkcmFnRGF0YUZvckRyb3BTZXNzaW9uOnNlc3Npb24gZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uOldLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55XTsKKyAgICBfcGFnZS0+ZHJh
Z0V4aXRlZChkcmFnRGF0YSwgImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpOworICAgIF9w
YWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24oKTsKK30KKworLSAodm9pZClkcm9wSW50
ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcGVyZm9ybURyb3A6KGlk
IDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCit7CisgICAgTlNBcnJheSA8VUlJdGVtUHJvdmlkZXIg
Kj4gKml0ZW1Qcm92aWRlcnMgPSBleHRyYWN0SXRlbVByb3ZpZGVyc0Zyb21Ecm9wU2Vzc2lvbihz
ZXNzaW9uKTsKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHNlbGYu
d2ViVmlld1VJRGVsZWdhdGU7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cGVyZm9ybURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJ
dGVtUHJvdmlkZXJzOildKSB7CisgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2Vi
VmlldyBwZXJmb3JtRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6aXRl
bVByb3ZpZGVyc10pCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6d2lsbFBlcmZvcm1E
cm9wV2l0aFNlc3Npb246KV0pIHsKKyAgICAgICAgaXRlbVByb3ZpZGVycyA9IGV4dHJhY3RJdGVt
UHJvdmlkZXJzRnJvbURyYWdJdGVtcyhbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxs
UGVyZm9ybURyb3BXaXRoU2Vzc2lvbjpzZXNzaW9uXSk7CisgICAgICAgIGlmICghaXRlbVByb3Zp
ZGVycy5jb3VudCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbW1dlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdIHNldEl0ZW1Qcm92aWRlcnM6aXRlbVBy
b3ZpZGVyc107CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNl
XSBpbmNyZW1lbnRQZW5kaW5nT3BlcmF0aW9uQ291bnRdOworICAgIF9kYXRhSW50ZXJhY3Rpb25T
dGF0ZS5pc1BlcmZvcm1pbmdPcGVyYXRpb24gPSBZRVM7CisgICAgYXV0byBkcmFnRGF0YSA9IFtz
ZWxmIGRyYWdEYXRhRm9yRHJvcFNlc3Npb246c2Vzc2lvbiBkcmFnRGVzdGluYXRpb25BY3Rpb246
V0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnldOworCisgICAgLy8gQWx3YXlzIGxvYWRpbmcgY29u
dGVudCBmcm9tIHRoZSBpdGVtIHByb3ZpZGVyIGVuc3VyZXMgdGhhdCB0aGUgd2ViIHByb2Nlc3Mg
d2lsbCBiZSBhbGxvd2VkIHRvIGNhbGwgYmFjayBpbiB0byB0aGUgVUkKKyAgICAvLyBwcm9jZXNz
IHRvIGFjY2VzcyBwYXN0ZWJvYXJkIGNvbnRlbnRzIGF0IGEgbGF0ZXIgdGltZS4gSWRlYWxseSwg
d2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgd29yayBpZiB3ZSdyZSBvdmVyIGEgZmlsZSBpbnB1dAor
ICAgIC8vIG9yIHRoZSBwYWdlIHByZXZlbnRlZCBkZWZhdWx0IG9uIGBkcmFnb3ZlcmAsIGJ1dCB3
aXRob3V0IHRoaXMsIGRyb3BwaW5nIGludG8gYSBub3JtYWwgZWRpdGFibGUgYXJlYXMgd2lsbCBm
YWlsIGR1ZSB0bworICAgIC8vIGl0ZW0gcHJvdmlkZXJzIG5vdCBsb2FkaW5nIGFueSBkYXRhLgor
ICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiByZXRhaW5lZFNlbGYoc2VsZik7CisgICAgW1tX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBkb0FmdGVyTG9hZGluZ1By
b3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpbcmV0YWluZWRTZWxmLCBjYXB0dXJlZERyYWdEYXRh
ID0gV1RGTW92ZShkcmFnRGF0YSldIChOU0FycmF5ICpmaWxlVVJMcykgbXV0YWJsZSB7CisgICAg
ICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICAgICAgZm9yIChOU1VSTCAqZmlsZVVS
TCBpbiBmaWxlVVJMcykKKyAgICAgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQoW2ZpbGVVUkwgcGF0
aF0pOworICAgICAgICBjYXB0dXJlZERyYWdEYXRhLnNldEZpbGVOYW1lcyhmaWxlbmFtZXMpOwor
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9u
Rm9yVXBsb2FkOworICAgICAgICByZXRhaW5lZFNlbGYtPl9wYWdlLT5jcmVhdGVTYW5kYm94RXh0
ZW5zaW9uc0lmTmVlZGVkKGZpbGVuYW1lcywgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJv
eEV4dGVuc2lvbkZvclVwbG9hZCk7CisgICAgICAgIHJldGFpbmVkU2VsZi0+X3BhZ2UtPnBlcmZv
cm1EcmFnT3BlcmF0aW9uKGNhcHR1cmVkRHJhZ0RhdGEsICJkYXRhIGludGVyYWN0aW9uIHBhc3Rl
Ym9hcmQiLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2Fk
KTsKKworICAgICAgICByZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25TdGF0ZS52aXNpYmxl
Q29udGVudFZpZXdTbmFwc2hvdCA9IFtyZXRhaW5lZFNlbGYgc25hcHNob3RWaWV3QWZ0ZXJTY3Jl
ZW5VcGRhdGVzOk5PXTsKKyAgICAgICAgW3JldGFpbmVkU2VsZiBzZXRTdXBwcmVzc0Fzc2lzdGFu
dFNlbGVjdGlvblZpZXc6WUVTXTsKKyAgICAgICAgW1VJVmlldyBwZXJmb3JtV2l0aG91dEFuaW1h
dGlvbjpbcmV0YWluZWRTZWxmXSB7CisgICAgICAgICAgICBbcmV0YWluZWRTZWxmLT5fZGF0YUlu
dGVyYWN0aW9uU3RhdGUudmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Qgc2V0RnJhbWU6W3JldGFp
bmVkU2VsZiBib3VuZHNdXTsKKyAgICAgICAgICAgIFtyZXRhaW5lZFNlbGYgYWRkU3Vidmlldzpy
ZXRhaW5lZFNlbGYtPl9kYXRhSW50ZXJhY3Rpb25TdGF0ZS52aXNpYmxlQ29udGVudFZpZXdTbmFw
c2hvdC5nZXQoKV07CisgICAgICAgIH1dOworICAgIH1dOworfQorCistIChVSVRhcmdldGVkRHJh
Z1ByZXZpZXcgKilkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9uICopaW50ZXJhY3Rp
b24gcHJldmlld0ZvckRyb3BwaW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0gd2l0aERlZmF1bHQ6
KFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKWRlZmF1bHRQcmV2aWV3Cit7CisgICAgQ0dSZWN0IGNh
cmV0UmVjdCA9IF9wYWdlLT5jdXJyZW50RHJhZ0NhcmV0UmVjdCgpOworICAgIGlmIChDR1JlY3RJ
c0VtcHR5KGNhcmV0UmVjdCkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAvLyBGSVhNRTog
PHJkYXI6Ly9wcm9ibGVtLzMxMDc0Mzc2PiBbV0syXSBQZXJmb3JtaW5nIGFuIGVkaXQgZHJhZyBz
aG91bGQgdHJhbnNpdGlvbiBmcm9tIHRoZSBpbml0aWFsIGRyYWcgcHJldmlldyB0byB0aGUgZmlu
YWwgZHJvcCBwcmV2aWV3CisgICAgLy8gVGhpcyBpcyBibG9ja2VkIG9uIFVJS2l0IHN1cHBvcnQs
IHNpbmNlIHdlIGFyZW4ndCBhYmxlIHRvIHVwZGF0ZSB0aGUgdGV4dCBjbGlwcGluZyByZWN0cyBv
ZiBhIFVJVGFyZ2V0ZWREcmFnUHJldmlldyBtaWQtZmxpZ2h0LiBGb3Igbm93LAorICAgIC8vIGp1
c3Qgem9vbSB0byB0aGUgY2VudGVyIG9mIHRoZSBjYXJldCByZWN0IHdoaWxlIHNocmlua2luZyB0
aGUgZHJvcCBwcmV2aWV3LgorICAgIGF1dG8gY2FyZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9
IFtzZWxmIGNvbnZlcnRSZWN0OmNhcmV0UmVjdCB0b1ZpZXc6W1VJVGV4dEVmZmVjdHNXaW5kb3cg
c2hhcmVkVGV4dEVmZmVjdHNXaW5kb3ddXTsKKyAgICBhdXRvIGNhcmV0Q2VudGVySW5XaW5kb3dD
b29yZGluYXRlcyA9IENHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoY2FyZXRSZWN0SW5XaW5kb3dD
b29yZGluYXRlcyksIENHUmVjdEdldE1pZFkoY2FyZXRSZWN0SW5XaW5kb3dDb29yZGluYXRlcykp
OworICAgIGF1dG8gdGFyZ2V0ID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdUYXJnZXQgYWxsb2Nd
IGluaXRXaXRoQ29udGFpbmVyOltVSVRleHRFZmZlY3RzV2luZG93IHNoYXJlZFRleHRFZmZlY3Rz
V2luZG93XSBjZW50ZXI6Y2FyZXRDZW50ZXJJbldpbmRvd0Nvb3JkaW5hdGVzIHRyYW5zZm9ybTpD
R0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgwLCAwKV0pOworICAgIHJldHVybiBbZGVmYXVsdFBy
ZXZpZXcgcmV0YXJnZXRlZFByZXZpZXdXaXRoVGFyZ2V0OnRhcmdldC5nZXQoKV07Cit9CisKKy0g
KHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNl
c3Npb25EaWRFbmQ6KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCit7CisgICAgaWYgKF9kYXRh
SW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdPcGVyYXRpb24gfHwgX2RhdGFJbnRlcmFjdGlv
blN0YXRlLmRpZEJlZ2luRHJhZ2dpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIENHUG9pbnQg
Z2xvYmFsOworICAgIENHUG9pbnQgY2xpZW50OworICAgIFtzZWxmIGNvbXB1dGVDbGllbnRBbmRH
bG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIG91dENsaWVudFBvaW50OiZjbGllbnQg
b3V0R2xvYmFsUG9pbnQ6Jmdsb2JhbF07CisgICAgW3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNz
aW9uU3RhdGVdOworICAgIF9wYWdlLT5kcmFnRW5kZWQocm91bmRlZEludFBvaW50KGNsaWVudCks
IHJvdW5kZWRJbnRQb2ludChnbG9iYWwpLCBVSURyYWdPcGVyYXRpb25Ob25lKTsKK30KKworI3By
YWdtYSBtYXJrIC0gVW5pdCB0ZXN0aW5nIHN1cHBvcnQKKworLSAodm9pZClfc2ltdWxhdGVEYXRh
SW50ZXJhY3Rpb25FbnRlcmVkOihpZClzZXNzaW9uCit7CisgICAgW3NlbGYgX2FwaV9kcm9wSW50
ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkgc2Vzc2lvbkRpZEVudGVyOnNlc3Npb25dOwor
fQorCistIChCT09MKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlkKXNlc3Npb24K
K3sKKyAgICByZXR1cm4gW3NlbGYgX2FwaV9kcm9wSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24u
Z2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9uXS5vcGVyYXRpb24gIT0gVUlEcm9wT3BlcmF0
aW9uQ2FuY2VsOworfQorCistICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihp
ZClzZXNzaW9uCit7CisgICAgW3NlbGYgZHJvcEludGVyYWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdl
dCgpIHNlc3Npb25EaWRFbmQ6c2Vzc2lvbl07Cit9CisKKy0gKHZvaWQpX3NpbXVsYXRlRGF0YUlu
dGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbjooaWQpc2Vzc2lvbgoreworICAgIFtzZWxmIGRyb3BJ
bnRlcmFjdGlvbjpfZGF0YU9wZXJhdGlvbi5nZXQoKSBwZXJmb3JtRHJvcDpzZXNzaW9uXTsKK30K
KworLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNz
aW9uCit7CisgICAgW3NlbGYgX2FwaV9kcmFnSW50ZXJhY3Rpb246X2RhdGFJbnRlcmFjdGlvbi5n
ZXQoKSBzZXNzaW9uOnNlc3Npb24gZGlkRW5kV2l0aE9wZXJhdGlvbjpVSURyb3BPcGVyYXRpb25D
b3B5XTsKK30KKworLSAodm9pZClfc2ltdWxhdGVXaWxsQmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRo
U2Vzc2lvbjooaWQpc2Vzc2lvbgoreworICAgIFtzZWxmIGRyYWdJbnRlcmFjdGlvbjpfZGF0YUlu
dGVyYWN0aW9uLmdldCgpIHNlc3Npb25XaWxsQmVnaW46c2Vzc2lvbl07Cit9CisKKy0gKE5TQXJy
YXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uCit7CisgICAgcmV0dXJu
IFtzZWxmIGRyYWdJbnRlcmFjdGlvbjpfZGF0YUludGVyYWN0aW9uLmdldCgpIGl0ZW1zRm9yQmVn
aW5uaW5nU2Vzc2lvbjpzZXNzaW9uXTsKK30KKworLSAodm9pZClfc2ltdWxhdGVQcmVwYXJlRm9y
RGF0YUludGVyYWN0aW9uU2Vzc2lvbjooaWQpc2Vzc2lvbiBjb21wbGV0aW9uOihkaXNwYXRjaF9i
bG9ja190KWNvbXBsZXRpb24KK3sKKyAgICBbc2VsZiBfZHJhZ0ludGVyYWN0aW9uOl9kYXRhSW50
ZXJhY3Rpb24uZ2V0KCkgcHJlcGFyZUZvclNlc3Npb246c2Vzc2lvbiBjb21wbGV0aW9uOmNvbXBs
ZXRpb25dOworfQorCisjZW5kaWYKKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50
VmlldyAoV0tUZXN0aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYzdj
MjY4OWViMjM0NzUyMDQ2ZTgwNzQ4NDk3NDkyYWZjZWFhMjUyNC4uN2E5ODI1YmE2MzUzZGNhNGYy
NTI3ZDFjNDI2MWE4YTQxZDcxNzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
CkBAIC0zNCwzMSArMzQsMzcgQEAKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NhY2hlZEltYWdlLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdl
YkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9h
cmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVHJ1bmNhdG9yLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKKyNpZiBQTEFU
Rk9STShJT1MpCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50
QWRkaXRpb25zV2ViS2l0Mi5tbT4pCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0Ns
aWVudEFkZGl0aW9uc1dlYktpdDIubW0+Ci0jZW5kaWYKK25hbWVzcGFjZSBXZWJLaXQgewogCiAj
aWYgUExBVEZPUk0oTUFDKQogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQogc3RhdGljIFJlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25z
dCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpG
bGFncyBmbGFncyA9IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYTsKQEAgLTE4NCw4ICsx
OTAsNTcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUs
IGltYWdlSGFuZGxlLCBpbWFnZVNpemUsIGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCBTdHJp
bmcoW1tyZXNwb25zZSBVUkxdIGFic29sdXRlU3RyaW5nXSksIHVzZXJWaXNpYmxlU3RyaW5nKChO
U1VSTCAqKXVybCksIGFyY2hpdmVIYW5kbGUsIGFyY2hpdmVTaXplKSk7CiB9CiAKLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCisjaWYgUExBVEZPUk0o
SU9TKQorCitzdGF0aWMgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydENHSW1hZ2VUb0Jp
dG1hcChDR0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUp
Cit7CisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShz
aXplLCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEgfCBTaGFyZWFibGVCaXRtYXA6OlN1
cHBvcnRzRXh0ZW5kZWRDb2xvcik7CisgICAgaWYgKCFiaXRtYXApCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgYXV0byBncmFwaGljc0NvbnRleHQgPSBiaXRtYXAtPmNyZWF0ZUdyYXBo
aWNzQ29udGV4dCgpOworICAgIFVJR3JhcGhpY3NQdXNoQ29udGV4dChncmFwaGljc0NvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBDR0NvbnRleHREcmF3SW1hZ2UoZ3JhcGhpY3NDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNp
emUuaGVpZ2h0KCkpLCBpbWFnZSk7CisgICAgVUlHcmFwaGljc1BvcENvbnRleHQoKTsKKyAgICBy
ZXR1cm4gYml0bWFwOworfQorCit2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1h
Z2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgSW50UG9pbnQmIGV2ZW50TG9j
YXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgRGF0YVRyYW5zZmVyJiBk
YXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0
aW9uKQoreworICAgIEludFNpemUgYml0bWFwU2l6ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0
KCkuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpLmdldCgpKSk7CisgICAgYXV0
byBiaXRtYXAgPSBjb252ZXJ0Q0dJbWFnZVRvQml0bWFwKGltYWdlLmdldCgpLmdldCgpLCBiaXRt
YXBTaXplLCBmcmFtZSk7CisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOworICAg
IGlmICghYml0bWFwIHx8ICFiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5kbGUpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BhZ2UtPndpbGxTdGFydERyYWcoKTsKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0RHJhZ0ltYWdlKGZyYW1lLnZpZXcoKS0+Y29udGVu
dHNUb1dpbmRvdyhwb2ludCksIGhhbmRsZSwgaW1hZ2UuaW5kaWNhdG9yRGF0YSgpLCBkcmFnSW1h
Z2VBbmNob3IsIGRyYWdTb3VyY2VBY3Rpb24pKTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50Ojpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1l
KikKK3sKKyAgICBpZiAoYXV0byBmcmFtZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQor
ICAgICAgICBmcmFtZS0+ZWRpdG9yKCkud3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7Cit9CisKK3Zv
aWQgV2ViRHJhZ0NsaWVudDo6ZGlkQ29uY2x1ZGVFZGl0RHJhZygpCit7CisgICAgbV9wYWdlLT5k
aWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oKTsKK30KKworI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCisKK3ZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlQXR0YWNo
bWVudChjb25zdCBTdHJpbmcmLCBFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwg
RnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKyNlbmRpZgorCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwogI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMGQ3MWFhMThiZTczNDk4NzVjYTI1ZGQwOWZlM2Q3NDRmZWJmOGRkZS4u
NzM0Yzc4YThiNjJlMzg1NDljNzM2ZmQ5ZDVmZTU0YTVhYjQ4N2Q0MiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3
LTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1MgRG5EXSBVcHN0cmVhbSBpT1MgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBpbnRv
IE9wZW5Tb3VyY2UgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzMzNjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzY3MDE0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW92ZSB0ZXN0IHBhZ2Vz
IGFuZCBwaWVjZXMgb2YgRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGhpZGRlbiBiZWhpbmQgV2Vi
S2l0QWRkaXRpb25zIGludG8gVGVzdFdlYktpdEFQSS4gTm8KKyAgICAgICAgY2hhbmdlIGluIGJl
aGF2aW9yLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9hdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2JhY2tncm91bmQtaW1hZ2Ut
bGluay1hbmQtaW5wdXQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9kaXYtYW5kLWxhcmdl
LWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2ZpbGUtdXBsb2FkaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW1hZ2UtYW5k
LXRleHRhcmVhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLXRhcmdldC1kaXYuaHRtbDogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJldmVudC1vcGVy
YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvcHJldmVudC1zdGFydC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS90ZXh0YXJlYS10by1pbnB1dC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW06CisgICAg
ICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gaW5pdFdpdGhJdGVtczpsb2NhdGlvbjp3aW5kb3c6
XSk6CisgICAgICAgICgtW01vY2tEcmFnRHJvcFNlc3Npb24gYWxsb3dzTW92ZU9wZXJhdGlvbl0p
OgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGlzUmVzdHJpY3RlZFRvRHJhZ2dpbmdB
cHBsaWNhdGlvbl0pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGhhc0l0ZW1zQ29u
Zm9ybWluZ1RvVHlwZUlkZW50aWZpZXJzOl0pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNz
aW9uIGNhbkxvYWRPYmplY3RzT2ZDbGFzczpdKToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9wU2Vz
c2lvbiBjYW5Mb2FkT2JqZWN0c09mQ2xhc3NlczpdKToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9w
U2Vzc2lvbiBpdGVtc10pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIHNldEl0ZW1z
Ol0pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGxvY2F0aW9uSW5WaWV3Ol0pOgor
ICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gaW5pdFdpdGhQcm92aWRlcnM6bG9j
YXRpb246d2luZG93Ol0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gc2Vz
c2lvbl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gaXNMb2NhbF0pOgor
ICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gcHJvZ3Jlc3NdKToKKyAgICAgICAg
KC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIHNldFByb2dyZXNzSW5kaWNhdG9yU3R5bGU6XSk6
CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBwcm9ncmVzc0luZGljYXRvclN0
eWxlXSk6CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBvcGVyYXRpb25NYXNr
XSk6CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBsb2NhbERyYWdTZXNzaW9u
XSk6CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBoYXNJdGVtc0NvbmZvcm1p
bmdUb1R5cGVJZGVudGlmaWVyOl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Np
b24gY2FuQ3JlYXRlSXRlbXNPZkNsYXNzOl0pOgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlv
blNlc3Npb24gbG9hZE9iamVjdHNPZkNsYXNzOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW01v
Y2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9uIGluaXRXaXRoV2luZG93Ol0pOgorICAgICAgICAoLVtN
b2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBsb2NhbE9wZXJhdGlvbk1hc2tdKToKKyAgICAgICAg
KC1bTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24gZXh0ZXJuYWxPcGVyYXRpb25NYXNrXSk6Cisg
ICAgICAgICgtW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9uIHNlc3Npb25dKToKKyAgICAgICAg
KC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF9hZHZhbmNlUHJvZ3Jlc3NdKToKKwogMjAxNy0w
Ni0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFNob3cgcHVueWNvZGUgdG8gdXNlciBpZiBhIFVSTCBoYXMgZG90bGVzcyBpIG9yIGogZm9s
bG93ZWQgYnkgZGlhY3JpdGljIGRvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNzg0NzY1NzQ5
YmQwZTZmNTU0Y2Q1ZmJlOTEzZjRlMTliOTgwY2RkMC4uZWZlZTE2ZTViZmJhZGEwOWFlMTQ1YTBj
ZTdiNWIyMDc0NWM4Y2U2NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yNDgsNCArMjQ4LDkg
QEAgRU5BQkxFX1ZBUklBVElPTl9GT05UU19JRl9OT1RfID0gJChFTkFCTEVfVkFSSUFUSU9OX0ZP
TlRTX0lGX05PVF9OTyk7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9OTyA9IEVOQUJM
RV9WQVJJQVRJT05fRk9OVFM7CiBFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTX0lGX05PVF9ZRVMgPSA7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FO
VkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9G
SUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1Jf
VklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFU
QUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BF
Uk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQ
QURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxF
X0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRF
UlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9L
RVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NU
UkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
UVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVO
QUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9W
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfRFJBR19TVVBQT1JUW3Nkaz1pcGhv
bmVvczExKl0gPSBFTkFCTEVfRFJBR19TVVBQT1JUOworRU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9
aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CitFTkFCTEVfREFUQV9J
TlRFUkFDVElPTltzZGs9aXBob25lb3MxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CitF
TkFCTEVfREFUQV9JTlRFUkFDVElPTltzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OOworCitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZP
Uk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
X09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9Q
QVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZf
Q0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BB
VEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8y
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JT
X0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkg
JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExF
UikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
ICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZB
U1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNf
TEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAk
KEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FU
VFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19T
VUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FV
RVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xC
T1gpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDZmOWY5NmFlMzc0OGU0ZDBjZGE3Nzg5OWIxNzgyMDU0MmUxMDhjMDUuLmU1OWVhMzNj
ZWMwZmEyMjlmODhiMjFhZTU0MDA3OWIyZTNhMmMwNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02MjMsNiArNjIzLDE4IEBACiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9w
TG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5QzRENEUg
LyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJCUVDQTY4
MENFMUU2OENDMDkwMDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBDRDFFNjhDQzA5MDA3MzFEMjAg
LyogU3RyaW5nVXRpbGl0aWVzLm1tICovOyB9OwogCQlGNDE1MDg2RDFEQTA0MEM1MDA0NEJFOUIg
LyogcGxheS1hdWRpby1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5
LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi87IH07CisJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAv
KiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8q
IGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTAxRUY0Njk2
QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDFBQjk5NzFF
RjQ2OTJDMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICov
OyB9OworCQlGNDFBQjlBMTFFRjQ2OTZCMDA4M0ZBMDggLyogY29udGVudGVkaXRhYmxlLWFuZC10
ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0MUFCOTlDMUVGNDY5MkMwMDgzRkEwOCAvKiBjb250ZW50ZWRpdGFibGUtYW5k
LXRleHRhcmVhLmh0bWwgKi87IH07CisJCUY0MUFCOUEyMUVGNDY5NkIwMDgzRkEwOCAvKiBkaXYt
YW5kLWxhcmdlLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUUxRUY0NjkyQzAwODNGQTA4IC8qIGRpdi1hbmQtbGFy
Z2UtaW1hZ2UuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTMxRUY0Njk2QjAwODNGQTA4IC8qIGZpbGUt
dXBsb2FkaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQxQUI5OUIxRUY0NjkyQzAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0
bWwgKi87IH07CisJCUY0MUFCOUE0MUVGNDY5NkIwMDgzRkEwOCAvKiBpbWFnZS1hbmQtY29udGVu
dGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQxQUI5OTkxRUY0NjkyQzAwODNGQTA4IC8qIGltYWdlLWFuZC1jb250ZW50
ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdl
LWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4
dGFyZWEuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QTYxRUY0Njk2QjAwODNGQTA4IC8qIGxpbmstYW5k
LWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQxQUI5OTYxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwg
Ki87IH07CisJCUY0MUFCOUE3MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQxQUI5OUQxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLXRhcmdldC1kaXYuaHRtbCAq
LzsgfTsKKwkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgKi87IH07
CisJCUY0MUFCOUE5MUVGNDY5NkIwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUEx
RUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCAqLzsgfTsKKwkJRjQxQUI5QUEx
RUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTUxRUY0NjkyQzAw
ODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0MkRBNTE2MUQ4Q0VG
RTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFE
OENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87
IH07CiAJCUY0NDUxQzc2MUVCOEZEODkwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRl
ZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NDUxQzc1MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRl
bnRlZGl0YWJsZS5odG1sICovOyB9OwogCQlGNDUzOEVGNzFFODQ3M0U2MDBCNUM5NTMgLyogbGFy
Z2UtcmVkLXNxdWFyZS5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVh
cmUucG5nICovOyB9OwpAQCAtNzEyLDYgKzcyNCwxOCBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgK
KwkJCQlGNDFBQjk5RjFFRjQ2OTZCMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJs
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUEwMUVGNDY5NkIwMDgzRkEw
OCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJRjQxQUI5QTExRUY0Njk2QjAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1h
bmQtdGV4dGFyZWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDFBQjlBMjFFRjQ2
OTZCMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCUY0MUFCOUEzMUVGNDY5NkIwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUE0MUVGNDY5NkIwMDgzRkEwOCAvKiBp
bWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
RjQxQUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUE2MUVGNDY5NkIwMDgzRkEwOCAvKiBsaW5rLWFu
ZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0MUFCOUE3MUVGNDY5NkIw
MDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQxQUI5QTkxRUY0Njk2QjAwODNGQTA4IC8qIHBy
ZXZlbnQtc3RhcnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDFBQjlBQTFFRjQ2
OTZCMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQgLyogbWVkaWFzdHJlYW10cmFjay1kZXRh
Y2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5
MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9mZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEt
ZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1NjIsNiArMTU4NiwxOCBA
QAogCQlFQ0E2ODBDRDFFNjhDQzA5MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3RyaW5nVXRpbGl0aWVzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZDM0VFMjEzNjc4QjczMDAxMjZBNjUgLyog
bGliZ3Rlc3QuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJndGVzdC5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQlGNDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyogcGxheS1hdWRpby1v
bi1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInBsYXktYXVkaW8tb24t
Y2xpY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTkzMUVGNDY5
MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1h
bmQtdGV4dGFyZWEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MUFCOTk0
MUVGNDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LW9wZXJhdGlvbi5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInBy
ZXZlbnQtb3BlcmF0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDFB
Qjk5NTFFRjQ2OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5wdXQuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJ0ZXh0YXJlYS10by1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjQxQUI5OTYxRUY0NjkyQzAwODNGQTA4IC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAibGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0
MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8q
IGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvZm9jdXMtY29u
dGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5
OTFFRjQ2OTJDMDA4M0ZBMDggLyogaW1hZ2UtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0MUFCOTlBMUVGNDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAicHJldmVudC1zdGFydC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjQxQUI5OUIxRUY0NjkyQzAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiZmlsZS11cGxvYWRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY0MUFCOTlDMUVGNDY5MkMwMDgzRkEwOCAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRl
eHRhcmVhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxQUI5OUQxRUY0NjkyQzAwODNGQTA4
IC8qIGxpbmstYW5kLXRhcmdldC1kaXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsaW5rLWFuZC10YXJnZXQt
ZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDFBQjk5RTFFRjQ2OTJD
MDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImRpdi1hbmQt
bGFyZ2UtaW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkRBNTE1
MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbCI7IHBhdGggPSAiVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZv
Y3VzLW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNDQ1MUM3
NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJs
ZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAw
QjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gImxhcmdlLXJlZC1zcXVh
cmUucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjIsNiArMTk5OCwxOCBA
QAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNDFBQjk5ODFFRjQ2OTJDMDA4M0ZB
MDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sICovLAorCQkJCUY0MUFCOTk3MUVG
NDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8s
CisJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4
dGFyZWEuaHRtbCAqLywKKwkJCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1s
YXJnZS1pbWFnZS5odG1sICovLAorCQkJCUY0MUFCOTlCMUVGNDY5MkMwMDgzRkEwOCAvKiBmaWxl
LXVwbG9hZGluZy5odG1sICovLAorCQkJCUY0MUFCOTk5MUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFn
ZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgKi8sCisJCQkJRjQxQUI5OTMxRUY0NjkyQzAwODNG
QTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sICovLAorCQkJCUY0MUFCOTk2MUVGNDY5MkMw
MDgzRkEwOCAvKiBsaW5rLWFuZC1pbnB1dC5odG1sICovLAorCQkJCUY0MUFCOTlEMUVGNDY5MkMw
MDgzRkEwOCAvKiBsaW5rLWFuZC10YXJnZXQtZGl2Lmh0bWwgKi8sCisJCQkJRjQxQUI5OTQxRUY0
NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgKi8sCisJCQkJRjQxQUI5OUEx
RUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCAqLywKKwkJCQlGNDFBQjk5NTFF
RjQ2OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5wdXQuaHRtbCAqLywKIAkJCQlGNDdEMzBF
QjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICovLAogCQkJCUMyNUNDQTBDMUU1MTQwRTUw
MDI2Q0I4QSAvKiBBbGxBaGVtLnN2ZyAqLywKIAkJCQk1QzlFNTkzRTFEM0VCMURFMDBFM0M2MkUg
LyogQXBwbGljYXRpb25DYWNoZS5kYiAqLywKQEAgLTI2NzcsNyArMjcyNSw2IEBACiAJCQkJOERE
NzZGOUIwNDg2QUE3NjAwRDk2QjVFIC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJOERENzZGOUUwNDg2
QUE3NjAwRDk2QjVFIC8qIENvcHlGaWxlcyAqLywKIAkJCQlCQ0I5RjRGQjExMjM4NEMwMDBBMTM3
RTAgLyogQ29weSBSZXNvdXJjZXMgKi8sCi0JCQkJRjQ3MUNCOEIxRTU2NUMwRjAwMjgwNTVDIC8q
IENvcHkgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJYnVpbGRSdWxlcyA9ICgK
IAkJCSk7CkBAIC0yNzg4LDIzICsyODM1LDYgQEAKIAkJfTsKIC8qIEVuZCBQQlhSZXNvdXJjZXNC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KIAotLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KLQkJRjQ3MUNCOEIxRTU2NUMwRjAwMjgwNTVDIC8qIENvcHkgYWRkaXRpb25h
bCByZXNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0J
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJ
aW5wdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQluYW1lID0gIkNvcHkgYWRkaXRpb25hbCByZXNvdXJj
ZXMiOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3Jp
cHQgPSAiQURESVRJT05BTF9SRVNPVVJDRVNfUEFUSD1cInVzci9sb2NhbC9pbmNsdWRlL1dlYktp
dEFkZGl0aW9ucy9SZXNvdXJjZXMvVGVzdFdlYktpdEFQSVwiXG5ERVNUSU5BVElPTl9QQVRIPVwi
JFRBUkdFVF9CVUlMRF9ESVIvVGVzdFdlYktpdEFQSS5yZXNvdXJjZXNcIlxuaWYgWyAtZCAkVEFS
R0VUX0JVSUxEX0RJUi8kQURESVRJT05BTF9SRVNPVVJDRVNfUEFUSCBdOyB0aGVuXG4gICAgY3Ag
JFRBUkdFVF9CVUlMRF9ESVIvJEFERElUSU9OQUxfUkVTT1VSQ0VTX1BBVEgvKiAkREVTVElOQVRJ
T05fUEFUSFxuZWxpZiBbIC1kICRTREtST09ULyRBRERJVElPTkFMX1JFU09VUkNFU19QQVRIIF07
IHRoZW5cbiAgICBjcCAkU0RLUk9PVC8kQURESVRJT05BTF9SRVNPVVJDRVNfUEFUSC8qICRERVNU
SU5BVElPTl9QQVRIXG5maSI7Ci0JCX07Ci0vKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KLQogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CQk3QzgzREU5NjFEMEE1OTBDMDBGRUJDRjMgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUwMzYzNWY5NGUzMGJkN2Y5ZmUzNDQyM2MwN2U4NTgxMWM0ZWRiOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9hdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGhlYWQ+
CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAw
JTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAg
ICAgICAgfQorCisgICAgICAgICNzb3VyY2UsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6
IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXpl
OiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKwor
ICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOwor
ICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYg
Y29udGVudGVkaXRhYmxlIGlkPSJzb3VyY2UiPkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPGRpdiBj
b250ZW50ZWRpdGFibGUgaWQ9ImVkaXRvciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5j
dGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0
b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3Iu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3Iu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9y
LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUpOworCisgICAgbGV0
IHRleHQgPSBzb3VyY2UuY2hpbGROb2Rlc1swXTsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KHRleHQsIDAsIHRleHQsIHRleHQuZGF0YS5sZW5ndGgpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjljOTg5ODQ1Y2I5N2M1NGE1ZDBmZGI5ZTNkMzdkYjM5YTE0Zjgy
ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwKQEAgLTAsMCArMSw0MSBA
QAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdp
bjogMDsKKyAgICAgICAgfQorCisgICAgICAgIGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1z
aXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0K
KworICAgICAgICBhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpY29uLnBu
Zyk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICAg
ICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAg
ICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBw
bGUuY29tIj48L2E+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48
L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsK
KyAgICAgICB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2
ZW50LnR5cGUpOworICAgIH0KKworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwg
cG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIs
IHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIs
IHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10
ZXh0YXJlYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY29u
dGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNDg5ZmMzOTQ2NDc1
ZmY5NDhmYWZmZDUzODJkMDcyNmYzOGIyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVh
Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAg
Ym9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
JTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgICNzb3VyY2Us
ICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6
IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRl
LXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAg
ICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJzb3VyY2Ui
PkhlbGxvIHdvcmxkPC9kaXY+CisgICAgPHRleHRhcmVhIGNvbnRlbnRlZGl0YWJsZSBpZD0iZWRp
dG9yIj48L3RleHRhcmVhPgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcG9zdEV2ZW50VHlw
ZShldmVudCkgeworICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9z
dE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVu
ZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIo
ImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIo
ImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVy
KCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKworICAgIGxldCB0ZXh0ID0gc291cmNlLmNo
aWxkTm9kZXNbMF07CisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAw
LCB0ZXh0LCB0ZXh0LmRhdGEubGVuZ3RoKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Rpdi1hbmQtbGFy
Z2UtaW1hZ2UuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Rp
di1hbmQtbGFyZ2UtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2EwMTllMmFiNmYzMTY3NjhhMTMx
M2Q2MDZiMmRiNGY2NDU3NjcyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MS4wIj4KKzxzdHlsZT4KK2h0bWwsIGJvZHkgeworICAgIG1hcmdpbjog
MDsKKyAgICBmb250LXNpemU6IDEuMmVtOworICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgLXdl
YmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOworfQorCisjdGFyZ2V0IHsKKyAgICB3aWR0
aDogMjAwMHB4OworICAgIGhlaWdodDogMzAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jh
eTsKK30KKworY29kZSB7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKworPGRpdiBp
ZD0idGFyZ2V0Ij48L2Rpdj4KKzxpbWcgc3JjPSJsYXJnZS1yZWQtc3F1YXJlLnBuZyI+PC9pbWc+
CisKKzxzY3JpcHQ+Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQg
PT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJh
Z292ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKK3RhcmdldC5hZGRFdmVu
dExpc3RlbmVyKCJkcm9wIiwgZXZlbnQgPT4geworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGNv
ZGU+UEFTUzwvY29kZT4iOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9KTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
ZmlsZS11cGxvYWRpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2ZpbGUtdXBsb2FkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc3NDk1ODcxMzBmNzlkZWMwYmNm
YjNjNmJmMzAwODVlZTNmNDg4MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2ZpbGUtdXBsb2FkaW5nLmh0bWwKQEAgLTAsMCArMSw0NiBA
QAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAgICA8c3R5bGU+CisgICAgYm9keSwgaHRtbCB7
CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW07CisgICAgfQorCisg
ICAgI2lucHV0LCAjdXBsb2FkIHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IGJsdWUgZGFzaGVkOworICAgIH0KKworICAg
ICNvdXRwdXQgeworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgZm9udC1zaXplOiAxZW07CisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisK
Kzxib2R5PgorICAgIDxkaXY+PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJpbnB1dCI+PC9pbnB1dD48
L2Rpdj4KKyAgICA8ZGl2IGlkPSJ1cGxvYWQiPjwvZGl2PgorICAgIDxkaXY+PGgzPlVwbG9hZGVk
IGZpbGUgdHlwZXM6IDwvaDM+PHRleHRhcmVhIGRpc2FibGVkIGlkPSJvdXRwdXQiPjwvdGV4dGFy
ZWE+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFu
Z2UiLCAoKSA9PiB7CisgICAgICAgIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1RvQXBwKGlucHV0LmZp
bGVzKTsKKyAgICB9KTsKKworICAgIHVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIi
LCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKKyAgICB1cGxvYWQuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKKyAg
ICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIGV2ZW50ID0+IHsKKyAgICAgICAgc2Vu
ZFVwbG9hZGVkRmlsZVR5cGVzVG9BcHAoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTsKKyAgICAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHNlbmRV
cGxvYWRlZEZpbGVUeXBlc1RvQXBwKGZpbGVzKQorICAgIHsKKyAgICAgICAgb3V0cHV0LnZhbHVl
ID0gQXJyYXkuZnJvbShmaWxlcykubWFwKGZpbGUgPT4gZmlsZS50eXBlKS5zb3J0KCkuam9pbigi
LCAiKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbWFnZS1hbmQtY29udGVudGVkaXRhYmxl
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbWFnZS1hbmQt
Y29udGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M3ZGU3M2I4YjFhY2UyMTA5MTRkMDFi
ZDM4ZWFlNjljZGQzNDFkYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoIj4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAg
ICAgbWFyZ2luOiAwOworICAgICAgICB9CisKKyAgICAgICAgI3NvdXJjZSwgI2VkaXRvciB7Cisg
ICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFw
eCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KyAgICA8ZGl2PjxpbWcgaWQ9InNvdXJjZSIgc3JjPSJpY29uLnBuZyI+PC9pbWc+PC9kaXY+Cisg
ICAgPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9ImVkaXRvciI+PC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQor
CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAg
ICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsK
KyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW1hZ2UtYW5kLXRleHRhcmVhLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzdlNmZhYTU5NTQzNWRjMTBkYWMzYzkwZWNhOTU2ZGEwYjk1OTk1OQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2ltYWdlLWFu
ZC10ZXh0YXJlYS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBo
ZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAg
ICAjc291cmNlLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAg
ICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGltZyBpZD0ic291cmNlIiBzcmM9Imlj
b24ucG5nIj48L2ltZz48L2Rpdj4KKyAgICA8dGV4dGFyZWEgY29udGVudGVkaXRhYmxlIGlkPSJl
ZGl0b3IiPjwvdGV4dGFyZWE+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRU
eXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQorCisgICAgZWRpdG9yLmFkZEV2ZW50TGlz
dGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVu
ZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVu
ZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xpbmst
YW5kLWlucHV0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
aW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYjkzMWRhMDEzYmE0NDU4Yjg0OWI5MDk0
ZWI3NzVlMTZiNjUzY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxo
ZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6
IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7
CisgICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTog
MjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9CisKKyAg
ICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAg
ICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2Pjxh
IGhyZWY9Imh0dHBzOi8vd3d3LmFwcGxlLmNvbSI+SGVsbG8gd29ybGQ8L2E+PC9kaXY+CisgICAg
PGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAg
IGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICAgd2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAg
ICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVk
aXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBl
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBl
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7CisgICAg
ZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGluay1hbmQtdGFyZ2V0LWRpdi5odG1sIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGluay1hbmQtdGFyZ2V0LWRpdi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZmYWQ2NjkxYWMxMTg3MjMyN2RkZTIwMWNmMWU4Yjk0ZTkxZjBlNTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC10
YXJnZXQtZGl2Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgorPHN0eWxlPgor
Ym9keSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIG1hcmdpbjog
MDsKK30KKworYSwgI3RhcmdldCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAyMDBw
eDsKKyAgICBmb250LXNpemU6IDIwMHB4OworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisK
KyN0YXJnZXQgeworICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworfQorCitjb2RlIHsKKyAg
ICBjb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPGRpdj48YSBocmVmPSJodHRwczovL3d3dy5h
cHBsZS5jb20iPkhlbGxvIHdvcmxkPC9hPjwvZGl2PgorPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4K
KzxzY3JpcHQ+Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4g
ZXZlbnQucHJldmVudERlZmF1bHQoKSk7Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292
ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKK3RhcmdldC5hZGRFdmVudExp
c3RlbmVyKCJkcm9wIiwgZXZlbnQgPT4geworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGNvZGU+
UEFTUzwvY29kZT4iOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJl
dmVudC1vcGVyYXRpb24uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3NmU2Nzc0NTdlZDFhMDY4
NTJhZDNjNTcyMGRhMWI1ZTBmNTljMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3ByZXZlbnQtb3BlcmF0aW9uLmh0bWwKQEAgLTAsMCAr
MSwzNyBAQAorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAg
IG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgIGEsICNlZGl0b3IgeworICAgICAgICAg
ICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAg
Zm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAg
ICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4
IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5Pgor
ICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUuY29tIj5IZWxsbyB3b3JsZDwvYT48
L2Rpdj4KKyAgICA8ZGl2Pjx0ZXh0YXJlYSBvbmRyb3A9InJldHVybiBmYWxzZSIgaWQ9ImVkaXRv
ciI+PC90ZXh0YXJlYT48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVu
dFR5cGUoZXZlbnQpIHsKKyAgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0
ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0
ZW5lcigiZHJhZ2xlYXZlIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlz
dGVuZXIoImRyYWdzdGFydCIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcHJl
dmVudC1zdGFydC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
cHJldmVudC1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MDUyMDEyZDUyMzg5ZWIwNzVkZmRiZDUz
ZjBjNGEzZjIwMjQzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9wcmV2ZW50LXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGhl
YWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDog
MTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsK
KyAgICAgICAgfQorCisgICAgICAgIGEsICNlZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEw
MCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAy
MDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAg
ICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXY+PGEg
b25kcmFnc3RhcnQ9InJldHVybiBmYWxzZSIgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUuY29tIj5I
ZWxsbyB3b3JsZDwvYT48L2Rpdj4KKyAgICA8ZGl2Pjx0ZXh0YXJlYSBpZD0iZWRpdG9yIj48L3Rl
eHRhcmVhPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcG9zdEV2ZW50VHlwZShl
dmVudCkgeworICAgICAgICB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKGV2ZW50LnR5cGUpOworICAgIH0KKworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVy
KCJkcm9wIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRy
YWdlbnRlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJk
cmFnb3ZlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJk
cmFnbGVhdmUiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ3N0YXJ0IiwgcG9zdEV2ZW50VHlwZSk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS90ZXh0YXJlYS10
by1pbnB1dC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvdGV4
dGFyZWEtdG8taW5wdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2I4ZjljYzJkY2FjNjhhMGYwYzE2NWE5
YjU2YWIzNGM1ZjY4MjFmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvdGV4dGFyZWEtdG8taW5wdXQuaHRtbApAQCAtMCwwICsxLDM5IEBA
Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsK
KyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAgICAgICNzb3VyY2UsICNl
ZGl0b3IgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIHdoaXRlLXNw
YWNlOiBub3dyYXA7CisgICAgICAgIH0KKworICAgICAgICAjZWRpdG9yIHsKKyAgICAgICAgICAg
IGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkOworICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cis8
L2hlYWQ+CisKKzxib2R5PgorICAgIDx0ZXh0YXJlYSBpZD0ic291cmNlIj5IZWxsbyB3b3JsZDwv
dGV4dGFyZWE+CisgICAgPGlucHV0IGlkPSJlZGl0b3IiPjwvaW5wdXQ+CisgICAgPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgIHdlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQudHlwZSk7CisgICAgfQor
CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBwb3N0RXZlbnRUeXBlKTsKKyAg
ICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgcG9zdEV2ZW50VHlwZSk7Cisg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIHBvc3RFdmVudFR5cGUpOwor
ICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBwb3N0RXZlbnRUeXBlKTsK
KyAgICBzb3VyY2Uuc2VsZWN0aW9uU3RhcnQgPSAwOworICAgIHNvdXJjZS5zZWxlY3Rpb25FbmQg
PSBzb3VyY2UudmFsdWUubGVuZ3RoOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4
IDcwOTBmN2I4OTk0OGRjN2I2ZjE2M2I2YmY0Njg0ZjFiNTYzOTAwYjEuLjljOWJlNDdlMTIxYTMz
OTRkYTM3MzM3YzliYTNjYzEzYTFlYzdjNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KQEAgLTMwLDYgKzMwLDEwIEBACiAK
ICNpbXBvcnQgIkluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxVSUtpdC9VSURyYWdJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8
VUlLaXQvVUlEcmFnSXRlbS5oPgorI2ltcG9ydCA8VUlLaXQvVUlEcmFnU2Vzc2lvbi5oPgorI2lt
cG9ydCA8VUlLaXQvVUlEcmFnZ2luZy5oPgogI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJf
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQyLDkgKzQ2LDE5MSBAQCBTT0ZUX0xJTksoVUlL
aXQsIFVJQXBwbGljYXRpb25JbnN0YW50aWF0ZVNpbmdsZXRvbiwgdm9pZCwgKENsYXNzIHNpbmds
ZXRvbkNsYXNzKQogCiB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAotI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9EYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3JBZGRpdGlvbnMubW0+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3JBZGRpdGlvbnMubW0+Ci0jZW5kaWYKK0BpbnRl
cmZhY2UgTW9ja0RyYWdEcm9wU2Vzc2lvbiA6IE5TT2JqZWN0IDxVSURyYWdEcm9wU2Vzc2lvbj4g
eworQHByaXZhdGUKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX21vY2tJdGVtczsKKyAgICBSZXRh
aW5QdHI8VUlXaW5kb3c+IF93aW5kb3c7Cit9CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2lu
dCBtb2NrTG9jYXRpb25JbldpbmRvdzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE1vY2tEcmFn
RHJvcFNlc3Npb24KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSXRlbXM6KE5TQXJyYXkgPFVJ
RHJhZ0l0ZW0gKj4qKWl0ZW1zIGxvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uSW5XaW5kb3cgd2lu
ZG93OihVSVdpbmRvdyAqKXdpbmRvdworeworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7
CisgICAgICAgIF9tb2NrSXRlbXMgPSBpdGVtczsKKyAgICAgICAgX21vY2tMb2NhdGlvbkluV2lu
ZG93ID0gbG9jYXRpb25JbldpbmRvdzsKKyAgICAgICAgX3dpbmRvdyA9IHdpbmRvdzsKKyAgICB9
CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpYWxsb3dzTW92ZU9wZXJhdGlvbgorewor
ICAgIHJldHVybiBZRVM7Cit9CisKKy0gKEJPT0wpaXNSZXN0cmljdGVkVG9EcmFnZ2luZ0FwcGxp
Y2F0aW9uCit7CisgICAgcmV0dXJuIE5POworfQorCistIChCT09MKWhhc0l0ZW1zQ29uZm9ybWlu
Z1RvVHlwZUlkZW50aWZpZXJzOihOU0FycmF5PE5TU3RyaW5nICo+ICopdHlwZUlkZW50aWZpZXJz
Cit7CisgICAgZm9yIChOU1N0cmluZyAqdHlwZUlkZW50aWZpZXIgaW4gdHlwZUlkZW50aWZpZXJz
KSB7CisgICAgICAgIEJPT0wgaGFzSXRlbUNvbmZvcm1pbmdUb1R5cGUgPSBOTzsKKyAgICAgICAg
Zm9yIChVSURyYWdJdGVtICppdGVtIGluIHNlbGYuaXRlbXMpCisgICAgICAgICAgICBoYXNJdGVt
Q29uZm9ybWluZ1RvVHlwZSB8PSBbW2l0ZW0uaXRlbVByb3ZpZGVyIHJlZ2lzdGVyZWRUeXBlSWRl
bnRpZmllcnNdIGNvbnRhaW5zT2JqZWN0OnR5cGVJZGVudGlmaWVyXTsKKyAgICAgICAgaWYgKCFo
YXNJdGVtQ29uZm9ybWluZ1RvVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKyAgICB9Cisg
ICAgcmV0dXJuIFlFUzsKK30KKworLSAoQk9PTCljYW5Mb2FkT2JqZWN0c09mQ2xhc3M6KENsYXNz
PFVJSXRlbVByb3ZpZGVyUmVhZGluZz4pYUNsYXNzCit7CisgICAgZm9yIChVSURyYWdJdGVtICpp
dGVtIGluIHNlbGYuaXRlbXMpIHsKKyAgICAgICAgaWYgKFtpdGVtLml0ZW1Qcm92aWRlciBjYW5M
b2FkT2JqZWN0T2ZDbGFzczphQ2xhc3NdKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9
CisgICAgcmV0dXJuIE5POworfQorCistIChCT09MKWNhbkxvYWRPYmplY3RzT2ZDbGFzc2VzOihO
U0FycmF5PENsYXNzPFVJSXRlbVByb3ZpZGVyUmVhZGluZz4+ICopY2xhc3NlcworeworICAgIGZv
ciAoQ2xhc3M8VUlJdGVtUHJvdmlkZXJSZWFkaW5nPiBhQ2xhc3MgaW4gY2xhc3NlcykgeworICAg
ICAgICBCT09MIGNhbkxvYWQgPSBOTzsKKyAgICAgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGlu
IHNlbGYuaXRlbXMpCisgICAgICAgICAgICBjYW5Mb2FkIHw9IFtpdGVtLml0ZW1Qcm92aWRlciBj
YW5Mb2FkT2JqZWN0T2ZDbGFzczphQ2xhc3NdOworICAgICAgICBpZiAoIWNhbkxvYWQpCisgICAg
ICAgICAgICByZXR1cm4gTk87CisgICAgfQorICAgIHJldHVybiBZRVM7Cit9CisKKy0gKE5TQXJy
YXk8VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7CisgICAgcmV0dXJuIF9tb2NrSXRlbXMuZ2V0KCk7
Cit9CisKKy0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7
CisgICAgX21vY2tJdGVtcyA9IGl0ZW1zOworfQorCistIChDR1BvaW50KWxvY2F0aW9uSW5WaWV3
OihVSVZpZXcgKil2aWV3Cit7CisgICAgcmV0dXJuIFtfd2luZG93IGNvbnZlcnRQb2ludDpfbW9j
a0xvY2F0aW9uSW5XaW5kb3cgdG9WaWV3OnZpZXddOworfQorCitAZW5kCisKK05TU3RyaW5nICog
Y29uc3QgRGF0YUludGVyYWN0aW9uRW50ZXJFdmVudE5hbWUgPSBAImRyYWdlbnRlciI7CitOU1N0
cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvbk92ZXJFdmVudE5hbWUgPSBAImRyYWdvdmVyIjsK
K05TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFt
ZSA9IEAiZHJvcCI7CitOU1N0cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvbkxlYXZlRXZlbnRO
YW1lID0gQCJkcmFnbGVhdmUiOworTlNTdHJpbmcgKiBjb25zdCBEYXRhSW50ZXJhY3Rpb25TdGFy
dEV2ZW50TmFtZSA9IEAiZHJhZ3N0YXJ0IjsKKworQGludGVyZmFjZSBNb2NrRGF0YU9wZXJhdGlv
blNlc3Npb24gOiBNb2NrRHJhZ0Ryb3BTZXNzaW9uIDxVSURyb3BTZXNzaW9uPgorQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZykgaWQgbG9jYWxDb250ZXh0OworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKXByb3ZpZGVycyBsb2NhdGlv
bjooQ0dQb2ludClsb2NhdGlvbkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cKK3sK
KyAgICBhdXRvIGl0ZW1zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
CisgICAgZm9yIChVSUl0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyIGluIHByb3ZpZGVycykKKyAg
ICAgICAgW2l0ZW1zIGFkZE9iamVjdDpbW1tVSURyYWdJdGVtIGFsbG9jXSBpbml0V2l0aEl0ZW1Q
cm92aWRlcjppdGVtUHJvdmlkZXJdIGF1dG9yZWxlYXNlXV07CisKKyAgICByZXR1cm4gW3N1cGVy
IGluaXRXaXRoSXRlbXM6aXRlbXMuZ2V0KCkgbG9jYXRpb246bG9jYXRpb25JbldpbmRvdyB3aW5k
b3c6d2luZG93XTsKK30KKworLSAoVUlEcmFnZ2luZ1Nlc3Npb24gKilzZXNzaW9uCit7CisgICAg
cmV0dXJuIG5pbDsKK30KKworLSAoQk9PTClpc0xvY2FsCit7CisgICAgcmV0dXJuIFlFUzsKK30K
KworLSAoTlNQcm9ncmVzcyAqKXByb2dyZXNzCit7CisgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRp
c2NyZXRlUHJvZ3Jlc3NXaXRoVG90YWxVbml0Q291bnQ6MTAwXTsKK30KKworLSAodm9pZClzZXRQ
cm9ncmVzc0luZGljYXRvclN0eWxlOihVSURyb3BTZXNzaW9uUHJvZ3Jlc3NJbmRpY2F0b3JTdHls
ZSlwcm9ncmVzc0luZGljYXRvclN0eWxlCit7Cit9CisKKy0gKFVJRHJvcFNlc3Npb25Qcm9ncmVz
c0luZGljYXRvclN0eWxlKXByb2dyZXNzSW5kaWNhdG9yU3R5bGUKK3sKKyAgICByZXR1cm4gVUlE
cm9wU2Vzc2lvblByb2dyZXNzSW5kaWNhdG9yU3R5bGVOb25lOworfQorCistIChOU1VJbnRlZ2Vy
KW9wZXJhdGlvbk1hc2sKK3sKKyAgICByZXR1cm4gMDsKK30KKworLSAoaWQgPFVJRHJhZ1Nlc3Np
b24+KWxvY2FsRHJhZ1Nlc3Npb24KK3sKKyAgICByZXR1cm4gbmlsOworfQorCistIChCT09MKWhh
c0l0ZW1zQ29uZm9ybWluZ1RvVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlwZUlkZW50aWZp
ZXIKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTk87Cit9CisKKy0g
KEJPT0wpY2FuQ3JlYXRlSXRlbXNPZkNsYXNzOihDbGFzczxVSUl0ZW1Qcm92aWRlclJlYWRpbmc+
KWFDbGFzcworeworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOTzsKK30K
KworLSAoTlNQcm9ncmVzcyAqKWxvYWRPYmplY3RzT2ZDbGFzczooQ2xhc3M8TlNJdGVtUHJvdmlk
ZXJSZWFkaW5nPilhQ2xhc3MgY29tcGxldGlvbjoodm9pZCheKShOU0FycmF5PF9fa2luZG9mIGlk
IDxOU0l0ZW1Qcm92aWRlclJlYWRpbmc+PiAqb2JqZWN0cykpY29tcGxldGlvbgoreworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBuaWw7Cit9CisKK0BlbmQKKworQGludGVy
ZmFjZSBNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiA6IE1vY2tEcmFnRHJvcFNlc3Npb24gPFVJ
RHJhZ1Nlc3Npb24+CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBpZCBsb2NhbENvbnRl
eHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBpZCBjb250ZXh0OworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoV2luZG93OihVSVdpbmRvdyAqKXdpbmRvdworeworICAgIHJldHVybiBbc3Vw
ZXIgaW5pdFdpdGhJdGVtczpAWyBdIGxvY2F0aW9uOkNHUG9pbnRaZXJvIHdpbmRvdzp3aW5kb3dd
OworfQorCistIChOU1VJbnRlZ2VyKWxvY2FsT3BlcmF0aW9uTWFzaworeworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCistIChOU1VJbnRlZ2VyKWV4dGVybmFs
T3BlcmF0aW9uTWFzaworeworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAw
OworfQorCistIChpZClzZXNzaW9uCit7CisgICAgcmV0dXJuIG5pbDsKK30KKworQGVuZAogCiBz
dGF0aWMgZG91YmxlIHByb2dyZXNzSW5jcmVtZW50U3RlcCA9IDAuMDMzOwogc3RhdGljIGRvdWJs
ZSBwcm9ncmVzc1RpbWVTdGVwID0gMC4wMTY7CkBAIC0yMTIsNyArMzk4LDcgQEAgc3RhdGljIE5T
QXJyYXkgKmRhdGFJbnRlcmFjdGlvbkV2ZW50TmFtZXMoKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgZm9yIChXS0RhdGFJbnRlcmFjdGlvbkl0ZW0gKml0ZW0gaW4g
aXRlbXMpCisgICAgICAgIGZvciAoVUlEcmFnSXRlbSAqaXRlbSBpbiBpdGVtcykKICAgICAgICAg
ICAgIFtpdGVtUHJvdmlkZXJzIGFkZE9iamVjdDppdGVtLml0ZW1Qcm92aWRlcl07CiAKICAgICAg
ICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhT3BlcmF0aW9uU2Vz
c2lvbiBhbGxvY10gaW5pdFdpdGhQcm92aWRlcnM6aXRlbVByb3ZpZGVycyBsb2NhdGlvbjpzZWxm
Ll9jdXJyZW50TG9jYXRpb24gd2luZG93Oltfd2ViVmlldyB3aW5kb3ddXSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>