<?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>8562</bug_id>
          
          <creation_ts>2006-04-24 01:00:05 -0700</creation_ts>
          <short_desc>Remove use of _webSuperviewOfClass: and related in WebKit</short_desc>
          <delta_ts>2006-10-12 16:23:25 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>40313</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-24 01:00:05 -0700</bug_when>
    <thetext>Many parts of WebKit depend on walking the view hierarchy and finding classes of a specific type to do their business. This is fragile and may get in the way of future refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40314</commentid>
    <comment_count>1</comment_count>
      <attachid>7937</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-24 01:00:32 -0700</bug_when>
    <thetext>Created attachment 7937
clean up view hierarchy hacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40320</commentid>
    <comment_count>2</comment_count>
      <attachid>7937</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-04-24 02:24:02 -0700</bug_when>
    <thetext>Comment on attachment 7937
clean up view hierarchy hacks

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49375</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Omernick">timo</who>
    <bug_when>2006-07-11 19:43:10 -0700</bug_when>
    <thetext>This somehow fixed &lt;rdar://problem/4480737&gt;.  I wonder why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53448</commentid>
    <comment_count>4</comment_count>
    <who name="David Harrison">harrison</who>
    <bug_when>2006-10-12 16:23:25 -0700</bug_when>
    <thetext>This led to &lt;rdar://problem/4588878&gt; &apos;WebHTMLView&apos; may not respond to &apos;-_webView&apos;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7937</attachid>
            <date>2006-04-24 01:00:32 -0700</date>
            <delta_ts>2006-04-24 02:24:02 -0700</delta_ts>
            <desc>clean up view hierarchy hacks</desc>
            <filename>clean-up-view-hierarchy-hacks.patch.txt</filename>
            <type>text/plain</type>
            <size>39858</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFBsdWdpbnMvV2ViUGx1Z2luRG9jdW1lbnRWaWV3Lm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1
Z2lucy9XZWJQbHVnaW5Eb2N1bWVudFZpZXcubQkocmV2aXNpb24gMTQwMjkpCisrKyBQbHVnaW5z
L1dlYlBsdWdpbkRvY3VtZW50Vmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPFdlYktp
dC9XZWJEYXRhU291cmNlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0RXJy
b3JzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5TVVJMRXh0cmFzLmg+CkBAIC04MCw2
ICs4MSw4IEBACiAgICAgaWYgKCFbc2VsZiBzdXBlcnZpZXddKQogICAgICAgICByZXR1cm47CiAg
ICAgICAgIAorICAgIF9kYXRhU291cmNlID0gZGF0YVNvdXJjZTsKKyAgICBbcGx1Z2luQ29udHJv
bGxlciBzZXREYXRhU291cmNlOmRhdGFTb3VyY2VdOwogICAgIGRhdGFTb3VyY2VIYXNCZWVuU2V0
ID0gWUVTOwogICAgIAogICAgIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlID0gW2RhdGFTb3VyY2Ug
cmVzcG9uc2VdOwpAQCAtMTI5LDcgKzEzMiw3IEBACiAKIC0gKHZvaWQpbGF5b3V0CiB7Ci0gICAg
TlNSZWN0IHN1cGVyRnJhbWUgPSBbW3NlbGYgX3dlYl9zdXBlcnZpZXdPZkNsYXNzOltXZWJGcmFt
ZVZpZXcgY2xhc3NdXSBmcmFtZV07CisgICAgTlNSZWN0IHN1cGVyRnJhbWUgPSBbW1tfZGF0YVNv
dXJjZSB3ZWJGcmFtZV0gZnJhbWVWaWV3XSBmcmFtZV07CiAgICAgW3NlbGYgc2V0RnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCBOU1dpZHRoKHN1cGVyRnJhbWUpLCBOU0hlaWdodChzdXBlckZyYW1lKSld
OwogICAgIG5lZWRzTGF5b3V0ID0gTk87ICAgIAogfQpAQCAtMTM3LDEyICsxNDAsMTIgQEAKIC0g
KE5TV2luZG93ICopY3VycmVudFdpbmRvdwogewogICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2Vs
ZiB3aW5kb3ddOwotICAgIHJldHVybiB3aW5kb3cgIT0gbmlsID8gd2luZG93IDogW1tzZWxmIF93
ZWJWaWV3XSBob3N0V2luZG93XTsKKyAgICByZXR1cm4gd2luZG93ICE9IG5pbCA/IHdpbmRvdyA6
IFtbX2RhdGFTb3VyY2UgX3dlYlZpZXddIGhvc3RXaW5kb3ddOwogfQogCiAtICh2b2lkKXZpZXdX
aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdwogewotICAgIGlmIChbW3NlbGYgX3dl
YlZpZXddIGhvc3RXaW5kb3ddID09IG5pbCkgeworICAgIGlmIChbW19kYXRhU291cmNlIF93ZWJW
aWV3XSBob3N0V2luZG93XSA9PSBuaWwpIHsKICAgICAgICAgW3BsdWdpbkNvbnRyb2xsZXIgc3Rv
cEFsbFBsdWdpbnNdOwogICAgIH0KIH0KSW5kZXg6IFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5E
b2N1bWVudFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRG9j
dW1lbnRWaWV3Lm0JKHJldmlzaW9uIDE0MDI5KQorKysgUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkRvY3VtZW50Vmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDcgQEAKIAogLSAo
dm9pZClsYXlvdXQKIHsKLSAgICBOU1JlY3Qgc3VwZXJGcmFtZSA9IFtbc2VsZiBfd2ViX3N1cGVy
dmlld09mQ2xhc3M6W1dlYkZyYW1lVmlldyBjbGFzc11dIGZyYW1lXTsKKyAgICBOU1JlY3Qgc3Vw
ZXJGcmFtZSA9IFtbW2RhdGFTb3VyY2Ugd2ViRnJhbWVdIGZyYW1lVmlld10gZnJhbWVdOwogICAg
IFtzZWxmIHNldEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChzdXBlckZyYW1lKSwgTlNI
ZWlnaHQoc3VwZXJGcmFtZSkpXTsKICAgICBuZWVkc0xheW91dCA9IE5POwogfQpJbmRleDogUGx1
Z2lucy9XZWJOdWxsUGx1Z2luVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBsdWdpbnMvV2ViTnVsbFBs
dWdpblZpZXcuaAkocmV2aXNpb24gMTQwMjkpCisrKyBQbHVnaW5zL1dlYk51bGxQbHVnaW5WaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxNiBAQAogI2ltcG9ydCA8QXBwS2l0L0Fw
cEtpdC5oPgogCiBAY2xhc3MgTlNFcnJvcjsKK0BjbGFzcyBXZWJGcmFtZTsKIAogQGludGVyZmFj
ZSBXZWJOdWxsUGx1Z2luVmlldyA6IE5TSW1hZ2VWaWV3CiB7CiAgICAgQk9PTCBkaWRTZW5kRXJy
b3I7CiAgICAgTlNFcnJvciAqZXJyb3I7CisgICAgV2ViRnJhbWUgKl93ZWJGcmFtZTsKIH0KIAog
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGVycm9yOihOU0Vycm9yICopcGx1Z2lu
RXJyb3I7CistICh2b2lkKXNldFdlYkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lOwogCiBAZW5k
CkluZGV4OiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRW1iZWRkZWRWaWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkVtYmVkZGVkVmlldy5oCShyZXZpc2lvbiAx
NDAyOSkKKysrIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FbWJlZGRlZFZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsOSArMzAsMTIgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcuaD4KIAorQGNsYXNzIFdlYkZyYW1lOworCiBAaW50ZXJmYWNlIFdlYk5l
dHNjYXBlUGx1Z2luRW1iZWRkZWRWaWV3IDogV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldwogewog
ICAgIE5TVVJMICpVUkw7CisgICAgV2ViRnJhbWUgKl93ZWJGcmFtZTsKIH0KIAogLSAoaWQpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KXIKQEAgLTQzLDQgKzQ2LDYgQEAKICAgICAgIGF0dHJpYnV0ZUtl
eXM6KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVz
OwogCistICh2b2lkKXNldFdlYkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lOworCiBAZW5kCklu
ZGV4OiBQbHVnaW5zL1dlYk51bGxQbHVnaW5WaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1Z2lucy9X
ZWJOdWxsUGx1Z2luVmlldy5tCShyZXZpc2lvbiAxNDAyOSkKKysrIFBsdWdpbnMvV2ViTnVsbFBs
dWdpblZpZXcubQkod29ya2luZyBjb3B5KQpAQCAtNjMsMTIgKzYzLDE2IEBAIHN0YXRpYyBOU0lt
YWdlICppbWFnZSA9IG5pbDsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKKy0gKHZvaWQpc2V0
V2ViRnJhbWU6KFdlYkZyYW1lICopd2ViRnJhbWUKK3sKKyAgICBfd2ViRnJhbWUgPSB3ZWJGcmFt
ZTsKK30KKwogLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiB7CiAgICAgaWYoIWRpZFNlbmRF
cnJvciAmJiBfd2luZG93ICYmIGVycm9yKXsKICAgICAgICAgZGlkU2VuZEVycm9yID0gWUVTOwot
ICAgICAgICBXZWJGcmFtZVZpZXcgKnZpZXcgPSAoV2ViRnJhbWVWaWV3ICopW3NlbGYgX3dlYl9z
dXBlcnZpZXdPZkNsYXNzOltXZWJGcmFtZVZpZXcgY2xhc3NdXTsKLSAgICAgICAgV2ViRnJhbWUg
KndlYkZyYW1lID0gW3ZpZXcgd2ViRnJhbWVdOworICAgICAgICBXZWJGcmFtZSAqd2ViRnJhbWUg
PSBfd2ViRnJhbWU7CiAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbd2ViRnJhbWUgd2ViVmll
d107CiAgICAgICAgIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UgPSBbd2ViRnJhbWUgZGF0YVNv
dXJjZV07CiAgICAgICAgIApJbmRleDogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkVtYmVkZGVk
Vmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FbWJlZGRlZFZp
ZXcubQkocmV2aXNpb24gMTQwMjkpCisrKyBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRW1iZWRk
ZWRWaWV3Lm0JKHdvcmtpbmcgY29weSkKQEAgLTg2LDExICs4NiwxNCBAQAogICAgIH0KIH0KIAor
LSAodm9pZClzZXRXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZQoreworICAgIF93ZWJGcmFt
ZSA9IHdlYkZyYW1lOworfQorCiAtIChXZWJEYXRhU291cmNlICopZGF0YVNvdXJjZQogewotICAg
IFdlYkZyYW1lVmlldyAqd2ViRnJhbWVWaWV3ID0gKFdlYkZyYW1lVmlldyAqKVtzZWxmIF93ZWJf
c3VwZXJ2aWV3T2ZDbGFzczpbV2ViRnJhbWVWaWV3IGNsYXNzXV07Ci0gICAgV2ViRnJhbWUgKndl
YkZyYW1lID0gW3dlYkZyYW1lVmlldyB3ZWJGcmFtZV07Ci0gICAgcmV0dXJuIFt3ZWJGcmFtZSBk
YXRhU291cmNlXTsKKyAgICByZXR1cm4gW193ZWJGcmFtZSBkYXRhU291cmNlXTsKIH0KIAogQGVu
ZApJbmRleDogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLmgJKHJldmlzaW9uIDE0MDI5KQorKysgUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMiBAQAog
QGNsYXNzIFdlYlBsdWdpblBhY2thZ2U7CiBAY2xhc3MgV2ViRnJhbWVCcmlkZ2U7CiBAY2xhc3Mg
V2ViVmlldzsKK0BjbGFzcyBXZWJEYXRhU291cmNlOwogCiBAaW50ZXJmYWNlIFdlYlBsdWdpbkNv
bnRyb2xsZXIgOiBOU09iamVjdAogewogICAgIE5TVmlldyAqX2RvY3VtZW50VmlldzsKKyAgICBX
ZWJEYXRhU291cmNlICpfZGF0YVNvdXJjZTsKICAgICBOU011dGFibGVBcnJheSAqX3ZpZXdzOwog
ICAgIEJPT0wgX3N0YXJ0ZWQ7CiAgICAgTlNNdXRhYmxlU2V0ICpfY2hlY2tzSW5Qcm9ncmVzczsK
QEAgLTQ2LDYgKzQ4LDggQEAKIAogLSAoaWQpaW5pdFdpdGhEb2N1bWVudFZpZXc6KE5TVmlldyAq
KXZpZXc7CiAKKy0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3Vy
Y2U7CisKIC0gKHZvaWQpYWRkUGx1Z2luOihOU1ZpZXcgKil2aWV3OwogLSAodm9pZClkZXN0cm95
UGx1Z2luOihOU1ZpZXcgKil2aWV3OwogCkluZGV4OiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xs
ZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubQkocmV2aXNp
b24gMTQwMjkpCisrKyBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubQkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlBsdWdpblZpZXdGYWN0b3J5
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld0ludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V2ViVUlEZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+
CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUZyYW1lQnJpZGdlLmg+CiAKQEAgLTEwNiw2ICsx
MDcsMTEgQEAgc3RhdGljIE5TTXV0YWJsZVNldCAqcGx1Z2luVmlld3MgPSBuaWw7CiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRh
dGFTb3VyY2UKK3sKKyAgICBfZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7ICAgIAorfQorCiAtICh2
b2lkKWRlYWxsb2MKIHsKICAgICBbX3ZpZXdzIHJlbGVhc2VdOwpAQCAtMjY3LDcgKzI3Myw3IEBA
IHN0YXRpYyBOU011dGFibGVTZXQgKnBsdWdpblZpZXdzID0gbmlsOwogICAgICAgICBMT0dfRVJS
T1IoImNvdWxkIG5vdCBsb2FkIFVSTCAlQCBiZWNhdXNlIHBsdWctaW4gaGFzIGFscmVhZHkgYmVl
biBkZXN0cm95ZWQiLCByZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBXZWJG
cmFtZSAqZnJhbWUgPSBbX2RvY3VtZW50VmlldyBfZnJhbWVdOworICAgIFdlYkZyYW1lICpmcmFt
ZSA9IFtfZGF0YVNvdXJjZSB3ZWJGcmFtZV07CiAgICAgaWYgKCFmcmFtZSkgewogICAgICAgICBM
T0dfRVJST1IoImNvdWxkIG5vdCBsb2FkIFVSTCAlQCBiZWNhdXNlIHBsdWctaW4gaGFzIGFscmVh
ZHkgYmVlbiBzdG9wcGVkIiwgcmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKQEAgLTMwNiw3ICsz
MTIsNyBAQCBzdGF0aWMgTlNNdXRhYmxlU2V0ICpwbHVnaW5WaWV3cyA9IG5pbDsKICAgICAgICAg
TE9HX0VSUk9SKCJjb3VsZCBub3Qgc2hvdyBzdGF0dXMgbWVzc2FnZSAoJUApIGJlY2F1c2UgcGx1
Zy1pbiBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCIsIG1lc3NhZ2UpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIFdlYlZpZXcgKnYgPSBbX2RvY3VtZW50VmlldyBfd2ViVmlld107Cisg
ICAgV2ViVmlldyAqdiA9IFtfZGF0YVNvdXJjZSBfd2ViVmlld107CiAgICAgW1t2IF9VSURlbGVn
YXRlRm9yd2FyZGVyXSB3ZWJWaWV3OnYgc2V0U3RhdHVzVGV4dDptZXNzYWdlXTsKIH0KIApAQCAt
MzE4LDcgKzMyNCw3IEBAIHN0YXRpYyBOU011dGFibGVTZXQgKnBsdWdpblZpZXdzID0gbmlsOwog
CiAtIChOU0NvbG9yICopd2ViUGx1Z0luQ29udGFpbmVyU2VsZWN0aW9uQ29sb3IKIHsKLSAgICBy
ZXR1cm4gW1tfZG9jdW1lbnRWaWV3IF9icmlkZ2VdIHNlbGVjdGlvbkNvbG9yXTsKKyAgICByZXR1
cm4gW1tfZGF0YVNvdXJjZSBfYnJpZGdlXSBzZWxlY3Rpb25Db2xvcl07CiB9CiAKIC8vIEZvciBj
b21wYXRpYmlsaXR5IG9ubHkuCkBAIC0zMjksNyArMzM1LDcgQEAgc3RhdGljIE5TTXV0YWJsZVNl
dCAqcGx1Z2luVmlld3MgPSBuaWw7CiAKIC0gKFdlYkZyYW1lICopd2ViRnJhbWUKIHsKLSAgICBy
ZXR1cm4gW19kb2N1bWVudFZpZXcgX2ZyYW1lXTsKKyAgICByZXR1cm4gW19kYXRhU291cmNlIHdl
YkZyYW1lXTsKIH0KIAogLSAoV2ViRnJhbWVCcmlkZ2UgKilicmlkZ2UKSW5kZXg6IFBsdWdpbnMv
V2ViUGx1Z2luRG9jdW1lbnRWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1Z2lucy9XZWJQbHVnaW5E
b2N1bWVudFZpZXcuaAkocmV2aXNpb24gMTQwMjkpCisrKyBQbHVnaW5zL1dlYlBsdWdpbkRvY3Vt
ZW50Vmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiB7CiAgICAgV2ViUGx1
Z2luQ29udHJvbGxlciAqcGx1Z2luQ29udHJvbGxlcjsKICAgICBXZWJQbHVnaW5QYWNrYWdlICpw
bHVnaW47CisgICAgV2ViRGF0YVNvdXJjZSAqX2RhdGFTb3VyY2U7CiAgICAgQk9PTCBkYXRhU291
cmNlSGFzQmVlblNldDsKICAgICBCT09MIG5lZWRzTGF5b3V0OwogfQpJbmRleDogV2ViQ29yZVN1
cHBvcnQvV2ViVmlld0ZhY3RvcnkubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlU3VwcG9ydC9XZWJW
aWV3RmFjdG9yeS5tCShyZXZpc2lvbiAxNDAzMCkKKysrIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdG
YWN0b3J5Lm0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZUJyaWRnZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdJbnRlcm5hbC5oPgotI2ltcG9ydCA8V2ViS2l0L1dl
YkhUTUxWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkhUTUxWaWV3SW50ZXJuYWwu
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5TT2Jq
ZWN0RXh0cmFzLmg+CkBAIC04NCw3ICs4NCw3IEBACiAgICAgCiAgICAgd2hpbGUgKGFWaWV3KSB7
CiAgICAgICAgIGlmIChbYVZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkg
ewotICAgICAgICAgICAgcmV0dXJuIFsoV2ViSFRNTFZpZXcgKilhVmlldyBfYnJpZGdlXTsKKyAg
ICAgICAgICAgIHJldHVybiBbW1soV2ViSFRNTFZpZXcgKilhVmlldyBfZnJhbWVdIGRhdGFTb3Vy
Y2VdIF9icmlkZ2VdOwogICAgICAgICB9CiAgICAgICAgIGFWaWV3ID0gW2FWaWV3IHN1cGVydmll
d107CiAgICAgfQpJbmRleDogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCShyZXZpc2lvbiAxNDAzMCkK
KysrIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0JKHdvcmtpbmcgY29weSkKQEAgLTYz
MywxNCArNjMzLDE0IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UK
IHsKICAgICAvLyBXaGVuIGEgZm9ybSBlbGVtZW50IGJlY29tZXMgZmlyc3QgcmVzcG9uZGVyLCBp
dHMgZW5jbG9zaW5nIFdlYkhUTUxWaWV3IG1pZ2h0IG5lZWQgdG8KICAgICAvLyBjaGFuZ2UgaXRz
IGZvY3VzLWRpc3BsYXlpbmcgc3RhdGUsIGJ1dCBpc24ndCBvdGhlcndpc2Ugbm90aWZpZWQuCi0g
ICAgWyhXZWJIVE1MVmlldyAqKVtmb3JtQ29udHJvbCBfd2ViX3N1cGVydmlld09mQ2xhc3M6W1dl
YkhUTUxWaWV3IGNsYXNzXV0gX2Zvcm1Db250cm9sSXNCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyOmZv
cm1Db250cm9sXTsKKyAgICBbKFdlYkhUTUxWaWV3ICopW1tfZnJhbWUgZnJhbWVWaWV3XSBkb2N1
bWVudFZpZXddIF9mb3JtQ29udHJvbElzQmVjb21pbmdGaXJzdFJlc3BvbmRlcjpmb3JtQ29udHJv
bF07CiB9CiAKIC0gKHZvaWQpZm9ybUNvbnRyb2xJc1Jlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyOihO
U1ZpZXcgKilmb3JtQ29udHJvbAogewogICAgIC8vIFdoZW4gYSBmb3JtIGVsZW1lbnQgcmVzaWdu
cyBmaXJzdCByZXNwb25kZXIsIGl0cyBlbmNsb3NpbmcgV2ViSFRNTFZpZXcgbWlnaHQgbmVlZCB0
bwogICAgIC8vIGNoYW5nZSBpdHMgZm9jdXMtZGlzcGxheWluZyBzdGF0ZSwgYnV0IGlzbid0IG90
aGVyd2lzZSBub3RpZmllZC4KLSAgICBbKFdlYkhUTUxWaWV3ICopW2Zvcm1Db250cm9sIF93ZWJf
c3VwZXJ2aWV3T2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSBfZm9ybUNvbnRyb2xJc1Jlc2ln
bmluZ0ZpcnN0UmVzcG9uZGVyOmZvcm1Db250cm9sXTsKKyAgICBbKFdlYkhUTUxWaWV3ICopW1tf
ZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIF9mb3JtQ29udHJvbElzUmVzaWduaW5nRmly
c3RSZXNwb25kZXI6Zm9ybUNvbnRyb2xdOwogfQogCiAtICh2b2lkKXNldEljb25VUkw6KE5TVVJM
ICopVVJMCkBAIC05NTcsMjAgKzk1NywxOCBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVy
S2V5ID0gICBAIldlCiAgICAgICAgICAgICByZXR1cm4gdmlldzsKICAgICB9CiAKLSAgICBpZiAo
W01JTUVUeXBlIGxlbmd0aF0gIT0gMCkgeworICAgIGlmIChbTUlNRVR5cGUgbGVuZ3RoXSAhPSAw
KQogICAgICAgICBwbHVnaW5QYWNrYWdlID0gW1tXZWJQbHVnaW5EYXRhYmFzZSBpbnN0YWxsZWRQ
bHVnaW5zXSBwbHVnaW5Gb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgfSBlbHNlIHsKKyAgICBl
bHNlCiAgICAgICAgIE1JTUVUeXBlID0gbmlsOwotICAgIH0KICAgICAKICAgICBOU1N0cmluZyAq
ZXh0ZW5zaW9uID0gW1tVUkwgcGF0aF0gcGF0aEV4dGVuc2lvbl07CiAgICAgaWYgKCFwbHVnaW5Q
YWNrYWdlICYmIFtleHRlbnNpb24gbGVuZ3RoXSAhPSAwKSB7CiAgICAgICAgIHBsdWdpblBhY2th
Z2UgPSBbW1dlYlBsdWdpbkRhdGFiYXNlIGluc3RhbGxlZFBsdWdpbnNdIHBsdWdpbkZvckV4dGVu
c2lvbjpleHRlbnNpb25dOwogICAgICAgICBpZiAocGx1Z2luUGFja2FnZSkgewogICAgICAgICAg
ICAgTlNTdHJpbmcgKm5ld01JTUVUeXBlID0gW3BsdWdpblBhY2thZ2UgTUlNRVR5cGVGb3JFeHRl
bnNpb246ZXh0ZW5zaW9uXTsKLSAgICAgICAgICAgIGlmIChbbmV3TUlNRVR5cGUgbGVuZ3RoXSAh
PSAwKSB7CisgICAgICAgICAgICBpZiAoW25ld01JTUVUeXBlIGxlbmd0aF0gIT0gMCkKICAgICAg
ICAgICAgICAgICBNSU1FVHlwZSA9IG5ld01JTUVUeXBlOwotICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogCkBAIC05ODIsMjMgKzk4MCwyMiBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29u
dGFpbmVyS2V5ID0gICBAIldlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlVmFsdWVzOmF0dHJpYnV0ZVZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzZVVSTDpiYXNlVVJMXTsKICAgICAgICAgfSBlbHNlIGlmIChbcGx1Z2luUGFj
a2FnZSBpc0tpbmRPZkNsYXNzOltXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xhc3NdXSkgewot
ICAgICAgICAgICAgdmlldyA9IFtbW1dlYk5ldHNjYXBlUGx1Z2luRW1iZWRkZWRWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QKKyAgICAgICAgICAgIFdlYk5ldHNjYXBlUGx1Z2lu
RW1iZWRkZWRWaWV3ICplbWJlZGRlZFZpZXcgPSBbW1tXZWJOZXRzY2FwZVBsdWdpbkVtYmVkZGVk
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW46KFdl
Yk5ldHNjYXBlUGx1Z2luUGFja2FnZSAqKXBsdWdpblBhY2thZ2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTDpV
UkwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZVVSTDpiYXNlVVJMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlNRVR5cGU6TUlNRVR5cGUKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlS2V5czphdHRyaWJ1dGVOYW1lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzOmF0dHJpYnV0ZVZh
bHVlc10gYXV0b3JlbGVhc2VdOwotICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmlldyA9
IGVtYmVkZGVkVmlldzsKKyAgICAgICAgICAgIFtlbWJlZGRlZFZpZXcgc2V0V2ViRnJhbWU6X2Zy
YW1lXTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgfQotICAgIH0gZWxzZSB7CisgICAgfSBlbHNlCiAgICAgICAgIGVycm9yQ29kZSA9
IFdlYktpdEVycm9yQ2Fubm90RmluZFBsdWdJbjsKLSAgICB9CiAKLSAgICBpZiAoIWVycm9yQ29k
ZSAmJiAhdmlldykgeworICAgIGlmICghZXJyb3JDb2RlICYmICF2aWV3KQogICAgICAgICBlcnJv
ckNvZGUgPSBXZWJLaXRFcnJvckNhbm5vdExvYWRQbHVnSW47Ci0gICAgfQogCiAgICAgaWYgKGVy
cm9yQ29kZSkgewogICAgICAgICBOU1N0cmluZyAqcGx1Z2luUGFnZSA9IFtzZWxmIHZhbHVlRm9y
S2V5OkAicGx1Z2luc3BhZ2UiIGtleXM6YXR0cmlidXRlTmFtZXMgdmFsdWVzOmF0dHJpYnV0ZVZh
bHVlc107CkBAIC0xMDA4LDcgKzEwMDUsOSBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVy
S2V5ID0gICBAIldlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBsdWdpblBhZ2VVUkw6cGx1Z2luUGFnZVVSTAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5OYW1lOltwbHVnaW5Q
YWNrYWdlIG5hbWVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTUlNRVR5cGU6TUlNRVR5cGVdOwotICAgICAgICB2aWV3ID0gW1tbV2Vi
TnVsbFBsdWdpblZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBlcnJvcjplcnJv
cl0gYXV0b3JlbGVhc2VdOworICAgICAgICBXZWJOdWxsUGx1Z2luVmlldyAqbnVsbFZpZXcgPSBb
W1tXZWJOdWxsUGx1Z2luVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGVycm9y
OmVycm9yXSBhdXRvcmVsZWFzZV07CisgICAgICAgIFtudWxsVmlldyBzZXRXZWJGcmFtZTpfZnJh
bWVdOworICAgICAgICB2aWV3ID0gbnVsbFZpZXc7CiAgICAgICAgIFtlcnJvciByZWxlYXNlXTsK
ICAgICB9CiAgICAgCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxNDAzMSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEw
MSBAQAorMjAwNi0wNC0yNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgLSBS
ZW1vdmUgdXNlIG9mIF93ZWJTdXBlcnZpZXdPZkNsYXNzOiBhbmQgcmVsYXRlZAorICAgICAgICAK
KyAgICAgICAgSSByZW1vdmVkIGFsbCB1c2Ugb2YgdGhlc2UsIG5vdyBvYmplY3RzIGdldCBhdCBl
YWNoIG90aGVyIHZpYQorICAgICAgICBhY3R1YWwgcG9pbnRlcnMsIG5vdCB1c2luZyB0aGUgdmll
dyBoaWVyYXJjaHkuIEhvd2V2ZXIsIEkgbGVmdCB0d28KKyAgICAgICAgb2YgdGhlIGNhbGxzIGlu
IGJlY2F1c2Ugb3RoZXIgY2xpZW50cyByZWx5IG9uIHRoZW0gYXMgU1BJICh1Z2gpLgorCisgICAg
ICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tOgorICAgICAgICAqIE1pc2MvV2ViTlNWaWV3
RXh0cmFzLmg6CisgICAgICAgICogTWlzYy9XZWJOU1ZpZXdFeHRyYXMubToKKyAgICAgICAgKC1b
TlNWaWV3IF93ZWJfc3VwZXJ2aWV3T2ZDbGFzczpdKToKKyAgICAgICAgKC1bTlNWaWV3IF93ZWJf
cGFyZW50V2ViRnJhbWVWaWV3XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkRvY3VtZW50Vmlldy5tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpbkRvY3VtZW50Vmll
dyBsYXlvdXRdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRW1iZWRkZWRW
aWV3Lmg6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkVtYmVkZGVkVmlldy5t
OgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpbkVtYmVkZGVkVmlldyBzZXRXZWJGcmFtZTpd
KToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5FbWJlZGRlZFZpZXcgZGF0YVNvdXJjZV0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTnVsbFBsdWdpblZpZXcuaDoKKyAgICAgICAgKiBQbHVn
aW5zL1dlYk51bGxQbHVnaW5WaWV3Lm06CisgICAgICAgICgtW1dlYk51bGxQbHVnaW5WaWV3IHNl
dFdlYkZyYW1lOl0pOgorICAgICAgICAoLVtXZWJOdWxsUGx1Z2luVmlldyB2aWV3RGlkTW92ZVRv
V2luZG93XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLmg6CisgICAg
ICAgICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm06CisgICAgICAgICgtW1dlYlBsdWdp
bkNvbnRyb2xsZXIgc2V0RGF0YVNvdXJjZTpdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJv
bGxlciB3ZWJQbHVnSW5Db250YWluZXJMb2FkUmVxdWVzdDppbkZyYW1lOl0pOgorICAgICAgICAo
LVtXZWJQbHVnaW5Db250cm9sbGVyIHdlYlBsdWdJbkNvbnRhaW5lclNob3dTdGF0dXM6XSk6Cisg
ICAgICAgICgtW1dlYlBsdWdpbkNvbnRyb2xsZXIgd2ViUGx1Z0luQ29udGFpbmVyU2VsZWN0aW9u
Q29sb3JdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciB3ZWJGcmFtZV0pOgorICAg
ICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luRG9jdW1lbnRWaWV3Lmg6CisgICAgICAgICogUGx1Z2lu
cy9XZWJQbHVnaW5Eb2N1bWVudFZpZXcubToKKyAgICAgICAgKC1bV2ViUGx1Z2luRG9jdW1lbnRW
aWV3IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW1dlYlBsdWdpbkRvY3VtZW50VmlldyBs
YXlvdXRdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luRG9jdW1lbnRWaWV3IGN1cnJlbnRXaW5kb3dd
KToKKyAgICAgICAgKC1bV2ViUGx1Z2luRG9jdW1lbnRWaWV3IHZpZXdXaWxsTW92ZVRvV2luZG93
Ol0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm06CisgICAgICAg
ICgtW1dlYkZyYW1lQnJpZGdlIGZvcm1Db250cm9sSXNCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyOl0p
OgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBmb3JtQ29udHJvbElzUmVzaWduaW5nRmlyc3RS
ZXNwb25kZXI6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIHZpZXdGb3JQbHVnaW5XaXRo
VVJMOmF0dHJpYnV0ZU5hbWVzOmF0dHJpYnV0ZVZhbHVlczpNSU1FVHlwZTpdKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tOgorICAgICAgICAoLVtXZWJWaWV3RmFj
dG9yeSBicmlkZ2VGb3JWaWV3Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViQ2xpcFZpZXcubToK
KyAgICAgICAgKC1bTlNWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZVZpZXcubToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9zaG91bGREcmF3Qm9yZGVy
XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyB3ZWJDb3JlQnJpZGdlXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJIVE1MVmlldy5tOgorICAgICAgICAoLVtXZWJUZXh0Q29tcGxldGVDb250cm9s
bGVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2RhdGFTb3VyY2VdKToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgX2JyaWRnZV0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBf
d2ViVmlld10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZnJhbWVWaWV3XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IF93ZWJfZmlyc3RSZXNwb25kZXJDYXVzZXNGb2N1c0Rpc3BsYXldKToK
KyAgICAgICAgKC1bTlNBcnJheSBiZWNvbWVGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtO
U0FycmF5IHNldERhdGFTb3VyY2U6XSk6CisgICAgICAgICgtW05TQXJyYXkgcGFnZVVwOl0pOgor
ICAgICAgICAoLVtOU0FycmF5IHBhZ2VEb3duOl0pOgorICAgICAgICAoLVtOU0FycmF5IHBhZ2VV
cEFuZE1vZGlmeVNlbGVjdGlvbjpdKToKKyAgICAgICAgKC1bTlNBcnJheSBwYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ZyYW1lXSk6CisgICAg
ICAgICogV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9X
ZWJJbWFnZVZpZXcuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkltYWdlVmlldy5tOgorICAgICAg
ICAoLVtXZWJJbWFnZVZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgtW1dlYkltYWdlVmlldyBh
ZGp1c3RGcmFtZVNpemVdKToKKyAgICAgICAgKC1bV2ViSW1hZ2VWaWV3IHNldERhdGFTb3VyY2U6
XSk6CisgICAgICAgICgtW1dlYkltYWdlVmlldyB3ZWJWaWV3XSk6CisgICAgICAgICgtW1dlYklt
YWdlVmlldyB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkOnR5cGVzOl0pOgorICAgICAgICAoLVtXZWJJ
bWFnZVZpZXcgY29weTpdKToKKyAgICAgICAgKC1bV2ViSW1hZ2VWaWV3IGVsZW1lbnRBdFBvaW50
Ol0pOgorICAgICAgICAoLVtXZWJJbWFnZVZpZXcgbW91c2VEcmFnZ2VkOl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViUERGVmlldy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tOgor
ICAgICAgICAoLVtXZWJQREZWaWV3IF9hcHBseVBERkRlZmF1bHRzXSk6CisgICAgICAgICgtW1dl
YlBERlZpZXcgX3RyYWNrRmlyc3RSZXNwb25kZXJdKToKKyAgICAgICAgKC1bUERGUHJlZlVwZGF0
aW5nUHJveHkgZm9yd2FyZEludm9jYXRpb246XSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZW5k
ZXJOb2RlLm06CisgICAgICAgICgtW1dlYlJlbmRlck5vZGUgaW5pdFdpdGhXZWJGcmFtZVZpZXc6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0Vmlldy5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVGV4dFZpZXcubToKKyAgICAgICAgKC1bV2ViVGV4dFZpZXcgX3RleHRTaXplTXVsdGlwbGll
ckZyb21XZWJWaWV3XSk6CisgICAgICAgICgtW1dlYlRleHRWaWV3IF9wcmVmZXJlbmNlc10pOgor
ICAgICAgICAoLVtXZWJUZXh0VmlldyBzZXREYXRhU291cmNlOl0pOgorICAgICAgICAoLVtXZWJU
ZXh0VmlldyBfd2ViRnJhbWVdKToKKyAgICAgICAgKC1bV2ViVGV4dFZpZXcgZHJhZ1NlbGVjdGlv
bldpdGhFdmVudDpvZmZzZXQ6c2xpZGVCYWNrOl0pOgorICAgICAgICAoLVtXZWJUZXh0VmlldyBt
ZW51Rm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYlRleHRWaWV3IHJlc2lnbkZpcnN0UmVzcG9u
ZGVyXSk6CisgICAgICAgICgtW1dlYlRleHRWaWV3IGRyYXdQYWdlQm9yZGVyV2l0aFNpemU6XSk6
CisgICAgICAgICgtW1dlYlRleHRWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tOgorICAgICAgICAoLVtXZWJWaWV3IHNlYXJjaEZvcjpkaXJlY3Rpb246
Y2FzZVNlbnNpdGl2ZTp3cmFwOl0pOgorICAgICAgICAoY29udGFpbmluZ0ZyYW1lVmlldyk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX2ZvY3VzZWRGcmFtZV0pOgorICAgICAgICAoLVtXZWJWaWV3IF9m
cmFtZVZpZXdBdFdpbmRvd1BvaW50Ol0pOgorCiAyMDA2LTA0LTIzICBNYWNpZWogU3RhY2hvd2lh
ayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBN
aXNjL1dlYk5TVmlld0V4dHJhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIE1pc2MvV2ViTlNWaWV3RXh0cmFz
LmgJKHJldmlzaW9uIDE0MDI5KQorKysgTWlzYy9XZWJOU1ZpZXdFeHRyYXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMjYgKzMxLDE0IEBACiAjZGVmaW5lIFdlYkRyYWdJbWFnZUFscGhhICAgIDAu
NzUKIAogQGNsYXNzIERPTUVsZW1lbnQ7Ci1AY2xhc3MgV2ViQXJjaGl2ZTsKLUBjbGFzcyBXZWJG
cmFtZUJyaWRnZTsKLUBjbGFzcyBXZWJEYXRhU291cmNlOwotQGNsYXNzIFdlYkZyYW1lOwotQGNs
YXNzIFdlYkZyYW1lVmlldzsKIEBjbGFzcyBXZWJJbWFnZVJlbmRlcmVyOwotQGNsYXNzIFdlYlZp
ZXc7CitAY2xhc3MgV2ViRnJhbWVWaWV3OwogCiBAaW50ZXJmYWNlIE5TVmlldyAoV2ViRXh0cmFz
KQogCiAvLyBSZXR1cm5zIHRoZSBuZWFyZXN0IGVuY2xvc2luZyB2aWV3IG9mIHRoZSBnaXZlbiBj
bGFzcywgb3IgbmlsIGlmIG5vbmUuCiAtIChOU1ZpZXcgKilfd2ViX3N1cGVydmlld09mQ2xhc3M6
KENsYXNzKWNsYXNzOwotCi0vLyBSZXR1cm5zIHRoZSBuZWFyZXN0IGVuY2xvc2luZyB2aWV3IG9m
IHRoZSBnaXZlbiBjbGFzcywgb3IgbmlsIGlmIG5vbmUuCi0vLyBTdG9wcyBzZWFyY2hpbmcgYW5k
IHJldHVybnMgbmlsIHdoZW4gbGltaXRDbGFzcyBpcyBlbmNvdW50ZXJlZAotLSAoTlNWaWV3ICop
X3dlYl9zdXBlcnZpZXdPZkNsYXNzOihDbGFzcyljbGFzcyBzdG9wcGluZ0F0Q2xhc3M6KENsYXNz
KWxpbWl0Q2xhc3M7Ci0KLS8vIFJldHVybnMgdGhlIGZpcnN0IFdlYkZyYW1lVmlldyBzdXBlcnZp
ZXcuIE9ubHkgd29ya3MgaWYgc2VsZiBpcyB0aGUgV2ViRnJhbWVWaWV3J3MgZG9jdW1lbnQgdmll
dy4KIC0gKFdlYkZyYW1lVmlldyAqKV93ZWJfcGFyZW50V2ViRnJhbWVWaWV3OwotLSAoV2ViVmll
dyAqKV93ZWJfcGFyZW50V2ViVmlldzsKIAogLy8gcmV0dXJucyB3aGV0aGVyIGEgZHJhZyBzaG91
bGQgYmVnaW4gc3RhcnRpbmcgd2l0aCBtb3VzZURvd25FdmVudDsgaWYgdGhlIHRpbWUKIC8vIHBh
c3NlcyBleHBpcmF0aW9uIG9yIHRoZSBtb3VzZSBtb3ZlcyBsZXNzIHRoYW4gdGhlIGh5c3RlcmVz
aXMgYmVmb3JlIHRoZSBtb3VzZVVwIGV2ZW50LApAQCAtNzksMTUgKzY3LDUgQEAKICAgICAgICAg
ICAgICAgICBvZmZzZXQ6KE5TUG9pbnQgKilkcmFnSW1hZ2VPZmZzZXQ7CiAKIC0gKEJPT0wpX3dl
Yl9maXJzdFJlc3BvbmRlcklzU2VsZk9yRGVzY2VuZGFudFZpZXc7Ci0tIChCT09MKV93ZWJfZmly
c3RSZXNwb25kZXJDYXVzZXNGb2N1c0Rpc3BsYXk7Ci0KLUBlbmQKLQotQGludGVyZmFjZSBOU1Zp
ZXcgKFdlYkRvY3VtZW50Vmlld0V4dHJhcykKLQotLSAoV2ViVmlldyAqKV93ZWJWaWV3OwotLSAo
V2ViRnJhbWUgKilfZnJhbWU7Ci0tIChXZWJGcmFtZUJyaWRnZSAqKV9icmlkZ2U7Ci0tIChXZWJE
YXRhU291cmNlICopX2RhdGFTb3VyY2U7CiAKIEBlbmQKSW5kZXg6IE1pc2MvV2ViTlNWaWV3RXh0
cmFzLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQkocmV2aXNpb24gMTQw
MjkpCisrKyBNaXNjL1dlYk5TVmlld0V4dHJhcy5tCSh3b3JraW5nIGNvcHkpCkBAIC00OCwzNiAr
NDgsMTcgQEAKIAogQGltcGxlbWVudGF0aW9uIE5TVmlldyAoV2ViRXh0cmFzKQogCi0tIChOU1Zp
ZXcgKilfd2ViX3N1cGVydmlld09mQ2xhc3M6KENsYXNzKWNsYXNzIHN0b3BwaW5nQXRDbGFzczoo
Q2xhc3MpbGltaXRDbGFzcwotewotICAgIE5TVmlldyAqdmlldyA9IHNlbGY7Ci0gICAgd2hpbGUg
KCh2aWV3ID0gW3ZpZXcgc3VwZXJ2aWV3XSkgIT0gbmlsKSB7Ci0gICAgICAgIGlmIChbdmlldyBp
c0tpbmRPZkNsYXNzOmNsYXNzXSkgewotICAgICAgICAgICAgcmV0dXJuIHZpZXc7Ci0gICAgICAg
IH0gZWxzZSBpZiAobGltaXRDbGFzcyAmJiBbdmlldyBpc0tpbmRPZkNsYXNzOmxpbWl0Q2xhc3Nd
KSB7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBu
aWw7Ci19Ci0KIC0gKE5TVmlldyAqKV93ZWJfc3VwZXJ2aWV3T2ZDbGFzczooQ2xhc3MpY2xhc3MK
IHsKLSAgICByZXR1cm4gW3NlbGYgX3dlYl9zdXBlcnZpZXdPZkNsYXNzOmNsYXNzIHN0b3BwaW5n
QXRDbGFzczpuaWxdOworICAgIE5TVmlldyAqdmlldyA9IFtzZWxmIHN1cGVydmlld107CisgICAg
d2hpbGUgKHZpZXcgICYmICFbdmlldyBpc0tpbmRPZkNsYXNzOmNsYXNzXSkKKyAgICAgICAgdmll
dyA9IFt2aWV3IHN1cGVydmlld107CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKIC0gKFdlYkZyYW1l
VmlldyAqKV93ZWJfcGFyZW50V2ViRnJhbWVWaWV3CiB7Ci0gICAgV2ViRnJhbWVWaWV3ICp2aWV3
ID0gKFdlYkZyYW1lVmlldyAqKVtbW3NlbGYgc3VwZXJ2aWV3XSBzdXBlcnZpZXddIHN1cGVydmll
d107Ci0gICAgaWYgKFt2aWV3IGlzS2luZE9mQ2xhc3M6IFtXZWJGcmFtZVZpZXcgY2xhc3NdXSkK
LSAgICAgICAgcmV0dXJuIHZpZXc7Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoV2ViVmlldyAq
KV93ZWJfcGFyZW50V2ViVmlldwotewotICAgIHJldHVybiBbW3NlbGYgX3dlYl9wYXJlbnRXZWJG
cmFtZVZpZXddIF93ZWJWaWV3XTsKKyAgICByZXR1cm4gKFdlYkZyYW1lVmlldyAqKVtzZWxmIF93
ZWJfc3VwZXJ2aWV3T2ZDbGFzczpbV2ViRnJhbWVWaWV3IGNsYXNzXV07CiB9CiAKIC8qIERldGVy
bWluZSB3aGV0aGVyIGEgbW91c2UgZG93biBzaG91bGQgdHVybiBpbnRvIGEgZHJhZzsgc3RhcnRl
ZCBhcyBjb3B5IG9mIE5TVGFibGVWaWV3IGNvZGUgKi8KQEAgLTIyNCw0MiArMjA1LDQgQEAKICAg
ICAgICAgICAgKFtyZXNwb25kZXIgaXNLaW5kT2ZDbGFzczpbTlNWaWV3IGNsYXNzXV0gJiYgWyhO
U1ZpZXcgKilyZXNwb25kZXIgaXNEZXNjZW5kYW50T2Y6c2VsZl0pKSk7CiB9CiAKLS0gKEJPT0wp
X3dlYl9maXJzdFJlc3BvbmRlckNhdXNlc0ZvY3VzRGlzcGxheQotewotICAgIHJldHVybiBbc2Vs
ZiBfd2ViX2ZpcnN0UmVzcG9uZGVySXNTZWxmT3JEZXNjZW5kYW50Vmlld10gfHwgW1tzZWxmIHdp
bmRvd10gZmlyc3RSZXNwb25kZXJdID09IFtzZWxmIF93ZWJfcGFyZW50V2ViRnJhbWVWaWV3XTsK
LX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gTlNWaWV3IChXZWJEb2N1bWVudFZpZXdFeHRy
YXMpCi0KLS0gKFdlYlZpZXcgKilfd2ViVmlldwotewotICAgIC8vIFdlIHVzZWQgdG8gdXNlIHRo
ZSB2aWV3IGhpZXJhcmNoeSBleGNsdXNpdmVseSBoZXJlLCBidXQgdGhhdCB3b24ndCB3b3JrCi0g
ICAgLy8gcmlnaHQgd2hlbiB0aGUgZmlyc3Qgdmlld0RpZE1vdmVUb1N1cGVydmlldyBjYWxsIGlz
IGRvbmUsIGFuZCB0aGlzIHdpbC4KLSAgICByZXR1cm4gW1tzZWxmIF9mcmFtZV0gd2ViVmlld107
Ci19Ci0KLS0gKFdlYkZyYW1lICopX2ZyYW1lCi17Ci0gICAgV2ViRnJhbWVWaWV3ICp3ZWJGcmFt
ZVZpZXcgPSBbc2VsZiBfd2ViX3BhcmVudFdlYkZyYW1lVmlld107Ci0gICAgcmV0dXJuIFt3ZWJG
cmFtZVZpZXcgd2ViRnJhbWVdOwotfQotCi0vLyBSZXF1aXJlZCBzbyB2aWV3IGNhbiBhY2Nlc3Mg
dGhlIHBhcnQncyBzZWxlY3Rpb24uCi0tIChXZWJGcmFtZUJyaWRnZSAqKV9icmlkZ2UKLXsKLSAg
ICByZXR1cm4gW1tzZWxmIF9mcmFtZV0gX2JyaWRnZV07Ci19Ci0KLS0gKFdlYkRhdGFTb3VyY2Ug
KilfZGF0YVNvdXJjZQotewotICAgIHJldHVybiBbW3NlbGYgX2ZyYW1lXSBkYXRhU291cmNlXTsK
LX0KLQotLSAoTlNVUkwgKilfd2ViVmlld1VSTAotewotICAgIHJldHVybiBbW1tbW3NlbGYgc3Vw
ZXJ2aWV3XSBfZnJhbWVdIGRhdGFTb3VyY2VdIHJlcXVlc3RdIFVSTF07Ci19Ci0KIEBlbmQKSW5k
ZXg6IEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBIaXN0b3J5L1dlYkhp
c3RvcnlJdGVtLm0JKHJldmlzaW9uIDE0MDI5KQorKysgSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29y
ZS9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViSFRNTFZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViSFRNTFZpZXdJbnRlcm5hbC5oPgogI2ltcG9y
dCA8V2ViS2l0L1dlYkljb25EYXRhYmFzZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdExvZ2dp
bmcuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXROU1N0cmluZ0V4dHJhcy5oPgpJbmRleDogV2Vi
Vmlldy9XZWJDbGlwVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViQ2xpcFZpZXcubQko
cmV2aXNpb24gMTQwMjkpCisrKyBXZWJWaWV3L1dlYkNsaXBWaWV3Lm0JKHdvcmtpbmcgY29weSkK
QEAgLTQxLDYgKzQxLDEwIEBACiAKIC8vIEZJWE1FOiBDaGFuZ2UgdGVybWlub2xvZ3kgZnJvbSAi
YWRkaXRpb25hbCBjbGlwIiB0byAiZm9jdXMgcmluZyBjbGlwIi4KIAorQGludGVyZmFjZSBOU1Zp
ZXcgKFdlYlZpZXdNZXRob2QpCistIChXZWJWaWV3ICopX3dlYlZpZXc7CitAZW5kCisKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJDbGlwVmlldwogCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJh
bWUKSW5kZXg6IFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiAxNDAyOSkKKysrIFdlYlZpZXcv
V2ViSFRNTFZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw4IEBACiAg
ICAgQk9PTCB0cmFuc3BhcmVudEJhY2tncm91bmQ7CiAKICAgICBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXJBdE1vdXNlRG93blRpbWU7CisgICAgCisgICAgV2ViRGF0YVNvdXJjZSAqZGF0YVNv
dXJjZTsKIH0KIEBlbmQKIApAQCAtMTAxLDQgKzEwMyw2IEBACiAtICh2b2lkKV9wYXVzZU51bGxF
dmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnM7CiAtICh2b2lkKV9yZXN1bWVOdWxsRXZlbnRzRm9y
QWxsTmV0c2NhcGVQbHVnaW5zOwogLSAodm9pZClfd2lsbE1ha2VGaXJzdFJlc3BvbmRlckZvck5v
ZGVGb2N1czsKKy0gKFdlYkZyYW1lICopX2ZyYW1lOwogQGVuZAorCkluZGV4OiBXZWJWaWV3L1dl
YkltYWdlVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViSW1hZ2VWaWV3LmgJKHJldmlz
aW9uIDE0MDI5KQorKysgV2ViVmlldy9XZWJJbWFnZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAt
MzcsNiArMzcsNyBAQAogICAgIEJPT0wgaWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHM7CiAgICAg
TlNFdmVudCAqbW91c2VEb3duRXZlbnQ7CiAgICAgdW5zaWduZWQgaW50IGRyYWdTb3VyY2VBY3Rp
b25NYXNrOworICAgIFdlYkRhdGFTb3VyY2UgKl9kYXRhU291cmNlOwogfQogKyAoTlNBcnJheSAq
KXN1cHBvcnRlZE1JTUVUeXBlczsKIEBlbmQKSW5kZXg6IFdlYlZpZXcvV2ViSW1hZ2VWaWV3Lm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViVmlldy9XZWJJbWFnZVZpZXcubQkocmV2aXNpb24gMTQwMjkpCisr
KyBXZWJWaWV3L1dlYkltYWdlVmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBA
CiAKICNpbXBvcnQgPFdlYktpdC9XZWJBcmNoaXZlci5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9XZWJEYXRhU291cmNlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRv
Y3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViSW1hZ2VSZW5kZXJlci5oPgpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8V2ViS2l0
L1dlYk5TT2JqZWN0RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNWaWV3RXh0cmFzLmg+CisjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWVWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdJbnRlcm5h
bC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlVJRGVsZWdhdGVQcml2YXRlLmg+CiAKQEAgLTExMSw3
ICsxMTIsNyBAQAogICAgICAgICBbc2VsZiBsYXlvdXRdOwogICAgIH0KICAgICAKLSAgICBpZiAo
W1tzZWxmIF93ZWJWaWV3XSBkcmF3c0JhY2tncm91bmRdKSB7CisgICAgaWYgKFtbX2RhdGFTb3Vy
Y2UgX3dlYlZpZXddIGRyYXdzQmFja2dyb3VuZF0pIHsKICAgICAgICAgW1tOU0NvbG9yIHdoaXRl
Q29sb3JdIHNldF07CiAgICAgICAgIE5TUmVjdEZpbGwocmVjdCk7CiAgICAgfQpAQCAtMTI5LDcg
KzEzMCw3IEBACiAgICAgLy8gYXMgbGFyZ2UgYXMgdGhlIGltYWdlLi4gT3RoZXJ3aXNlIHdlJ3Jl
IHByaW50aW5nLCBhbmQgd2Ugd2FudCB0aGUgaW1hZ2UgdG8gCiAgICAgLy8gZmlsbCB0aGUgdmll
dyBzbyB0aGF0IHRoZSBwcmludGVkIHNpemUgZG9lc24ndCBkZXBlbmQgb24gdGhlIHdpbmRvdyBz
aXplLgogICAgIGlmIChbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHREcmF3aW5nVG9T
Y3JlZW5dKSB7Ci0gICAgICAgIE5TU2l6ZSBjbGlwVmlld1NpemUgPSBbW3NlbGYgX3dlYl9zdXBl
cnZpZXdPZkNsYXNzOltOU0NsaXBWaWV3IGNsYXNzXV0gZnJhbWVdLnNpemU7CisgICAgICAgIE5T
U2l6ZSBjbGlwVmlld1NpemUgPSBbW1tbX2RhdGFTb3VyY2Ugd2ViRnJhbWVdIGZyYW1lVmlld10g
X2NvbnRlbnRWaWV3XSBmcmFtZV0uc2l6ZTsKICAgICAgICAgc2l6ZS53aWR0aCA9IE1BWChzaXpl
LndpZHRoLCBjbGlwVmlld1NpemUud2lkdGgpOwogICAgICAgICBzaXplLmhlaWdodCA9IE1BWChz
aXplLmhlaWdodCwgY2xpcFZpZXdTaXplLmhlaWdodCk7CiAgICAgfQpAQCAtMTUyLDYgKzE1Myw3
IEBACiB7CiAgICAgQVNTRVJUKCFyZXApOwogICAgIHJlcCA9IFtbZGF0YVNvdXJjZSByZXByZXNl
bnRhdGlvbl0gcmV0YWluXTsKKyAgICBfZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7CiB9CiAKIC0g
KHZvaWQpZGF0YVNvdXJjZVVwZGF0ZWQ6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCkBAIC0x
ODgsNyArMTkwLDcgQEAKIAogLSAoV2ViVmlldyAqKXdlYlZpZXcKIHsKLSAgICByZXR1cm4gW3Nl
bGYgX3dlYl9wYXJlbnRXZWJWaWV3XTsKKyAgICByZXR1cm4gW19kYXRhU291cmNlIF93ZWJWaWV3
XTsKIH0KIAogLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOihpZCA8TlNWYWxpZGF0
ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbQpAQCAtMjExLDcgKzIxMyw3IEBACiAKIC0gKEJPT0wp
d3JpdGVJbWFnZVRvUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZCB0eXBlczoo
TlNBcnJheSAqKXR5cGVzCiB7Ci0gICAgV2ViRnJhbWUgKmZyYW1lID0gW1tzZWxmIF93ZWJfcGFy
ZW50V2ViRnJhbWVWaWV3XSB3ZWJGcmFtZV07CisgICAgV2ViRnJhbWUgKmZyYW1lID0gW19kYXRh
U291cmNlIHdlYkZyYW1lXTsKICAgICBpZiAoW3NlbGYgaGF2ZUNvbXBsZXRlSW1hZ2VdKSB7CiAg
ICAgICAgIFtwYXN0ZWJvYXJkIF93ZWJfd3JpdGVJbWFnZTpbcmVwIGltYWdlXSBlbGVtZW50Om5p
bCBVUkw6W3JlcCBVUkxdIHRpdGxlOm5pbCBhcmNoaXZlOltXZWJBcmNoaXZlciBhcmNoaXZlRnJh
bWU6ZnJhbWVdIHR5cGVzOnR5cGVzXTsKICAgICAgICAgcmV0dXJuIFlFUzsKQEAgLTIyMiw3ICsy
MjQsNyBAQAogCiAtICh2b2lkKWNvcHk6KGlkKXNlbmRlcgogewotICAgIFdlYkZyYW1lICpmcmFt
ZSA9IFtbc2VsZiBfd2ViX3BhcmVudFdlYkZyYW1lVmlld10gd2ViRnJhbWVdOworICAgIFdlYkZy
YW1lICpmcmFtZSA9IFtfZGF0YVNvdXJjZSB3ZWJGcmFtZV07CiAgICAgTlNBcnJheSAqdHlwZXMg
PSBbTlNQYXN0ZWJvYXJkIF93ZWJfd3JpdGFibGVUeXBlc0ZvckltYWdlSW5jbHVkaW5nQXJjaGl2
ZTooW1dlYkFyY2hpdmVyIGFyY2hpdmVGcmFtZTpmcmFtZV0gIT0gbmlsKV07CiAgICAgTlNQYXN0
ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF07CiAg
ICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07CkBAIC0yMzcsNyAr
MjM5LDcgQEAKIAogLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9p
bnQKIHsKLSAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgX3dlYl9wYXJlbnRXZWJGcmFtZVZp
ZXddIHdlYkZyYW1lXTsKKyAgICBXZWJGcmFtZSAqZnJhbWUgPSBbX2RhdGFTb3VyY2Ugd2ViRnJh
bWVdOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgCiAgICAgcmV0dXJuIFtOU0RpY3Rpb25hcnkg
ZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKQEAgLTI3OSw3ICsyODEsNyBAQAogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBfd2Vi
X3BhcmVudFdlYkZyYW1lVmlld10gd2ViRnJhbWVdOworICAgIFdlYkZyYW1lICpmcmFtZSA9IFtf
ZGF0YVNvdXJjZSB3ZWJGcmFtZV07CiAgICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05T
UGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXTsKICAgICBpZCBzb3Vy
Y2UgPSBbcGFzdGVib2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZTpbcmVwIGltYWdl
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50Om5pbApJbmRleDogV2ViVmlldy9XZWJWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViVmlldy9X
ZWJWaWV3Lm0JKHJldmlzaW9uIDE0MDI5KQorKysgV2ViVmlldy9XZWJWaWV3Lm0JKHdvcmtpbmcg
Y29weSkKQEAgLTIyNjMsOCArMjI2Myw3IEBAIHN0YXRpYyBXZWJGcmFtZSAqaW5jcmVtZW50RnJh
bWUoV2ViRnJhbWUKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KFtzZWFyY2hWaWV3IHNlYXJjaEZvcjpzdHJpbmcgZGlyZWN0aW9uOmZvcndhcmQgY2FzZVNlbnNp
dGl2ZTpjYXNlRmxhZyB3cmFwOk5PXSkgewotICAgICAgICAgICAgICAgIFdlYkZyYW1lICpuZXdT
ZWxlY3RlZEZyYW1lID0gWyhXZWJGcmFtZVZpZXcgKilbc2VhcmNoVmlldyBfd2ViX3N1cGVydmll
d09mQ2xhc3M6W1dlYkZyYW1lVmlldyBjbGFzc11dIHdlYkZyYW1lXTsKLSAgICAgICAgICAgICAg
ICBpZiAobmV3U2VsZWN0ZWRGcmFtZSAhPSBzdGFydEZyYW1lKQorICAgICAgICAgICAgICAgIGlm
IChmcmFtZSAhPSBzdGFydEZyYW1lKQogICAgICAgICAgICAgICAgICAgICBbc3RhcnRGcmFtZSBf
Y2xlYXJTZWxlY3Rpb25dOwogICAgICAgICAgICAgICAgIFtbc2VsZiB3aW5kb3ddIG1ha2VGaXJz
dFJlc3BvbmRlcjpzZWFyY2hWaWV3XTsKICAgICAgICAgICAgICAgICByZXR1cm4gWUVTOwpAQCAt
MzA5MywxNSArMzA5MiwyMCBAQCBGT1JfRUFDSF9SRVNQT05ERVJfU0VMRUNUT1IoRk9SV0FSRCkK
IAogQGVuZAogCitzdGF0aWMgV2ViRnJhbWVWaWV3ICpjb250YWluaW5nRnJhbWVWaWV3KE5TVmll
dyAqdmlldykKK3sKKyAgICB3aGlsZSAodmlldyAmJiAhW3ZpZXcgaXNLaW5kT2ZDbGFzczpbV2Vi
RnJhbWVWaWV3IGNsYXNzXV0pCisgICAgICAgIHZpZXcgPSBbdmlldyBzdXBlcnZpZXddOworICAg
IHJldHVybiAoV2ViRnJhbWVWaWV3ICopdmlldzsgICAgCit9CisKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJWaWV3IChXZWJGaWxlSW50ZXJuYWwpCiAKIC0gKFdlYkZyYW1lICopX2ZvY3VzZWRGcmFtZQog
ewogICAgIE5TUmVzcG9uZGVyICpyZXNwID0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJd
OwogICAgIGlmIChyZXNwICYmIFtyZXNwIGlzS2luZE9mQ2xhc3M6W05TVmlldyBjbGFzc11dICYm
IFsoTlNWaWV3ICopcmVzcCBpc0Rlc2NlbmRhbnRPZjpbW3NlbGYgbWFpbkZyYW1lXSBmcmFtZVZp
ZXddXSkgewotICAgICAgICBXZWJGcmFtZVZpZXcgKmZyYW1lVmlldyA9IFtyZXNwIGlzS2luZE9m
Q2xhc3M6W1dlYkZyYW1lVmlldyBjbGFzc11dIAotICAgICAgICA/IChXZWJGcmFtZVZpZXcgKily
ZXNwIAotICAgICAgICA6IChXZWJGcmFtZVZpZXcgKilbKE5TVmlldyAqKXJlc3AgX3dlYl9zdXBl
cnZpZXdPZkNsYXNzOltXZWJGcmFtZVZpZXcgY2xhc3NdXTsKKyAgICAgICAgV2ViRnJhbWVWaWV3
ICpmcmFtZVZpZXcgPSBjb250YWluaW5nRnJhbWVWaWV3KChOU1ZpZXcgKilyZXNwKTsKICAgICAg
ICAgQVNTRVJUKGZyYW1lVmlldyAhPSBuaWwpOwogICAgICAgICByZXR1cm4gW2ZyYW1lVmlldyB3
ZWJGcmFtZV07CiAgICAgfQpAQCAtMzEzMiw3ICszMTM2LDExIEBAIEZPUl9FQUNIX1JFU1BPTkRF
Ul9TRUxFQ1RPUihGT1JXQVJEKQogLSAoV2ViRnJhbWVWaWV3ICopX2ZyYW1lVmlld0F0V2luZG93
UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKICAgICBOU1ZpZXcgKnZpZXcgPSBbc2VsZiBoaXRUZXN0
Oltbc2VsZiBzdXBlcnZpZXddIGNvbnZlcnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdXTsKLSAg
ICByZXR1cm4gKFdlYkZyYW1lVmlldyAqKVt2aWV3IF93ZWJfc3VwZXJ2aWV3T2ZDbGFzczpbV2Vi
RnJhbWVWaWV3IGNsYXNzXSBzdG9wcGluZ0F0Q2xhc3M6W3NlbGYgY2xhc3NdXTsKKyAgICBpZiAo
IVt2aWV3IGlzRGVzY2VuZGFudE9mOltbc2VsZiBtYWluRnJhbWVdIGZyYW1lVmlld11dKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIFdlYkZyYW1lVmlldyAqZnJhbWVWaWV3ID0gY29udGFpbmlu
Z0ZyYW1lVmlldyh2aWV3KTsKKyAgICBBU1NFUlQoZnJhbWVWaWV3KTsKKyAgICByZXR1cm4gZnJh
bWVWaWV3OwogfQogCiAtIChXZWJGcmFtZUJyaWRnZSAqKV9icmlkZ2VBdFBvaW50OihOU1BvaW50
KXBvaW50CkluZGV4OiBXZWJWaWV3L1dlYlJlbmRlck5vZGUubQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJW
aWV3L1dlYlJlbmRlck5vZGUubQkocmV2aXNpb24gMTQwMjkpCisrKyBXZWJWaWV3L1dlYlJlbmRl
ck5vZGUubQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOCBAQAogCiAjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWVCcmlkZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVZpZXcuaD4KLSNp
bXBvcnQgPFdlYktpdC9XZWJIVE1MVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJI
VE1MVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViTlNWaWV3RXh0cmFzLmg+CiAKIEBpbnRlcmZhY2UgV2ViS2l0UmVuZGVy
VHJlZUNvcGllciA6IE5TT2JqZWN0IDxXZWJDb3JlUmVuZGVyVHJlZUNvcGllcj4KQEAgLTgwLDgg
KzgxLDcgQEAKICAgICB9CiAgICAgCiAgICAgY29waWVyID0gW1tXZWJLaXRSZW5kZXJUcmVlQ29w
aWVyIGFsbG9jXSBpbml0XTsKLSAgICBXZWJIVE1MVmlldyAqaHRtbFZpZXcgPSAoV2ViSFRNTFZp
ZXcgKilbdmlldyBkb2N1bWVudFZpZXddOwotICAgIHNlbGYgPSBbW1todG1sVmlldyBfYnJpZGdl
XSBjb3B5UmVuZGVyVHJlZTpjb3BpZXJdIHJldGFpbl07CisgICAgc2VsZiA9IFtbW1tbdmlldyB3
ZWJGcmFtZV0gZGF0YVNvdXJjZV0gX2JyaWRnZV0gY29weVJlbmRlclRyZWU6Y29waWVyXSByZXRh
aW5dOwogICAgIFtjb3BpZXIgcmVsZWFzZV07CiAgICAgCiAgICAgcmV0dXJuIHNlbGY7CkluZGV4
OiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViRnJhbWVW
aWV3Lm0JKHJldmlzaW9uIDE0MDI5KQorKysgV2ViVmlldy9XZWJGcmFtZVZpZXcubQkod29ya2lu
ZyBjb3B5KQpAQCAtMTI4LDcgKzEyOCw3IEBAIGVudW0gewogICAgIC8vIGEgYm9yZGVyIChsZWZ0
LCByaWdodCwgdG9wIG9yIGJvdHRvbSkgaWYgdGhlIGZyYW1lIGVkZ2UgYWJ1dHRzIHRoZSB3aW5k
b3cgZnJhbWUuCiAgICAgTlNWaWV3ICpkb2NWID0gW3NlbGYgZG9jdW1lbnRWaWV3XTsKICAgICBp
ZiAoW2RvY1YgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKLSAgICAgICAgaWYg
KFtbKFdlYkhUTUxWaWV3ICopZG9jViBfYnJpZGdlXSBpc0ZyYW1lU2V0XSkKKyAgICAgICAgaWYg
KFtbX3ByaXZhdGUtPndlYkZyYW1lIF9icmlkZ2VdIGlzRnJhbWVTZXRdKQogICAgICAgICAgICAg
cmV0dXJuIE5POwogICAgIHJldHVybiBZRVM7CiB9CkBAIC0xNDYsNyArMTQ2LDcgQEAgZW51bSB7
CiAKIC0gKFdlYkNvcmVGcmFtZUJyaWRnZSAqKSB3ZWJDb3JlQnJpZGdlCiB7Ci0gICAgcmV0dXJu
IFtzZWxmIF9icmlkZ2VdOworICAgIHJldHVybiBbX3ByaXZhdGUtPndlYkZyYW1lIF9icmlkZ2Vd
OwogfQogCiBAZW5kCkluZGV4OiBXZWJWaWV3L1dlYlBERlZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJWaWV3L1dlYlBERlZpZXcuaAkocmV2aXNpb24gMTQwMjkpCisrKyBXZWJWaWV3L1dlYlBERlZp
ZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTEgKzM5LDEyIEBACiBAaW50ZXJmYWNlIFdlYlBE
RlZpZXcgOiBOU1ZpZXcgPFdlYkRvY3VtZW50VmlldywgV2ViRG9jdW1lbnRTZWFyY2hpbmcsIFdl
YkRvY3VtZW50U2VsZWN0aW9uLCBXZWJEb2N1bWVudEVsZW1lbnQsIF9XZWJEb2N1bWVudFZpZXdT
dGF0ZSwgX1dlYkRvY3VtZW50VGV4dFNpemluZz4KIHsKICAgICBQREZWaWV3ICpQREZTdWJ2aWV3
OwotICAgIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2U7CiAgICAgTlNTdHJpbmcgKnBhdGg7CiAg
ICAgaWQgdHJhY2tlZEZpcnN0UmVzcG9uZGVyOwogICAgIEJPT0wgd3JpdHRlbjsKICAgICBQREZW
aWV3ICpQREZTdWJ2aWV3UHJveHk7CitAcHVibGljCisgICAgV2ViRGF0YVNvdXJjZSAqZGF0YVNv
dXJjZTsKIH0KIAogKyAoTlNBcnJheSAqKXN1cHBvcnRlZE1JTUVUeXBlczsKSW5kZXg6IFdlYlZp
ZXcvV2ViSFRNTFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYkhUTUxWaWV3Lm0JKHJl
dmlzaW9uIDE0MDI5KQorKysgV2ViVmlldy9XZWJIVE1MVmlldy5tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTgsNiArMjU4LDcgQEAgdm9pZCAqX05TU29mdExpbmtpbmdHZXRGcmFtZXdvcmtGdW5jUHRy
KAogICAgIFt0b29sVGlwIHJlbGVhc2VdOwogICAgIFtjb21wQ29udHJvbGxlciByZWxlYXNlXTsK
ICAgICBbZmlyc3RSZXNwb25kZXJBdE1vdXNlRG93blRpbWUgcmVsZWFzZV07CisgICAgW2RhdGFT
b3VyY2UgcmVsZWFzZV07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0yODIsNiArMjgz
LDI2IEBAIHZvaWQgKl9OU1NvZnRMaW5raW5nR2V0RnJhbWV3b3JrRnVuY1B0cigKICAgICByZXR1
cm4gTk87CiB9CiAKKy0gKFdlYkRhdGFTb3VyY2UgKilfZGF0YVNvdXJjZQoreworICAgIHJldHVy
biBfcHJpdmF0ZS0+ZGF0YVNvdXJjZTsKK30KKworLSAoV2ViRnJhbWVCcmlkZ2UgKilfYnJpZGdl
Cit7CisgICAgcmV0dXJuIFtfcHJpdmF0ZS0+ZGF0YVNvdXJjZSBfYnJpZGdlXTsKK30KKworLSAo
V2ViVmlldyAqKV93ZWJWaWV3Cit7CisgICAgcmV0dXJuIFtfcHJpdmF0ZS0+ZGF0YVNvdXJjZSBf
d2ViVmlld107Cit9CisKKy0gKFdlYkZyYW1lVmlldyAqKV9mcmFtZVZpZXcKK3sKKyAgICByZXR1
cm4gW1tfcHJpdmF0ZS0+ZGF0YVNvdXJjZSB3ZWJGcmFtZV0gZnJhbWVWaWV3XTsKK30KKwogLSAo
RE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aFBhdGhzOihOU0FycmF5
ICopcGF0aHMKIHsKICAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudDsKQEAgLTE2NjIs
NiArMTY4MywxMSBAQCBzdGF0aWMgV2ViSFRNTFZpZXcgKmxhc3RIaXRWaWV3ID0gbmlsOwogICAg
IFticmlkZ2UgZGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxdOwogfQogCistIChCT09MKV93ZWJf
Zmlyc3RSZXNwb25kZXJDYXVzZXNGb2N1c0Rpc3BsYXkKK3sKKyAgICByZXR1cm4gW3NlbGYgX3dl
Yl9maXJzdFJlc3BvbmRlcklzU2VsZk9yRGVzY2VuZGFudFZpZXddIHx8IFtbc2VsZiB3aW5kb3dd
IGZpcnN0UmVzcG9uZGVyXSA9PSBbc2VsZiBfZnJhbWVWaWV3XTsKK30KKwogLSAodm9pZClfdXBk
YXRlRm9jdXNTdGF0ZQogewogICAgIC8vIFRoaXMgbWV0aG9kIGRvZXMgdGhlIGpvYiBvZiB1cGRh
dGluZyB0aGUgdmlldyBiYXNlZCBvbiB0aGUgdmlldydzIGZpcnN0UmVzcG9uZGVyLW5lc3MgYW5k
CkBAIC0zMDg1LDcgKzMxMTEsNyBAQCBkb25lOgogICAgIF9wcml2YXRlLT53aWxsQmVjb21lRmly
c3RSZXNwb25kZXJGb3JOb2RlRm9jdXMgPSBOTzsKICAgICBpZiAodmlldykKICAgICAgICAgW1tz
ZWxmIHdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVyOnZpZXddOwotICAgIFtbW3NlbGYgX3dlYl9w
YXJlbnRXZWJGcmFtZVZpZXddIHdlYkZyYW1lXSBfY2xlYXJTZWxlY3Rpb25Jbk90aGVyRnJhbWVz
XTsKKyAgICBbW3NlbGYgX2ZyYW1lXSBfY2xlYXJTZWxlY3Rpb25Jbk90aGVyRnJhbWVzXTsKICAg
ICBbc2VsZiBfdXBkYXRlRm9jdXNTdGF0ZV07CiAgICAgW3NlbGYgX3VwZGF0ZUZvbnRQYW5lbF07
CiAgICAgX3ByaXZhdGUtPnN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSA9IFlFUzsKQEAgLTMxMTgs
NiArMzE0NCw4IEBAIGRvbmU6CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLSAodm9p
ZClzZXREYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0YVNvdXJjZSAKIHsKKyAgICBBU1NF
UlQoIV9wcml2YXRlLT5kYXRhU291cmNlKTsKKyAgICBfcHJpdmF0ZS0+ZGF0YVNvdXJjZSA9IFtk
YXRhU291cmNlIHJldGFpbl07CiB9CiAKIC0gKHZvaWQpZGF0YVNvdXJjZVVwZGF0ZWQ6KFdlYkRh
dGFTb3VyY2UgKilkYXRhU291cmNlCkBAIC0zNjY1LDcgKzM2OTMsNyBAQCBkb25lOgogCiAtICh2
b2lkKXBhZ2VVcDooaWQpc2VuZGVyCiB7Ci0gICAgV2ViRnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBb
c2VsZiBfd2ViX3BhcmVudFdlYkZyYW1lVmlld107CisgICAgV2ViRnJhbWVWaWV3ICpmcmFtZVZp
ZXcgPSBbc2VsZiBfZnJhbWVWaWV3XTsKICAgICBpZiAoZnJhbWVWaWV3ID09IG5pbCkKICAgICAg
ICAgcmV0dXJuOwogICAgIFtzZWxmIF9hbHRlckN1cnJlbnRTZWxlY3Rpb246V2ViU2VsZWN0QnlN
b3ZpbmcgdmVydGljYWxEaXN0YW5jZTotW2ZyYW1lVmlldyBfdmVydGljYWxQYWdlU2Nyb2xsRGlz
dGFuY2VdXTsKQEAgLTM2NzMsNyArMzcwMSw3IEBAIGRvbmU6CiAKIC0gKHZvaWQpcGFnZURvd246
KGlkKXNlbmRlcgogewotICAgIFdlYkZyYW1lVmlldyAqZnJhbWVWaWV3ID0gW3NlbGYgX3dlYl9w
YXJlbnRXZWJGcmFtZVZpZXddOworICAgIFdlYkZyYW1lVmlldyAqZnJhbWVWaWV3ID0gW3NlbGYg
X2ZyYW1lVmlld107CiAgICAgaWYgKGZyYW1lVmlldyA9PSBuaWwpCiAgICAgICAgIHJldHVybjsK
ICAgICBbc2VsZiBfYWx0ZXJDdXJyZW50U2VsZWN0aW9uOldlYlNlbGVjdEJ5TW92aW5nIHZlcnRp
Y2FsRGlzdGFuY2U6W2ZyYW1lVmlldyBfdmVydGljYWxQYWdlU2Nyb2xsRGlzdGFuY2VdXTsKQEAg
LTM2ODEsNyArMzcwOSw3IEBAIGRvbmU6CiAKIC0gKHZvaWQpcGFnZVVwQW5kTW9kaWZ5U2VsZWN0
aW9uOihpZClzZW5kZXIKIHsKLSAgICBXZWJGcmFtZVZpZXcgKmZyYW1lVmlldyA9IFtzZWxmIF93
ZWJfcGFyZW50V2ViRnJhbWVWaWV3XTsKKyAgICBXZWJGcmFtZVZpZXcgKmZyYW1lVmlldyA9IFtz
ZWxmIF9mcmFtZVZpZXddOwogICAgIGlmIChmcmFtZVZpZXcgPT0gbmlsKQogICAgICAgICByZXR1
cm47CiAgICAgW3NlbGYgX2FsdGVyQ3VycmVudFNlbGVjdGlvbjpXZWJTZWxlY3RCeUV4dGVuZGlu
ZyB2ZXJ0aWNhbERpc3RhbmNlOi1bZnJhbWVWaWV3IF92ZXJ0aWNhbFBhZ2VTY3JvbGxEaXN0YW5j
ZV1dOwpAQCAtMzY4OSw3ICszNzE3LDcgQEAgZG9uZToKIAogLSAodm9pZClwYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbjooaWQpc2VuZGVyCiB7Ci0gICAgV2ViRnJhbWVWaWV3ICpmcmFtZVZpZXcg
PSBbc2VsZiBfd2ViX3BhcmVudFdlYkZyYW1lVmlld107CisgICAgV2ViRnJhbWVWaWV3ICpmcmFt
ZVZpZXcgPSBbc2VsZiBfZnJhbWVWaWV3XTsKICAgICBpZiAoZnJhbWVWaWV3ID09IG5pbCkKICAg
ICAgICAgcmV0dXJuOwogICAgIFtzZWxmIF9hbHRlckN1cnJlbnRTZWxlY3Rpb246V2ViU2VsZWN0
QnlFeHRlbmRpbmcgdmVydGljYWxEaXN0YW5jZTpbZnJhbWVWaWV3IF92ZXJ0aWNhbFBhZ2VTY3Jv
bGxEaXN0YW5jZV1dOwpAQCAtNTA4Niw2ICs1MTE0LDExIEBAIHN0YXRpYyBET01SYW5nZSAqdW5p
b25ET01SYW5nZXMoRE9NUmFuZ2UKICAgICBfcHJpdmF0ZS0+d2lsbEJlY29tZUZpcnN0UmVzcG9u
ZGVyRm9yTm9kZUZvY3VzID0gWUVTOwogfQogCistIChXZWJGcmFtZSAqKV9mcmFtZQoreworICAg
IHJldHVybiBbX3ByaXZhdGUtPmRhdGFTb3VyY2Ugd2ViRnJhbWVdOworfQorCiBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJIVE1MVmlldyAoV2ViTlNUZXh0SW5wdXRTdXBwb3J0KQpJbmRleDog
V2ViVmlldy9XZWJQREZWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViVmlldy9XZWJQREZWaWV3Lm0J
KHJldmlzaW9uIDE0MDI5KQorKysgV2ViVmlldy9XZWJQREZWaWV3Lm0JKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Bc3NlcnRp
b25zLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViRGF0YVNvdXJjZS5oPgorI2ltcG9ydCA8V2ViS2l0
L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRG9jdW1lbnRJbnRl
cm5hbC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRvY3VtZW50UHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dlYkZyYW1lLmg+CkBAIC0zNjQsNyArMzY0LDcgQEAgc3RhdGljIHZvaWQgYXBwbGlj
YXRpb25JbmZvRm9yTUlNRVR5cGUoTgogLSAodm9pZClfYXBwbHlQREZEZWZhdWx0cwogewogICAg
IC8vIFNldCB1cCBkZWZhdWx0IHZpZXdpbmcgcGFyYW1zCi0gICAgV2ViUHJlZmVyZW5jZXMgKnBy
ZWZzID0gW1tzZWxmIF93ZWJWaWV3XSBwcmVmZXJlbmNlc107CisgICAgV2ViUHJlZmVyZW5jZXMg
KnByZWZzID0gW1tkYXRhU291cmNlIF93ZWJWaWV3XSBwcmVmZXJlbmNlc107CiAgICAgZmxvYXQg
c2NhbGVGYWN0b3IgPSBbcHJlZnMgUERGU2NhbGVGYWN0b3JdOwogICAgIGlmIChzY2FsZUZhY3Rv
ciA9PSAwKSB7CiAgICAgICAgIFtQREZTdWJ2aWV3IHNldEF1dG9TY2FsZXM6WUVTXTsKQEAgLTQw
NSw3ICs0MDUsNyBAQCBzdGF0aWMgdm9pZCBhcHBsaWNhdGlvbkluZm9Gb3JNSU1FVHlwZShOCiAg
ICAgLy8gVGhpcyBuZXh0IGNsYXVzZSBpcyB0aGUgZW50aXJlIHB1cnBvc2Ugb2YgX3RyYWNrRmly
c3RSZXNwb25kZXIuIEluIG90aGVyIFdlYkRvY3VtZW50CiAgICAgLy8gdmlldyBjbGFzc2VzIHRo
aXMgaXMgZG9uZSBpbiBhIHJlc2lnbkZpcnN0UmVzcG9uZGVyIG92ZXJyaWRlLCBidXQgaW4gdGhp
cyBjYXNlIHRoZQogICAgIC8vIGZpcnN0IHJlc3BvbmRlciB2aWV3IGlzIGEgUERGS2l0IGNsYXNz
IHRoYXQgd2UgY2FuJ3Qgc3ViY2xhc3MuCi0gICAgaWYgKHRyYWNrZWRGaXJzdFJlc3BvbmRlciA9
PSBbUERGU3VidmlldyBkb2N1bWVudFZpZXddICYmICFbW3NlbGYgX3dlYl9wYXJlbnRXZWJWaWV3
XSBtYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbl0pCisgICAgaWYgKHRyYWNrZWRGaXJzdFJlc3Bv
bmRlciA9PSBbUERGU3VidmlldyBkb2N1bWVudFZpZXddICYmICFbW2RhdGFTb3VyY2UgX3dlYlZp
ZXddIG1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uXSkKICAgICAgICAgW3NlbGYgZGVzZWxlY3RB
bGxdOwogCiAgICAgCkBAIC05MjksNyArOTI5LDcgQEAgc3RhdGljIEJPT0wgUERGU2VsZWN0aW9u
c0FyZUVxdWFsKFBERlNlbAogICAgIFBERlZpZXcgKlBERlN1YnZpZXcgPSBbdmlldyBQREZTdWJ2
aWV3XTsKICAgICBbaW52b2NhdGlvbiBpbnZva2VXaXRoVGFyZ2V0OlBERlN1YnZpZXddOwogCi0g
ICAgV2ViUHJlZmVyZW5jZXMgKnByZWZzID0gW1t2aWV3IF93ZWJWaWV3XSBwcmVmZXJlbmNlc107
CisgICAgV2ViUHJlZmVyZW5jZXMgKnByZWZzID0gW1t2aWV3LT5kYXRhU291cmNlIF93ZWJWaWV3
XSBwcmVmZXJlbmNlc107CiAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBbUERGU3VidmlldyBhdXRv
U2NhbGVzXSA/IDAuMCA6IFtQREZTdWJ2aWV3IHNjYWxlRmFjdG9yXTsKICAgICBbcHJlZnMgc2V0
UERGU2NhbGVGYWN0b3I6c2NhbGVGYWN0b3JdOwogICAgIFtwcmVmcyBzZXRQREZEaXNwbGF5TW9k
ZTpbUERGU3VidmlldyBkaXNwbGF5TW9kZV1dOwpJbmRleDogV2ViVmlldy9XZWJUZXh0Vmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViVGV4dFZpZXcuaAkocmV2aXNpb24gMTQwMjkpCisr
KyBXZWJWaWV3L1dlYlRleHRWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
IHsKICAgICBmbG9hdCBfdGV4dFNpemVNdWx0aXBsaWVyOwogICAgIFdlYkNvcmVUZXh0RGVjb2Rl
ciAqX2RlY29kZXI7CisgICAgV2ViRGF0YVNvdXJjZSAqX2RhdGFTb3VyY2U7CiB9CiAKICsgKE5T
QXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXM7CkluZGV4OiBXZWJWaWV3L1dlYlRleHRWaWV3Lm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViVmlldy9XZWJUZXh0Vmlldy5tCShyZXZpc2lvbiAxNDAyOSkKKysr
IFdlYlZpZXcvV2ViVGV4dFZpZXcubQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDE0ICsxMTUsMTQg
QEAKIC0gKGZsb2F0KV90ZXh0U2l6ZU11bHRpcGxpZXJGcm9tV2ViVmlldwogewogICAgIC8vIE5v
dGUgdGhhdCB3ZSBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgdGhlIHN1YnZpZXcgb2YgYSBXZWJW
aWV3IGF0IGFueSBnaXZlbiB0aW1lLgotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2VsZiBfd2Vi
X3BhcmVudFdlYlZpZXddOworICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX2RhdGFTb3VyY2UgX3dl
YlZpZXddOwogICAgIHJldHVybiB3ZWJWaWV3ID8gW3dlYlZpZXcgdGV4dFNpemVNdWx0aXBsaWVy
XSA6IDEuMDsKIH0KIAogLSAoV2ViUHJlZmVyZW5jZXMgKilfcHJlZmVyZW5jZXMKIHsKICAgICAv
LyBIYW5kbGUgbmlsIHJlc3VsdCBiZWNhdXNlIHdlIG1pZ2h0IG5vdCBiZSBpbiBhIFdlYlZpZXcg
YXQgYW55IGdpdmVuIHRpbWUuCi0gICAgV2ViUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gW1tz
ZWxmIF93ZWJfcGFyZW50V2ViVmlld10gcHJlZmVyZW5jZXNdOworICAgIFdlYlByZWZlcmVuY2Vz
ICpwcmVmZXJlbmNlcyA9IFtbX2RhdGFTb3VyY2UgX3dlYlZpZXddIHByZWZlcmVuY2VzXTsKICAg
ICBpZiAocHJlZmVyZW5jZXMgPT0gbmlsKSB7CiAgICAgICAgIHByZWZlcmVuY2VzID0gW1dlYlBy
ZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdOwogICAgIH0KQEAgLTE4MywxNiArMTgzLDE2
IEBACiAKIC0gKHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UK
IHsKKyAgICBfZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7CisgICAgCiAgICAgW3NlbGYgc2V0Umlj
aFRleHQ6W1tbZGF0YVNvdXJjZSByZXNwb25zZV0gTUlNRVR5cGVdIGlzRXF1YWxUb1N0cmluZzpA
InRleHQvcnRmIl1dOwogICAgIAogICAgIGZsb2F0IG9sZE11bHRpcGxpZXIgPSBfdGV4dFNpemVN
dWx0aXBsaWVyOwogICAgIFtzZWxmIF91cGRhdGVUZXh0U2l6ZU11bHRpcGxpZXJdOwogICAgIC8v
IElmIHRoZSBtdWx0aXBsaWVyIGRpZG4ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdXBkYXRl
IHRoZSBmaXhlZC13aWR0aCBmb250LgogICAgIC8vIElmIHRoZSBtdWx0aXBsaWVyIGRpZCBjaGFu
Z2UsIHRoaXMgd2FzIGFscmVhZHkgaGFuZGxlZC4KLSAgICBpZiAoX3RleHRTaXplTXVsdGlwbGll
ciA9PSBvbGRNdWx0aXBsaWVyICYmICFbc2VsZiBpc1JpY2hUZXh0XSkgeworICAgIGlmIChfdGV4
dFNpemVNdWx0aXBsaWVyID09IG9sZE11bHRpcGxpZXIgJiYgIVtzZWxmIGlzUmljaFRleHRdKQog
ICAgICAgICBbc2VsZiBzZXRGaXhlZFdpZHRoRm9udF07Ci0gICAgfQotCiB9CiAKIC8vIFdlIGhh
bmRsZSBpbmNvbWluZyBkYXRhIGhlcmUgcmF0aGVyIHRoYW4gaW4gZGF0YVNvdXJjZVVwZGF0ZWQg
YmVjYXVzZSB3ZQpAQCAtMzA2LDcgKzMwNiw3IEBACiAKIC0gKFdlYkZyYW1lICopX3dlYkZyYW1l
CiB7Ci0gICAgcmV0dXJuIFtbc2VsZiBfd2ViX3BhcmVudFdlYkZyYW1lVmlld10gd2ViRnJhbWVd
OworICAgIHJldHVybiBbW1tfZGF0YVNvdXJjZSB3ZWJGcmFtZV0gZnJhbWVWaWV3XSB3ZWJGcmFt
ZV07CiB9CiAKIC0gKE5TRGljdGlvbmFyeSAqKV9lbGVtZW50QXRXaW5kb3dQb2ludDooTlNQb2lu
dCl3aW5kb3dQb2ludApAQCAtMzM0LDcgKzMzNCw3IEBACiAtIChCT09MKWRyYWdTZWxlY3Rpb25X
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudCBvZmZzZXQ6KE5TU2l6ZSltb3VzZU9mZnNldCBzbGlk
ZUJhY2s6KEJPT0wpc2xpZGVCYWNrCiB7CiAgICAgLy8gTWFyayB3ZWJ2aWV3IGFzIGluaXRpYXRp
bmcgdGhlIGRyYWcgc28gZHJvcHBpbmcgdGhlIHRleHQgYmFjayBvbiB0aGlzIHdlYnZpZXcgbmV2
ZXIgdHJpZXMgdG8gbmF2aWdhdGUuCi0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtzZWxmIF93ZWJf
cGFyZW50V2ViVmlld107CisgICAgV2ViVmlldyAqd2ViVmlldyA9IFtfZGF0YVNvdXJjZSBfd2Vi
Vmlld107CiAgICAgW3dlYlZpZXcgX3NldEluaXRpYXRlZERyYWc6WUVTXTsKICAgICAKICAgICAv
LyBUaGUgbGFzdCByZWZlcmVuY2UgY2FuIGJlIGxvc3QgZHVyaW5nIHRoZSBkcmFnIGlmIGl0IGNh
dXNlcyBhIG5hdmlnYXRpb24gKGUuZy4gZHJvcHBpbmcgaW4gU2FmYXJpIGxvY2F0aW9uCkBAIC0z
NTIsNyArMzUyLDcgQEAKIAogLSAoTlNNZW51ICopbWVudUZvckV2ZW50OihOU0V2ZW50ICopZXZl
bnQKIHsgICAgCi0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtzZWxmIF93ZWJfcGFyZW50V2ViVmll
d107CisgICAgV2ViVmlldyAqd2ViVmlldyA9IFtfZGF0YVNvdXJjZSBfd2ViVmlld107CiAgICAg
QVNTRVJUKHdlYlZpZXcpOwogICAgIHJldHVybiBbd2ViVmlldyBfbWVudUZvckVsZW1lbnQ6W3Nl
bGYgX2VsZW1lbnRBdFdpbmRvd1BvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93XV0gZGVmYXVs
dEl0ZW1zOm5pbF07CiB9CkBAIC0zNjgsNyArMzY4LDcgQEAKIC0gKEJPT0wpcmVzaWduRmlyc3RS
ZXNwb25kZXIKIHsKICAgICBCT09MIHJlc2lnbiA9IFtzdXBlciByZXNpZ25GaXJzdFJlc3BvbmRl
cl07Ci0gICAgaWYgKHJlc2lnbiAmJiAhW1tzZWxmIF93ZWJfcGFyZW50V2ViVmlld10gbWFpbnRh
aW5zSW5hY3RpdmVTZWxlY3Rpb25dKQorICAgIGlmIChyZXNpZ24gJiYgIVtbX2RhdGFTb3VyY2Ug
X3dlYlZpZXddIG1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uXSkKICAgICAgICAgW3NlbGYgZGVz
ZWxlY3RBbGxdOwogICAgIHJldHVybiByZXNpZ247CiB9CkBAIC0zOTAsMTIgKzM5MCwxMiBAQAog
LSAodm9pZClkcmF3UGFnZUJvcmRlcldpdGhTaXplOihOU1NpemUpYm9yZGVyU2l6ZQogewogICAg
IEFTU0VSVChOU0VxdWFsU2l6ZXMoYm9yZGVyU2l6ZSwgW1tbTlNQcmludE9wZXJhdGlvbiBjdXJy
ZW50T3BlcmF0aW9uXSBwcmludEluZm9dIHBhcGVyU2l6ZV0pKTsKLSAgICBbW3NlbGYgX3dlYl9w
YXJlbnRXZWJWaWV3XSBfZHJhd0hlYWRlckFuZEZvb3Rlcl07CisgICAgW1tfZGF0YVNvdXJjZSBf
d2ViVmlld10gX2RyYXdIZWFkZXJBbmRGb290ZXJdOwogfQogCiAtIChCT09MKWtub3dzUGFnZVJh
bmdlOihOU1JhbmdlUG9pbnRlcilyYW5nZSB7CiAgICAgLy8gV2FpdGluZyBmb3IgYmVnaW5Eb2N1
bWVudCB0byBhZGp1c3QgdGhlIHByaW50aW5nIG1hcmdpbnMgaXMgdG9vIGxhdGUuCi0gICAgW1tz
ZWxmIF93ZWJfcGFyZW50V2ViVmlld10gX2FkanVzdFByaW50aW5nTWFyZ2luc0ZvckhlYWRlckFu
ZEZvb3Rlcl07CisgICAgW1tfZGF0YVNvdXJjZSBfd2ViVmlld10gX2FkanVzdFByaW50aW5nTWFy
Z2luc0ZvckhlYWRlckFuZEZvb3Rlcl07CiAgICAgcmV0dXJuIFtzdXBlciBrbm93c1BhZ2VSYW5n
ZTpyYW5nZV07CiB9CiAK
</data>
<flag name="review"
          id="2196"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>