<?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>125230</bug_id>
          
          <creation_ts>2013-12-04 10:46:04 -0800</creation_ts>
          <short_desc>[iOS] Upstream build fixes in Source/WebKit/ios/</short_desc>
          <delta_ts>2013-12-04 11:00:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>956446</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-12-04 10:46:04 -0800</bug_when>
    <thetext>[iOS] Upstream build fixes in Source/WebKit/ios/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956452</commentid>
    <comment_count>1</comment_count>
      <attachid>218418</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-12-04 10:54:49 -0800</bug_when>
    <thetext>Created attachment 218418
[iOS] Upstream build fixes in Source/WebKit/ios/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956457</commentid>
    <comment_count>2</comment_count>
      <attachid>218418</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-04 10:57:52 -0800</bug_when>
    <thetext>Comment on attachment 218418
[iOS] Upstream build fixes in Source/WebKit/ios/

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

&gt; Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm:53
&gt; +#import &lt;wtf/CurrentTime.h&gt;
&gt; +#import &lt;wtf/Vector.h&gt;
&gt;  #import &lt;wtf/Vector.h&gt;

Duplicate Vector.h inclusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956459</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-12-04 11:00:28 -0800</bug_when>
    <thetext>Committed r160106: &lt;http://trac.webkit.org/changeset/160106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218418</attachid>
            <date>2013-12-04 10:54:49 -0800</date>
            <delta_ts>2013-12-04 10:57:52 -0800</delta_ts>
            <desc>[iOS] Upstream build fixes in Source/WebKit/ios/</desc>
            <filename>bug-125230-20131204105448.patch</filename>
            <type>text/plain</type>
            <size>40783</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggYjI1ZDJmZGYz
ZjcxZmQzMmQwNTg3MzJkODY1ZjI1ZjUxMTIyMjIxYy4uMzM3MGE3NjU4NmMyYzYxNGUzNDllNjFi
NTAzNjA1YjY2NzY0ODIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEz
LTEyLTA0ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBV
cHN0cmVhbSBidWlsZCBmaXhlcyBpbiBTb3VyY2UvV2ViS2l0L2lvcy8KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTIzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJE
ZWZhdWx0VUlLaXREZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZSB3ZWJWaWV3RGlkUmVjZWl2ZU1vYmlsZURvY1R5cGU6XSk6CisgICAgICAgICogTWlzYy9XZWJO
U1N0cmluZ0RyYXdpbmcubW06CisgICAgICAgIChuZWVkc0JpZGlMYXlvdXQpOgorICAgICAgICAo
LVtOU1N0cmluZyBfX3dlYl9kcmF3QXRQb2ludDpmb3JXaWR0aDp3aXRoRm9udDplbGxpcHNpczps
ZXR0ZXJTcGFjaW5nOmluY2x1ZGVFbW9qaTptZWFzdXJlT25seTpyZW5kZXJlZFN0cmluZ091dDpk
cmF3VW5kZXJsaW5lOl0pOgorICAgICAgICAoLVtOU1N0cmluZyBfX3dlYl9kcmF3SW5SZWN0Ondp
dGhGb250OmVsbGlwc2lzOmFsaWdubWVudDpsZXR0ZXJTcGFjaW5nOmxpbmVTcGFjaW5nOmluY2x1
ZGVFbW9qaTp0cnVuY2F0aW9uUmVjdDptZWFzdXJlT25seTpyZW5kZXJlZFN0cmluZ091dDpkcmF3
VW5kZXJsaW5lOl0pOgorICAgICAgICAqIE1pc2MvV2ViVUlLaXRTdXBwb3J0Lm1tOgorICAgICAg
ICAoV2ViS2l0SW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9T
Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpkaWRSZWNlaXZlTW9iaWxlRG9jVHlw
ZSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmZvY3VzZWRFbGVtZW50Q2hhbmdlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW06CisgICAgICAgICgtW1dl
YkZyYW1lIGNsZWFyU2VsZWN0aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNlbGVjdGlvblN0
YXRlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIGNvbGxhcHNlU2VsZWN0aW9uXSk6CisgICAgICAg
ICgtW1dlYkZyYW1lIGV4dGVuZFNlbGVjdGlvbjpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2Vs
ZWN0aW9uUmVjdHNdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2V0UmFuZ2VkU2VsZWN0aW9uV2l0
aEV4dGVudFBvaW50Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBzZXRSYW5nZWRTZWxlY3Rpb25F
eHRlbnRQb2ludDpiYXNlSXNTdGFydDphbGxvd0ZsaXBwaW5nOl0pOgorICAgICAgICAoLVtXZWJG
cmFtZSBzZXRTZWxlY3Rpb25XaXRoQmFzZVBvaW50OmV4dGVudFBvaW50OmJhc2VJc1N0YXJ0OmFs
bG93RmxpcHBpbmc6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNldFNlbGVjdGlvbldpdGhGaXJz
dFBvaW50OnNlY29uZFBvaW50Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBlbnN1cmVSYW5nZWRT
ZWxlY3Rpb25Db250YWluc0luaXRpYWxTdGFydFBvaW50OmluaXRpYWxFbmRQb2ludDpdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgYWdncmVzc2l2ZWx5RXhwYW5kU2VsZWN0aW9uVG9Xb3JkQ29udGFp
bmluZ0NhcmV0U2VsZWN0aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIGV4cGFuZFNlbGVjdGlv
blRvU2VudGVuY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rp
b246XSk6CisgICAgICAgICgtW1dlYkZyYW1lIG1vdmVTZWxlY3Rpb25Ub1N0YXJ0XSk6CisgICAg
ICAgICgtW1dlYkZyYW1lIG1vdmVTZWxlY3Rpb25Ub0VuZF0pOgorICAgICAgICAoLVtXZWJGcmFt
ZSBtb3ZlU2VsZWN0aW9uVG9Qb2ludDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2V0U2VsZWN0
aW9uR3JhbnVsYXJpdHk6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNtYXJ0RXh0ZW5kUmFuZ2Vk
U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBwcmV2aW91c1VucGVydHVyYmVkRGlj
dGF0aW9uUmVzdWx0Qm91bmRhcnlGcm9tUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYkZyYW1l
IG5leHRVbnBlcnR1cmJlZERpY3RhdGlvblJlc3VsdEJvdW5kYXJ5RnJvbVBvc2l0aW9uOl0pOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbToKKyAgICAg
ICAgKFdlYkluc3BlY3RvckNsaWVudDo6V2ViSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3RvckNsaWVudDo6ZGlkU2V0U2VhcmNoaW5nRm9yTm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JDbGllbnQ6OnNldHVwUmVtb3RlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3JDbGllbnQ6OnRlYXJkb3duUmVtb3RlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViVmlzaWJsZVBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJWaXNpYmxlUG9z
aXRpb24gZW5jbG9zaW5nUmFuZ2VXaXRoRGljdGF0aW9uUGhyYXNlQWx0ZXJuYXRpdmVzOl0pOgor
ICAgICAgICAoLVtXZWJWaXNpYmxlUG9zaXRpb24gZW5jbG9zaW5nUmFuZ2VXaXRoQ29ycmVjdGlv
bkluZGljYXRvcl0pOgorICAgICAgICAoLVtET01IVE1MSW5wdXRFbGVtZW50IHN0YXJ0UG9zaXRp
b25dKToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxlbWVudCBlbmRQb3NpdGlvbl0pOgorICAg
ICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHN0YXJ0UG9zaXRpb25dKToKKyAgICAgICAg
KC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBlbmRQb3NpdGlvbl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUERGVmlld0lPUy5tbToKKyAgICAgICAgKCtbV2ViUERGVmlldyBzaGFkb3dDb2xvcl0p
OgorICAgICAgICAoK1tXZWJQREZWaWV3IGJhY2tncm91bmRDb2xvcl0pOgorICAgICAgICAoLVtX
ZWJQREZWaWV3IF9jaGVja1BERlRpdGxlXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW06CisgICAgICAgICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0
ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJVSUtpdERlbGVnYXRl
Lmg6CisKIDIwMTMtMTItMDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQdXNoIFJlbW90ZSBJbnNwZWN0b3IgZGVidWdnaW5n
IGNvbm5lY3Rpb24gbWFuYWdlbWVudCBpbnRvIEphdmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRl
Lm0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERl
bGVnYXRlLm0KaW5kZXggY2Q0Y2FiYzE4N2ExYmRlMmYyNzdlYjViNzhlNmEwNDE2ZmI5ZjExYi4u
OWFhYTVmMDA1MmU3OWNkNWNlNzAzMTcwNTdhMTI3MjM5NmIwMzE0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5t
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0
RGVsZWdhdGUubQpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKHZvaWQpd2ViVmlld0RpZFJlc3RvcmVG
cm9tUGFnZUNhY2hlOihXZWJWaWV3ICopd2ViVmlldwogewogfQogCi0tICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVEb2NUeXBlRm9yRnJhbWU6KFdlYkZyYW1lICop
ZnJhbWUKKy0gKHZvaWQpd2ViVmlld0RpZFJlY2VpdmVNb2JpbGVEb2NUeXBlOihXZWJWaWV3ICop
d2ViVmlldwogewogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9X
ZWJOU1N0cmluZ0RyYXdpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYk5TU3RyaW5n
RHJhd2luZy5tbQppbmRleCBhMjc4M2ZlYzFjYmFmYWIyMTlhOWE4ZDM1MTc5ODI3MGNjZjYwOTVh
Li41ZGIwZDRkOTJmYjUxZDgxOWZjNDhjNmFlY2MyYTFmNGMxYzQ1YjBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYk5TU3RyaW5nRHJhd2luZy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9NaXNjL1dlYk5TU3RyaW5nRHJhd2luZy5tbQpAQCAtMTU2LDM3ICsxNTYsMzcg
QEAgc3RhdGljIGZsb2F0IGRyYXdBdFBvaW50KGNvbnN0IFVDaGFyKiBzdHIsIGNvbnN0IGludCBy
dW5MZW5ndGgsIGNvbnN0IEZsb2F0UG9pbnQKICAgICByZXR1cm4gd2lkdGg7CiB9CiAKLXN0YXRp
YyBib29sIG5lZWRzQmlkaUxheW91dChjb25zdCBVQ2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoLCBXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbiYgYmFzZURpcmVjdGlvbiwgYm9vbCBvbmVQ
YXJhZ3JhcGggPSBmYWxzZSkKK3N0YXRpYyBib29sIG5lZWRzQmlkaUxheW91dChjb25zdCBVQ2hh
ciAqY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhckRpcmVjdGlvbiYgYmFzZURpcmVj
dGlvbiwgYm9vbCBvbmVQYXJhZ3JhcGggPSBmYWxzZSkKIHsKICAgICBib29sIGZvdW5kRmlyc3RT
dHJvbmcgPSBmYWxzZTsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGJhc2VEaXJlY3Rp
b24gPSBXVEY6OlVuaWNvZGU6OkxlZnRUb1JpZ2h0OworICAgIGJhc2VEaXJlY3Rpb24gPSBVX0xF
RlRfVE9fUklHSFQ7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDspIHsKICAg
ICAgICAgVUNoYXIzMiBjOwogICAgICAgICBVMTZfTkVYVChjaGFyYWN0ZXJzLCBpLCBsZW5ndGgs
IGMpOwotICAgICAgICBzd2l0Y2ggKFdURjo6VW5pY29kZTo6ZGlyZWN0aW9uKGMpKSB7Ci0gICAg
ICAgICAgICBjYXNlIFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnQ6Ci0gICAgICAgICAgICBjYXNl
IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnRBcmFiaWM6CisgICAgICAgIHN3aXRjaCAoVUNoYXJE
aXJlY3Rpb24oYykpIHsKKyAgICAgICAgICAgIGNhc2UgVV9SSUdIVF9UT19MRUZUOgorICAgICAg
ICAgICAgY2FzZSBVX1JJR0hUX1RPX0xFRlRfQVJBQklDOgogICAgICAgICAgICAgICAgIGlmICgh
Zm91bmRGaXJzdFN0cm9uZykgewogICAgICAgICAgICAgICAgICAgICBmb3VuZEZpcnN0U3Ryb25n
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYmFzZURpcmVjdGlvbiA9IFdURjo6VW5pY29k
ZTo6UmlnaHRUb0xlZnQ7CisgICAgICAgICAgICAgICAgICAgIGJhc2VEaXJlY3Rpb24gPSBVX1JJ
R0hUX1RPX0xFRlQ7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIEZhbGwg
dGhyb3VnaCB0byByZXN0IG9mIHN0cm9uZ2x5IGRpcmVjdGlvbmFsIGNhc2VzCi0gICAgICAgICAg
ICBjYXNlIFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHRFbWJlZGRpbmc6Ci0gICAgICAgICAgICBj
YXNlIFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHRPdmVycmlkZToKLSAgICAgICAgICAgIGNhc2Ug
V1RGOjpVbmljb2RlOjpSaWdodFRvTGVmdEVtYmVkZGluZzoKLSAgICAgICAgICAgIGNhc2UgV1RG
OjpVbmljb2RlOjpSaWdodFRvTGVmdE92ZXJyaWRlOgotICAgICAgICAgICAgY2FzZSBXVEY6OlVu
aWNvZGU6OlBvcERpcmVjdGlvbmFsRm9ybWF0OgorICAgICAgICAgICAgY2FzZSBVX0xFRlRfVE9f
UklHSFRfRU1CRURESU5HOgorICAgICAgICAgICAgY2FzZSBVX0xFRlRfVE9fUklHSFRfT1ZFUlJJ
REU6CisgICAgICAgICAgICBjYXNlIFVfUklHSFRfVE9fTEVGVF9FTUJFRERJTkc6CisgICAgICAg
ICAgICBjYXNlIFVfUklHSFRfVE9fTEVGVF9PVkVSUklERToKKyAgICAgICAgICAgIGNhc2UgVV9Q
T1BfRElSRUNUSU9OQUxfRk9STUFUOgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgaWYgKGZvdW5kRmlyc3RTdHJvbmcpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
IFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHQ6CisgICAgICAgICAgICBjYXNlIFVfTEVGVF9UT19S
SUdIVDoKICAgICAgICAgICAgICAgICBmb3VuZEZpcnN0U3Ryb25nID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXVEY6OlVuaWNvZGU6OkJs
b2NrU2VwYXJhdG9yOgorICAgICAgICAgICAgY2FzZSBVX0JMT0NLX1NFUEFSQVRPUjoKICAgICAg
ICAgICAgICAgICBpZiAob25lUGFyYWdyYXBoKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjY5LDcgKzI2OSw3IEBAIC0gKENH
U2l6ZSlfX3dlYl9kcmF3QXRQb2ludDooQ0dQb2ludClwb2ludAogICAgICAgICByZW5kZXJlci5z
ZXRMZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmcpOwogCiAgICAgU3RyaW5nIGZ1bGxTdHJpbmco
c2VsZik7Ci0gICAgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24gYmFzZSA9IFdURjo6VW5pY29kZTo6
TGVmdFRvUmlnaHQ7CisgICAgVUNoYXJEaXJlY3Rpb24gYmFzZSA9IFVfTEVGVF9UT19SSUdIVDsK
ICAgICBib29sIHN0cmluZ05lZWRzQmlkaSA9IG5lZWRzQmlkaUxheW91dChmdWxsU3RyaW5nLmNo
YXJhY3RlcnMoKSwgZnVsbFN0cmluZy5sZW5ndGgoKSwgYmFzZSk7CiAgICAgZmxvYXQgc3RyaW5n
V2lkdGg7CiAgICAgU3RyaW5nIHMgPSAod2lkdGggPj0gRkxUX01BWCAmJiAhbWVhc3VyZU9ubHkp
ID8gZnVsbFN0cmluZyA6IGFwcGx5RWxsaXBzaXNTdHlsZShmdWxsU3RyaW5nLCBlbGxpcHNpc1N0
eWxlLCB3aWR0aCwgcmVuZGVyZXIsIHNob3VsZERpc2FibGVXb3JkUm91bmRpbmcoKSA/IFN0cmlu
Z1RydW5jYXRvcjo6RGlzYWJsZVJvdW5kaW5nSGFja3MgOiBTdHJpbmdUcnVuY2F0b3I6OkVuYWJs
ZVJvdW5kaW5nSGFja3MsICZzdHJpbmdXaWR0aCk7CkBAIC0yODAsNyArMjgwLDcgQEAgLSAoQ0dT
aXplKV9fd2ViX2RyYXdBdFBvaW50OihDR1BvaW50KXBvaW50CiAgICAgICAgIGNvbnRleHQuc2V0
RW1vamlEcmF3aW5nRW5hYmxlZChpbmNsdWRlRW1vamkpOwogCiAgICAgICAgIGlmIChzdHJpbmdO
ZWVkc0JpZGkpIHsKLSAgICAgICAgICAgIEJpZGlTdGF0dXMgc3RhdHVzKGJhc2UsIGJhc2UsIGJh
c2UsIEJpZGlDb250ZXh0OjpjcmVhdGUoKGJhc2UgPT0gV1RGOjpVbmljb2RlOjpMZWZ0VG9SaWdo
dCkgPyAwIDogMSwgYmFzZSwgZmFsc2UpKTsKKyAgICAgICAgICAgIEJpZGlTdGF0dXMgc3RhdHVz
KGJhc2UsIGJhc2UsIGJhc2UsIEJpZGlDb250ZXh0OjpjcmVhdGUoKGJhc2UgPT0gVV9MRUZUX1RP
X1JJR0hUKSA/IDAgOiAxLCBiYXNlLCBmYWxzZSkpOwogICAgICAgICAgICAgLy8gRklYTUU6IEZv
ciBwcm9wZXIgYmlkaSByZW5kZXJpbmcsIHdlIG5lZWQgdG8gcGFzcyB0aGUgd2hvbGUgc3RyaW5n
LCByYXRoZXIgdGhhbiB0aGUgdHJ1bmNhdGVkIHN0cmluZy4KICAgICAgICAgICAgIC8vIE90aGVy
d2lzZSwgd2Vhay9uZXV0cmFsIGNoYXJhY3RlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGVsbGlw
c2lzIG1heSBwaWNrIHVwIHRoZSB3cm9uZyBkaXJlY3Rpb24KICAgICAgICAgICAgIC8vIGlmIHRo
ZXJlIGFyZSBzdHJvbmcgY2hhcmFjdGVycyBlbGxpZGVkLgpAQCAtNDAxLDExICs0MDEsMTEgQEAg
LSAoQ0dTaXplKV9fd2ViX2RyYXdJblJlY3Q6KENHUmVjdClyZWN0CiAKICAgICBCT09MIGxhc3RM
aW5lID0gTk87CiAgICAgQk9PTCBmaW5pc2hlZExhc3RMaW5lID0gTk87Ci0gICAgV1RGOjpVbmlj
b2RlOjpEaXJlY3Rpb24gYmFzZTsKKyAgICBVQ2hhckRpcmVjdGlvbiBiYXNlOwogICAgIEJPT0wg
cGFyYWdyYXBoTmVlZHNCaWRpID0gbmVlZHNCaWRpTGF5b3V0KGJ1ZmZlciwgbGVuZ3RoLCBiYXNl
LCB0cnVlKTsKICAgICBCaWRpU3RhdHVzIHN0YXR1czsKICAgICBpZiAocGFyYWdyYXBoTmVlZHNC
aWRpKQotICAgICAgICBzdGF0dXMgPSBCaWRpU3RhdHVzKGJhc2UsIGJhc2UsIGJhc2UsIEJpZGlD
b250ZXh0OjpjcmVhdGUoKGJhc2UgPT0gV1RGOjpVbmljb2RlOjpMZWZ0VG9SaWdodCkgPyAwIDog
MSwgYmFzZSwgZmFsc2UpKTsKKyAgICAgICAgc3RhdHVzID0gQmlkaVN0YXR1cyhiYXNlLCBiYXNl
LCBiYXNlLCBCaWRpQ29udGV4dDo6Y3JlYXRlKChiYXNlID09IFVfTEVGVF9UT19SSUdIVCkgPyAw
IDogMSwgYmFzZSwgZmFsc2UpKTsKIAogICAgIGludCBsZW5ndGhSZW1haW5pbmcgPSBsZW5ndGg7
CiAgICAgCkBAIC02MDEsNyArNjAxLDcgQEAgLSAoQ0dTaXplKV9fd2ViX2RyYXdJblJlY3Q6KENH
UmVjdClyZWN0CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ZWxsaXBzaXNSZXN1bHQgPSBhcHBseUVsbGlwc2lzU3R5bGUobGFzdExpbmUsIGVsbGlwc2lzU3R5
bGUsIHJlY3Quc2l6ZS53aWR0aCwgcmVuZGVyZXIsIHNob3VsZERpc2FibGVXb3JkUm91bmRpbmco
KSA/IFN0cmluZ1RydW5jYXRvcjo6RGlzYWJsZVJvdW5kaW5nSGFja3MgOiBTdHJpbmdUcnVuY2F0
b3I6OkVuYWJsZVJvdW5kaW5nSGFja3MsICZsYXN0TGluZVdpZHRoLCBpbnNlcnRFbGxpcHNpcywg
Y3VzdG9tVHJ1bmNhdGlvbkVsZW1lbnRXaWR0aCwgZm9yY2VUcnVuY2F0aW9uKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHRydW5jYXRpb25SZWN0ICYmIChlbGxpcHNpc1Jlc3VsdCAhPSBsYXN0
TGluZSB8fCBkcm9wcGluZ0xpbmVzKQotICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGFzdExp
bmVXaWR0aCAmJiBiYXNlID09IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAmJiBsYXN0TGluZVdpZHRoICYmIGJhc2UgPT0gVV9SSUdIVF9UT19MRUZU
KQogICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFBvaW50LnggKz0gdHJ1bmNhdGlvblJlY3Qt
PnNpemUud2lkdGg7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIENHQ29udGV4
dFJlZiBjZ0NvbnRleHQgPSBXS0dldEN1cnJlbnRHcmFwaGljc0NvbnRleHQoKTsKQEAgLTYxOSw3
ICs2MTksNyBAQCAtIChDR1NpemUpX193ZWJfZHJhd0luUmVjdDooQ0dSZWN0KXJlY3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICp0cnVuY2F0aW9uUmVjdCA9IENHUmVjdE51bGw7CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0cnVuY2F0aW9u
UmVjdC0+b3JpZ2luID0gdGV4dFBvaW50OwotICAgICAgICAgICAgICAgICAgICAgICAgdHJ1bmNh
dGlvblJlY3QtPm9yaWdpbi54ICs9IChiYXNlID09IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnQp
ID8gKC10cnVuY2F0aW9uUmVjdC0+c2l6ZS53aWR0aCkgOiBsaW5lV2lkdGg7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0cnVuY2F0aW9uUmVjdC0+b3JpZ2luLnggKz0gKGJhc2UgPT0gVV9SSUdI
VF9UT19MRUZUKSA/ICgtdHJ1bmNhdGlvblJlY3QtPnNpemUud2lkdGgpIDogbGluZVdpZHRoOwog
ICAgICAgICAgICAgICAgICAgICAgICAgdHJ1bmNhdGlvblJlY3QtPm9yaWdpbi55IC09IGFzY2Vu
dDsKICAgICAgICAgICAgICAgICAgICAgICAgIHRydW5jYXRpb25SZWN0LT5zaXplLmhlaWdodCA9
IGFzY2VudCAtIEdTRm9udEdldERlc2NlbnQoZm9udCk7CiAgICAgICAgICAgICAgICAgICAgIH0K
QEAgLTY1Niw3ICs2NTYsNyBAQCAtIChDR1NpemUpX193ZWJfZHJhd0luUmVjdDooQ0dSZWN0KXJl
Y3QKICAgICAgICAgICAgIC8vIFJlZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHN1Y2NlZWRpbmcgcGFy
YWdyYXBoIG5lZWRzIGJpZGkgbGF5b3V0LCBhbmQgaWYgc28sIGRldGVybWluZSB0aGUgYmFzZSBk
aXJlY3Rpb24KICAgICAgICAgICAgIHBhcmFncmFwaE5lZWRzQmlkaSA9IG5lZWRzQmlkaUxheW91
dChzdGFydE9mTGluZSwgbGVuZ3RoUmVtYWluaW5nLCBiYXNlLCB0cnVlKTsKICAgICAgICAgICAg
IGlmIChwYXJhZ3JhcGhOZWVkc0JpZGkpCi0gICAgICAgICAgICAgICAgc3RhdHVzID0gQmlkaVN0
YXR1cyhiYXNlLCBiYXNlLCBiYXNlLCBCaWRpQ29udGV4dDo6Y3JlYXRlKChiYXNlID09IFdURjo6
VW5pY29kZTo6TGVmdFRvUmlnaHQpID8gMCA6IDEsIGJhc2UsIGZhbHNlKSk7CisgICAgICAgICAg
ICAgICAgc3RhdHVzID0gQmlkaVN0YXR1cyhiYXNlLCBiYXNlLCBiYXNlLCBCaWRpQ29udGV4dDo6
Y3JlYXRlKChiYXNlID09IFVfTEVGVF9UT19SSUdIVCkgPyAwIDogMSwgYmFzZSwgZmFsc2UpKTsK
ICAgICAgICAgfQogICAgICAgICBtYXhMaW5lV2lkdGggPSBtYXgobWF4TGluZVdpZHRoLCBsaW5l
V2lkdGgpOwogICAgICAgICBjdXJzb3IueSArPSBsaW5lU3BhY2luZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvaW9zL01pc2MvV2ViVUlLaXRTdXBwb3J0Lm1tIGIvU291cmNlL1dlYktpdC9p
b3MvTWlzYy9XZWJVSUtpdFN1cHBvcnQubW0KaW5kZXggMjkwNDhkNWQxNzg5YWFjZmM3OWM3N2Fl
ZmYzZGNiNTgwOTE0NWFjYS4uMGI5NzA3OGYyMDdiODQ5NjRjNzZlYjAxMmQxNDZkMGNiYjgyYjFk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9XZWJVSUtpdFN1cHBvcnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9pb3MvTWlzYy9XZWJVSUtpdFN1cHBvcnQubW0KQEAgLTc0LDcg
Kzc0LDcgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplKHZvaWQpCiAgICAgCiAgICAgLy8gVGhpcyBu
ZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSByZXF1ZXN0cyBhcmUgbWFkZSBpbiB0aGUgcHJv
Y2VzcywgPHJkYXI6Ly9wcm9ibGVtLzk2OTE4NzE+CiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUhU
VFBDb25uZWN0aW9uU2V0dGluZ3NPblN0YXJ0dXAoKTsKLSAgICBXZWJDb3JlOjplbmFibGVLVVJM
U2NoZW1lQ2Fub25pY2FsaXphdGlvbihsaW5rZWRPbk9yQWZ0ZXJJT1M1KCkpOworICAgIFdlYkNv
cmU6OmVuYWJsZVVSTFNjaGVtZUNhbm9uaWNhbGl6YXRpb24obGlua2VkT25PckFmdGVySU9TNSgp
KTsKIH0KIAogdm9pZCBXZWJLaXRTZXRJc0NsYXNzaWMoQk9PTCBmbGFnKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmggYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAppbmRl
eCBkMGU0YzU0N2VmYTg3N2UzY2NjYWJjNGZhZWY0MzE3NWJmNGZmMTdhLi5hMTJmMDJmZDFkMmEx
NjVlMjg3ZWIwYjk1YTc2OGFiMWU0YTViNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lv
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaApAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UHJldmVudERlZmF1bHRGb3JFdmVudCgpIE9WRVJSSURFOwogI2VuZGlmCi0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEb2NUeXBlKFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSosIGJvb2wp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29y
ZTo6RnJhbWUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdl
T2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7CkBAIC04NSw3ICs4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9k
ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2Vi
Q29yZTo6RWxlbWVudCopIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIGludCBtX2Zvcm1Ob3Rp
ZmljYXRpb25TdXBwcmVzc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KaW5kZXggNjgzZGI0N2RlZTIzMGU0ZWQy
NmVmYTA0OTBjNTQyMWFkNWE5ODYxMC4uYmZmNTlmYTk4NmFkNzA2ZjlhNTU0ZjYyYzgzOTMzNDlm
ODc5YTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudElPUy5tbQpAQCAtMTMxLDkgKzEzMSw5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50SU9TOjpkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkKIH0KICNlbmRpZgogCi12b2lk
IFdlYkNocm9tZUNsaWVudElPUzo6ZGlkUmVjZWl2ZURvY1R5cGUoV2ViQ29yZTo6RnJhbWUqIGZy
YW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKCkK
IHsKLSAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJW
aWV3KCkgZGlkUmVjZWl2ZURvY1R5cGVGb3JGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBbW3dlYlZp
ZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlld0RpZFJlY2VpdmVNb2JpbGVEb2NU
eXBlOndlYlZpZXcoKSBdOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6c2V0TmVlZHNT
Y3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgYm9vbCBmbGFnKQpAQCAt
MjkwLDE4ICsyOTAsMTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OndlYkFwcE9yaWVudGF0
aW9uc1VwZGF0ZWQoKQogICAgIFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3U3VwcG9ydGVkT3JpZW50YXRpb25zVXBkYXRlZDp3ZWJWaWV3KCldOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudElPUzo6Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqIG5vZGUpCit2b2lkIFdl
YkNocm9tZUNsaWVudElPUzo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQp
CiB7Ci0gICAgaWYgKCFub2RlKQorICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkKKyAgICBpZiAo
IWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KG5vZGUpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElu
cHV0RWxlbWVudChlbGVtZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC0+aXNUZXh0KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIENhbGxGb3JtRGVsZWdhdGUod2ViVmlldygpLCBAc2VsZWN0
b3IoZGlkRm9jdXNUZXh0RmllbGQ6aW5GcmFtZTopLCBraXQoaW5wdXRFbGVtZW50KSwga2l0KGlu
cHV0RWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOworICAgIENhbGxGb3JtRGVsZWdhdGUo
d2ViVmlldygpLCBAc2VsZWN0b3IoZGlkRm9jdXNUZXh0RmllbGQ6aW5GcmFtZTopLCBraXQoaW5w
dXRFbGVtZW50KSwga2l0KGlucHV0RWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKSk7CiB9CiAK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lSU9TLm1tCmluZGV4IDVkZmY2ZjBmZTljMWQ5ZjJkZTRhMWUxMTkzYTVl
ZmI0NDYyZDA3OTEuLjI0ZDE2MDNhOGNmNmRjMjkyMzA0Y2Q2NjE2YThiZjE3YWZhNTkwODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lSU9TLm1tCkBA
IC05OCwzMSArOTgsMjUgQEAgLSAodm9pZCljbGVhclNlbGVjdGlvbgogewogICAgIEZyYW1lICpm
cmFtZSA9IFtzZWxmIGNvcmVGcmFtZV07CiAgICAgaWYgKGZyYW1lKQotICAgICAgICBmcmFtZS0+
c2VsZWN0aW9uKCktPmNsZWFyQ3VycmVudFNlbGVjdGlvbigpOyAgICAKKyAgICAgICAgZnJhbWUt
PnNlbGVjdGlvbigpLmNsZWFyQ3VycmVudFNlbGVjdGlvbigpOwogICAgIAogfQogCiAtIChXZWJU
ZXh0U2VsZWN0aW9uU3RhdGUpc2VsZWN0aW9uU3RhdGUKIHsKLSAgICBXZWJUZXh0U2VsZWN0aW9u
U3RhdGUgc3RhdGU7Ci0gICAgCisgICAgV2ViVGV4dFNlbGVjdGlvblN0YXRlIHN0YXRlID0gV2Vi
VGV4dFNlbGVjdGlvblN0YXRlTm9uZTsKKwogICAgIEZyYW1lICpmcmFtZSA9IFtzZWxmIGNvcmVG
cmFtZV07Ci0gICAgRnJhbWVTZWxlY3Rpb24qIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVj
dGlvbigpOwotICAgIAotICAgIGlmICghZnJhbWVTZWxlY3Rpb24pIHsKLSAgICAgICAgc3RhdGUg
PSBXZWJUZXh0U2VsZWN0aW9uU3RhdGVOb25lOwotICAgIH0gZWxzZSBpZiAoZnJhbWVTZWxlY3Rp
b24tPmlzQ2FyZXQoKSkgeworICAgIEZyYW1lU2VsZWN0aW9uJiBmcmFtZVNlbGVjdGlvbiA9IGZy
YW1lLT5zZWxlY3Rpb24oKTsKKworICAgIGlmIChmcmFtZVNlbGVjdGlvbi5pc0NhcmV0KCkpCiAg
ICAgICAgIHN0YXRlID0gV2ViVGV4dFNlbGVjdGlvblN0YXRlQ2FyZXQ7Ci0gICAgfSBlbHNlIGlm
IChmcmFtZVNlbGVjdGlvbi0+aXNSYW5nZSgpKSB7CisgICAgZWxzZSBpZiAoZnJhbWVTZWxlY3Rp
b24uaXNSYW5nZSgpKQogICAgICAgICBzdGF0ZSA9IFdlYlRleHRTZWxlY3Rpb25TdGF0ZVJhbmdl
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRlID0gV2ViVGV4dFNlbGVjdGlvblN0YXRlTm9u
ZTsKLSAgICB9Ci0gICAgCisKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKLQogLSAoQk9PTCloYXNT
ZWxlY3Rpb24KIHsKICAgICBXZWJUZXh0U2VsZWN0aW9uU3RhdGUgc3RhdGUgPSBbc2VsZiBzZWxl
Y3Rpb25TdGF0ZV07CkBAIC0xOTAsOSArMTg0LDkgQEAgLSAodm9pZCljb2xsYXBzZVNlbGVjdGlv
bgogewogICAgIGlmIChbc2VsZiBzZWxlY3Rpb25TdGF0ZV0gPT0gV2ViVGV4dFNlbGVjdGlvblN0
YXRlUmFuZ2UpIHsKICAgICAgICAgRnJhbWUgKmZyYW1lID0gW3NlbGYgY29yZUZyYW1lXTsKLSAg
ICAgICAgRnJhbWVTZWxlY3Rpb24qIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigp
OwotICAgICAgICBWaXNpYmxlUG9zaXRpb24gZW5kKGZyYW1lU2VsZWN0aW9uLT5lbmQoKSk7Ci0g
ICAgICAgIGZyYW1lU2VsZWN0aW9uLT5tb3ZlVG8oZW5kKTsKKyAgICAgICAgRnJhbWVTZWxlY3Rp
b24mIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOworICAgICAgICBWaXNpYmxl
UG9zaXRpb24gZW5kKGZyYW1lU2VsZWN0aW9uLmVuZCgpKTsKKyAgICAgICAgZnJhbWVTZWxlY3Rp
b24ubW92ZVRvKGVuZCk7CiAgICAgfQogfQogCkBAIC0yMDAsMTMgKzE5NCwxMyBAQCAtICh2b2lk
KWV4dGVuZFNlbGVjdGlvbjooQk9PTClzdGFydAogewogICAgIGlmIChbc2VsZiBzZWxlY3Rpb25T
dGF0ZV0gPT0gV2ViVGV4dFNlbGVjdGlvblN0YXRlUmFuZ2UpIHsKICAgICAgICAgRnJhbWUgKmZy
YW1lID0gW3NlbGYgY29yZUZyYW1lXTsKLSAgICAgICAgRnJhbWVTZWxlY3Rpb24qIGZyYW1lU2Vs
ZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOworICAgICAgICBGcmFtZVNlbGVjdGlvbiYgZnJh
bWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CiAgICAgICAgIGlmIChzdGFydCkgewot
ICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0ID0gc3RhcnRPZldvcmQoZnJhbWVTZWxl
Y3Rpb24tPnN0YXJ0KCkpOwotICAgICAgICAgICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhzdGFy
dCwgZnJhbWVTZWxlY3Rpb24tPmVuZCgpKTsKKyAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBz
dGFydCA9IHN0YXJ0T2ZXb3JkKGZyYW1lU2VsZWN0aW9uLnN0YXJ0KCkpOworICAgICAgICAgICAg
ZnJhbWVTZWxlY3Rpb24ubW92ZVRvKHN0YXJ0LCBmcmFtZVNlbGVjdGlvbi5lbmQoKSk7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gZW5kID0gZW5kT2ZXb3Jk
KGZyYW1lU2VsZWN0aW9uLT5lbmQoKSk7Ci0gICAgICAgICAgICBmcmFtZVNlbGVjdGlvbi0+bW92
ZVRvKGZyYW1lU2VsZWN0aW9uLT5zdGFydCgpLCBlbmQpOworICAgICAgICAgICAgVmlzaWJsZVBv
c2l0aW9uIGVuZCA9IGVuZE9mV29yZChmcmFtZVNlbGVjdGlvbi5lbmQoKSk7CisgICAgICAgICAg
ICBmcmFtZVNlbGVjdGlvbi5tb3ZlVG8oZnJhbWVTZWxlY3Rpb24uc3RhcnQoKSwgZW5kKTsKICAg
ICAgICAgfQogICAgIH0gICAgCiB9CkBAIC0yNTAsNyArMjQ0LDcgQEAgLSAoTlNBcnJheSAqKXNl
bGVjdGlvblJlY3RzCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBGcmFtZSAqZnJhbWUgPSBb
c2VsZiBjb3JlRnJhbWVdOwotICAgIFJhbmdlICpyYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+
dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKTsKKyAgICBSYW5nZSAqcmFuZ2UgPSBmcmFtZS0+c2Vs
ZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKTsKICAgICByZXR1cm4gW3NlbGYgc2Vs
ZWN0aW9uUmVjdHNGb3JDb3JlUmFuZ2U6cmFuZ2VdOwogfQogCkBAIC0zMDcsNyArMzAxLDcgQEAg
LSAodm9pZClzZXRSYW5nZWRTZWxlY3Rpb25Jbml0aWFsRXh0ZW50VG9DdXJyZW50U2VsZWN0aW9u
RW5kCiAtICh2b2lkKXNldFJhbmdlZFNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDooQ0dQb2ludClw
b2ludAogeyAgICAKICAgICBGcmFtZSAqZnJhbWUgPSBbc2VsZiBjb3JlRnJhbWVdOwotICAgIEZy
YW1lU2VsZWN0aW9uKiBmcmFtZVNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKTsKKyAgICBG
cmFtZVNlbGVjdGlvbiYgZnJhbWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CiAgICAg
VmlzaWJsZVBvc2l0aW9uIHBvcyA9IFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclBvaW50OnBvaW50
XTsKICAgICBWaXNpYmxlU2VsZWN0aW9uIGJhc2UgPSBmcmFtZS0+cmFuZ2VkU2VsZWN0aW9uQmFz
ZSgpOwogICAgIApAQCAtMzE4LDEzICszMTIsMTMgQEAgLSAodm9pZClzZXRSYW5nZWRTZWxlY3Rp
b25XaXRoRXh0ZW50UG9pbnQ6KENHUG9pbnQpcG9pbnQKICAgICBWaXNpYmxlUG9zaXRpb24gZW5k
KGJhc2UuZW5kKCkpOyAgICAKICAgICAKICAgICBpZiAocG9zIDwgc3RhcnQpIHsgICAgICAgIAot
ICAgICAgICBmcmFtZVNlbGVjdGlvbi0+bW92ZVRvKHBvcywgZW5kKTsKKyAgICAgICAgZnJhbWVT
ZWxlY3Rpb24ubW92ZVRvKHBvcywgZW5kKTsKICAgICB9IAogICAgIGVsc2UgaWYgKHBvcyA+IGVu
ZCkgewotICAgICAgICBmcmFtZVNlbGVjdGlvbi0+bW92ZVRvKHN0YXJ0LCBwb3MpOworICAgICAg
ICBmcmFtZVNlbGVjdGlvbi5tb3ZlVG8oc3RhcnQsIHBvcyk7CiAgICAgfSAKICAgICBlbHNlIHsK
LSAgICAgICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhzdGFydCwgZW5kKTsKKyAgICAgICAgZnJh
bWVTZWxlY3Rpb24ubW92ZVRvKHN0YXJ0LCBlbmQpOwogICAgIH0KIH0KIApAQCAtMzQ3LDcgKzM0
MSw3IEBAIC0gKEJPT0wpc2V0UmFuZ2VkU2VsZWN0aW9uRXh0ZW50UG9pbnQ6KENHUG9pbnQpZXh0
ZW50UG9pbnQgYmFzZUlzU3RhcnQ6KEJPT0wpYmFzCiAgICAgVmlzaWJsZVBvc2l0aW9uIGV4dGVu
dChbc2VsZiB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludDpleHRlbnRQb2ludF0pOwogICAgIAogICAg
IGlmIChyYW5nZWRTZWxlY3Rpb25CYXNlLmlzUmFuZ2UoKSAmJiBiYXNlU3RhcnQgPCBleHRlbnQg
JiYgZXh0ZW50IDwgYmFzZUVuZCkgewotICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vdmVU
byhiYXNlU3RhcnQsIGJhc2VFbmQpOworICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCkubW92ZVRv
KGJhc2VTdGFydCwgYmFzZUVuZCk7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9ICAgIAogICAg
IApAQCAtNDExLDcgKzQwNSw3IEBAIC0gKEJPT0wpc2V0UmFuZ2VkU2VsZWN0aW9uRXh0ZW50UG9p
bnQ6KENHUG9pbnQpZXh0ZW50UG9pbnQgYmFzZUlzU3RhcnQ6KEJPT0wpYmFzCiAgICAgICAgICAg
ICBleHRlbnQgPSBiYXNlLnByZXZpb3VzKCk7CiAgICAgfQogICAgIAotICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS0+bW92ZVRvKGJhc2UsIGV4dGVudCk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLm1v
dmVUbyhiYXNlLCBleHRlbnQpOwogCiAgICAgcmV0dXJuIGRpZEZsaXBTdGFydEVuZCA/ICFiYXNl
SXNTdGFydCA6IGJhc2VJc1N0YXJ0OwogfQpAQCAtNDI3LDcgKzQyMSw3IEBAIC0gKEJPT0wpc2V0
U2VsZWN0aW9uV2l0aEJhc2VQb2ludDooQ0dQb2ludCliYXNlUG9pbnQgZXh0ZW50UG9pbnQ6KENH
UG9pbnQpZXh0ZW50CiAgICAgLy8gbGVhc3QgYXMgbG9uZyBhcyBhIHNpbmdsZSwgbG9naWNhbCBz
ZWxlY3Rpb24gc2Vzc2lvbiBjb250aW51ZXMpLgogCiAgICAgRnJhbWUgKmZyYW1lID0gW3NlbGYg
Y29yZUZyYW1lXTsKLSAgICBGcmFtZVNlbGVjdGlvbiogZnJhbWVTZWxlY3Rpb24gPSBmcmFtZS0+
c2VsZWN0aW9uKCk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUt
PnNlbGVjdGlvbigpOwogICAgIFZpc2libGVQb3NpdGlvbiBiYXNlKFtzZWxmIHZpc2libGVQb3Np
dGlvbkZvclBvaW50OmJhc2VQb2ludF0pOwogICAgIFZpc2libGVQb3NpdGlvbiBleHRlbnQoW3Nl
bGYgdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQ6ZXh0ZW50UG9pbnRdKTsKIApAQCAtNDU0LDcgKzQ0
OCw3IEBAIC0gKEJPT0wpc2V0U2VsZWN0aW9uV2l0aEJhc2VQb2ludDooQ0dQb2ludCliYXNlUG9p
bnQgZXh0ZW50UG9pbnQ6KENHUG9pbnQpZXh0ZW50CiAgICAgICAgICAgICBleHRlbnQgPSBiYXNl
LnByZXZpb3VzKCk7CiAgICAgfQogCi0gICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhiYXNlLCBl
eHRlbnQpOworICAgIGZyYW1lU2VsZWN0aW9uLm1vdmVUbyhiYXNlLCBleHRlbnQpOwogCiAgICAg
cmV0dXJuIGRpZEZsaXBTdGFydEVuZCA/ICFiYXNlSXNTdGFydCA6IGJhc2VJc1N0YXJ0OwogfQpA
QCAtNDcxLDggKzQ2NSw4IEBAIC0gKHZvaWQpc2V0U2VsZWN0aW9uV2l0aEZpcnN0UG9pbnQ6KENH
UG9pbnQpZmlyc3RQb2ludCBzZWNvbmRQb2ludDooQ0dQb2ludClzZWNvCiAgICAgVmlzaWJsZVBv
c2l0aW9uIGZpcnN0KFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclBvaW50OmZpcnN0UG9pbnRdKTsK
ICAgICBWaXNpYmxlUG9zaXRpb24gc2Vjb25kKFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclBvaW50
OnNlY29uZFBvaW50XSk7CiAgICAgRnJhbWUgKmZyYW1lID0gW3NlbGYgY29yZUZyYW1lXTsKLSAg
ICBGcmFtZVNlbGVjdGlvbiogZnJhbWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7Ci0g
ICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhmaXJzdCwgc2Vjb25kKTsKKyAgICBGcmFtZVNlbGVj
dGlvbiYgZnJhbWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgZnJhbWVTZWxl
Y3Rpb24ubW92ZVRvKGZpcnN0LCBzZWNvbmQpOwogfQogCiAtICh2b2lkKWVuc3VyZVJhbmdlZFNl
bGVjdGlvbkNvbnRhaW5zSW5pdGlhbFN0YXJ0UG9pbnQ6KENHUG9pbnQpaW5pdGlhbFN0YXJ0UG9p
bnQgaW5pdGlhbEVuZFBvaW50OihDR1BvaW50KWluaXRpYWxFbmRQb2ludApAQCAtNDgxLDQ3ICs0
NzUsNDcgQEAgLSAodm9pZCllbnN1cmVSYW5nZWRTZWxlY3Rpb25Db250YWluc0luaXRpYWxTdGFy
dFBvaW50OihDR1BvaW50KWluaXRpYWxTdGFydFBvaW4KICAgICAvLyBsb25nZXIgY29udGFpbnMg
dGhlc2UgcG9pbnRzLiBUaGlzIGlzIHRoZSBkZXNpcmFibGUgYmVoYXZpb3Igd2hlbiB0aGUKICAg
ICAvLyB1c2VyIGRvZXMgdGhlIHRhcC1hbmQtYS1oYWxmICsgZHJhZyBvcGVyYXRpb24uCiAgICAg
RnJhbWUgKmZyYW1lID0gW3NlbGYgY29yZUZyYW1lXTsKLSAgICBGcmFtZVNlbGVjdGlvbiogZnJh
bWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZy
YW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOwogICAgIFBvc2l0aW9uIGVuc3VyZVN0
YXJ0KFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclBvaW50OmluaXRpYWxTdGFydFBvaW50XS5kZWVw
RXF1aXZhbGVudCgpKTsKICAgICBQb3NpdGlvbiBlbnN1cmVFbmQoW3NlbGYgdmlzaWJsZVBvc2l0
aW9uRm9yUG9pbnQ6aW5pdGlhbEVuZFBvaW50XS5kZWVwRXF1aXZhbGVudCgpKTsKLSAgICBpZiAo
ZnJhbWVTZWxlY3Rpb24tPnN0YXJ0KCkgPiBlbnN1cmVTdGFydCkgewotICAgICAgICBmcmFtZVNl
bGVjdGlvbi0+bW92ZVRvKGVuc3VyZVN0YXJ0LCBmcmFtZVNlbGVjdGlvbi0+ZW5kKCkpOworICAg
IGlmIChmcmFtZVNlbGVjdGlvbi5zdGFydCgpID4gZW5zdXJlU3RhcnQpIHsKKyAgICAgICAgZnJh
bWVTZWxlY3Rpb24ubW92ZVRvKGVuc3VyZVN0YXJ0LCBmcmFtZVNlbGVjdGlvbi5lbmQoKSk7CiAg
ICAgfQotICAgIGVsc2UgaWYgKGZyYW1lU2VsZWN0aW9uLT5lbmQoKSA8IGVuc3VyZUVuZCkgewot
ICAgICAgICBmcmFtZVNlbGVjdGlvbi0+bW92ZVRvKGZyYW1lU2VsZWN0aW9uLT5zdGFydCgpLCBl
bnN1cmVFbmQpOworICAgIGVsc2UgaWYgKGZyYW1lU2VsZWN0aW9uLmVuZCgpIDwgZW5zdXJlRW5k
KSB7CisgICAgICAgIGZyYW1lU2VsZWN0aW9uLm1vdmVUbyhmcmFtZVNlbGVjdGlvbi5zdGFydCgp
LCBlbnN1cmVFbmQpOwogICAgIH0KIH0KIAogLSAodm9pZClhZ2dyZXNzaXZlbHlFeHBhbmRTZWxl
Y3Rpb25Ub1dvcmRDb250YWluaW5nQ2FyZXRTZWxlY3Rpb24KIHsKICAgICBGcmFtZSAqZnJhbWUg
PSBbc2VsZiBjb3JlRnJhbWVdOwotICAgIEZyYW1lU2VsZWN0aW9uKiBmcmFtZVNlbGVjdGlvbiA9
IGZyYW1lLT5zZWxlY3Rpb24oKTsKLSAgICBWaXNpYmxlUG9zaXRpb24gZW5kKGZyYW1lU2VsZWN0
aW9uLT5lbmQoKSk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUt
PnNlbGVjdGlvbigpOworICAgIFZpc2libGVQb3NpdGlvbiBlbmQoZnJhbWVTZWxlY3Rpb24uZW5k
KCkpOwogICAgIGlmIChlbmQgPT0gZW5kT2ZEb2N1bWVudChlbmQpICYmIGVuZCAhPSBzdGFydE9m
RG9jdW1lbnQoZW5kKSAmJiBlbmQgPT0gc3RhcnRPZkxpbmUoZW5kKSkgewotICAgICAgICBmcmFt
ZVNlbGVjdGlvbi0+bW92ZVRvKGVuZC5wcmV2aW91cygpLCBlbmQpOworICAgICAgICBmcmFtZVNl
bGVjdGlvbi5tb3ZlVG8oZW5kLnByZXZpb3VzKCksIGVuZCk7CiAgICAgfQogCiAgICAgW3NlbGYg
ZXhwYW5kU2VsZWN0aW9uVG9Xb3JkQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uXTsKIAogICAgIC8v
IFRoaXMgaXMgYSB0ZW1wb3JhcnkgaGFjayB1bnRpbCB3ZSBnZXQgdGhlIGltcHJvdmVtZW50cwog
ICAgIC8vIEknbSB3b3JraW5nIG9uIGZvciBSVEwgc2VsZWN0aW9uLgotICAgIGlmIChmcmFtZVNl
bGVjdGlvbi0+Z3JhbnVsYXJpdHkoKSA9PSBXb3JkR3JhbnVsYXJpdHkpIHsKLSAgICAgICAgZnJh
bWVTZWxlY3Rpb24tPm1vdmVUbyhmcmFtZVNlbGVjdGlvbi0+c3RhcnQoKSwgZnJhbWVTZWxlY3Rp
b24tPmVuZCgpKTsKKyAgICBpZiAoZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSA9PSBXb3Jk
R3JhbnVsYXJpdHkpIHsKKyAgICAgICAgZnJhbWVTZWxlY3Rpb24ubW92ZVRvKGZyYW1lU2VsZWN0
aW9uLnN0YXJ0KCksIGZyYW1lU2VsZWN0aW9uLmVuZCgpKTsKICAgICB9CiAgICAgCi0gICAgaWYg
KGZyYW1lU2VsZWN0aW9uLT5pc0NhcmV0KCkpIHsKLSAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBv
cyhmcmFtZVNlbGVjdGlvbi0+ZW5kKCkpOworICAgIGlmIChmcmFtZVNlbGVjdGlvbi5pc0NhcmV0
KCkpIHsKKyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhmcmFtZVNlbGVjdGlvbi5lbmQoKSk7
CiAgICAgICAgIGlmIChpc1N0YXJ0T2ZMaW5lKHBvcykgJiYgaXNFbmRPZkxpbmUocG9zKSkgewog
ICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIG5leHQocG9zLm5leHQoKSk7CiAgICAgICAgICAg
ICBpZiAobmV4dC5pc05vdE51bGwoKSkgewotICAgICAgICAgICAgICAgIGZyYW1lU2VsZWN0aW9u
LT5tb3ZlVG8oZW5kLCBuZXh0KTsKKyAgICAgICAgICAgICAgICBmcmFtZVNlbGVjdGlvbi5tb3Zl
VG8oZW5kLCBuZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIHdoaWxlIChwb3MuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgICAgICAgICBW
aXNpYmxlUG9zaXRpb24gd29yZFN0YXJ0KHN0YXJ0T2ZXb3JkKHBvcykpOwogICAgICAgICAgICAg
ICAgIGlmICh3b3JkU3RhcnQgIT0gcG9zKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lU2Vs
ZWN0aW9uLT5tb3ZlVG8od29yZFN0YXJ0LCBmcmFtZVNlbGVjdGlvbi0+ZW5kKCkpOworICAgICAg
ICAgICAgICAgICAgICBmcmFtZVNlbGVjdGlvbi5tb3ZlVG8od29yZFN0YXJ0LCBmcmFtZVNlbGVj
dGlvbi5lbmQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXMoKTsKQEAgLTUzMywxMSArNTI3
LDExIEBAIC0gKHZvaWQpYWdncmVzc2l2ZWx5RXhwYW5kU2VsZWN0aW9uVG9Xb3JkQ29udGFpbmlu
Z0NhcmV0U2VsZWN0aW9uCiAtICh2b2lkKWV4cGFuZFNlbGVjdGlvblRvU2VudGVuY2UKIHsKICAg
ICBGcmFtZSAqZnJhbWUgPSBbc2VsZiBjb3JlRnJhbWVdOwotICAgIEZyYW1lU2VsZWN0aW9uKiBm
cmFtZVNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKTsKLSAgICBWaXNpYmxlUG9zaXRpb24g
cG9zID0gZnJhbWVTZWxlY3Rpb24tPnN0YXJ0KCk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZyYW1l
U2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOworICAgIFZpc2libGVQb3NpdGlvbiBwb3Mg
PSBmcmFtZVNlbGVjdGlvbi5zdGFydCgpOwogICAgIFZpc2libGVQb3NpdGlvbiBzdGFydCA9IHN0
YXJ0T2ZTZW50ZW5jZShwb3MpOwogICAgIFZpc2libGVQb3NpdGlvbiBlbmQgPSBlbmRPZlNlbnRl
bmNlKHBvcyk7Ci0gICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhzdGFydCwgZW5kKTsgICAgCisg
ICAgZnJhbWVTZWxlY3Rpb24ubW92ZVRvKHN0YXJ0LCBlbmQpOyAgICAKIH0KIAogLSAoV0tXcml0
aW5nRGlyZWN0aW9uKXNlbGVjdGlvbkJhc2VXcml0aW5nRGlyZWN0aW9uCkBAIC01ODEsNyArNTc1
LDcgQEAgLSAodm9pZClzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjooV0tXcml0aW5nRGlyZWN0aW9u
KWRpcmVjdGlvbgogICAgIFdLV3JpdGluZ0RpcmVjdGlvbiBvcmlnaW5hbERpcmVjdGlvbiA9IFtz
ZWxmIHNlbGVjdGlvbkJhc2VXcml0aW5nRGlyZWN0aW9uXTsKIAogICAgIEZyYW1lICpmcmFtZSA9
IFtzZWxmIGNvcmVGcmFtZV07Ci0gICAgaWYgKCFmcmFtZS0+c2VsZWN0aW9uKCktPmlzQ29udGVu
dEVkaXRhYmxlKCkpCisgICAgaWYgKCFmcmFtZS0+c2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFi
bGUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFdyaXRpbmdEaXJlY3Rpb24gd2NEaXJl
Y3Rpb24gPSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb247CkBAIC02MDgsMjUgKzYwMiwyNSBA
QCAtICh2b2lkKXNldEJhc2VXcml0aW5nRGlyZWN0aW9uOihXS1dyaXRpbmdEaXJlY3Rpb24pZGly
ZWN0aW9uCiAtICh2b2lkKW1vdmVTZWxlY3Rpb25Ub1N0YXJ0CiB7CiAgICAgRnJhbWUgKmZyYW1l
ID0gW3NlbGYgY29yZUZyYW1lXTsKLSAgICBGcmFtZVNlbGVjdGlvbiogZnJhbWVTZWxlY3Rpb24g
PSBmcmFtZS0+c2VsZWN0aW9uKCk7Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0ID0gc3RhcnRP
ZkRvY3VtZW50KGZyYW1lU2VsZWN0aW9uLT5zZWxlY3Rpb24oKS5zdGFydCgpKTsKLSAgICBmcmFt
ZVNlbGVjdGlvbi0+bW92ZVRvKHN0YXJ0KTsKKyAgICBGcmFtZVNlbGVjdGlvbiYgZnJhbWVTZWxl
Y3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0ID0g
c3RhcnRPZkRvY3VtZW50KGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOworICAg
IGZyYW1lU2VsZWN0aW9uLm1vdmVUbyhzdGFydCk7CiB9CiAKIC0gKHZvaWQpbW92ZVNlbGVjdGlv
blRvRW5kCiB7CiAgICAgRnJhbWUgKmZyYW1lID0gW3NlbGYgY29yZUZyYW1lXTsKLSAgICBGcmFt
ZVNlbGVjdGlvbiogZnJhbWVTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7Ci0gICAgVmlz
aWJsZVBvc2l0aW9uIGVuZCA9ICBlbmRPZkRvY3VtZW50KGZyYW1lU2VsZWN0aW9uLT5zZWxlY3Rp
b24oKS5lbmQoKSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhlbmQpOworICAgIEZyYW1l
U2VsZWN0aW9uJiBmcmFtZVNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKTsKKyAgICBWaXNp
YmxlUG9zaXRpb24gZW5kID0gIGVuZE9mRG9jdW1lbnQoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9u
KCkuZW5kKCkpOworICAgIGZyYW1lU2VsZWN0aW9uLm1vdmVUbyhlbmQpOwogfQogCiAtICh2b2lk
KW1vdmVTZWxlY3Rpb25Ub1BvaW50OihDR1BvaW50KXBvaW50CiB7CiAgICAgRnJhbWUgKmZyYW1l
ID0gW3NlbGYgY29yZUZyYW1lXTsKLSAgICBGcmFtZVNlbGVjdGlvbiogZnJhbWVTZWxlY3Rpb24g
PSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZyYW1lU2VsZWN0aW9u
ID0gZnJhbWUtPnNlbGVjdGlvbigpOwogICAgIFZpc2libGVQb3NpdGlvbiBwb3MgPSBbc2VsZiBf
dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQ6cG9pbnRdOwotICAgIGZyYW1lU2VsZWN0aW9uLT5tb3Zl
VG8ocG9zKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5tb3ZlVG8ocG9zKTsKIH0KIAogLSAodm9pZClz
ZXRTZWxlY3Rpb25HcmFudWxhcml0eTooV2ViVGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5CkBA
IC02NTMsOCArNjQ3LDggQEAgLSAodm9pZClzZXRTZWxlY3Rpb25HcmFudWxhcml0eTooV2ViVGV4
dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBGcmFtZVNlbGVjdGlvbiogZnJhbWVT
ZWxlY3Rpb24gPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKTsKLSAgICBmcmFtZVNl
bGVjdGlvbi0+c2V0U2VsZWN0aW9uKGZyYW1lU2VsZWN0aW9uLT5zZWxlY3Rpb24oKSwgd2NHcmFu
dWxhcml0eSk7CisgICAgRnJhbWVTZWxlY3Rpb24mIGZyYW1lU2VsZWN0aW9uID0gX3ByaXZhdGUt
PmNvcmVGcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9u
KGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLCB3Y0dyYW51bGFyaXR5KTsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sIGlzQWxwaGFOdW1lcmljQ2hhcmFjdGVyKFVDaGFyMzIgYykKQEAgLTc3Nywx
NyArNzcxLDE3IEBAIC0gKHZvaWQpc21hcnRFeHRlbmRSYW5nZWRTZWxlY3Rpb246KFdlYlRleHRT
bWFydEV4dGVuZERpcmVjdGlvbilkaXJlY3Rpb24KICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IEZyYW1lICpmcmFtZSA9IFtzZWxmIGNvcmVGcmFtZV07Ci0gICAgRnJhbWVTZWxlY3Rpb24qIGZy
YW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOwotICAgIEVBZmZpbml0eSBhZmZpbml0
eSA9IGZyYW1lU2VsZWN0aW9uLT5zZWxlY3Rpb24oKS5hZmZpbml0eSgpOwotICAgIFZpc2libGVQ
b3NpdGlvbiBzdGFydChmcmFtZVNlbGVjdGlvbi0+c3RhcnQoKSwgYWZmaW5pdHkpOwotICAgIFZp
c2libGVQb3NpdGlvbiBlbmQoZnJhbWVTZWxlY3Rpb24tPmVuZCgpLCBhZmZpbml0eSk7CisgICAg
RnJhbWVTZWxlY3Rpb24mIGZyYW1lU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOworICAg
IEVBZmZpbml0eSBhZmZpbml0eSA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmFmZmluaXR5
KCk7CisgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0KGZyYW1lU2VsZWN0aW9uLnN0YXJ0KCksIGFm
ZmluaXR5KTsKKyAgICBWaXNpYmxlUG9zaXRpb24gZW5kKGZyYW1lU2VsZWN0aW9uLmVuZCgpLCBh
ZmZpbml0eSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIGJhc2UoZnJhbWUtPnJhbmdlZFNlbGVjdGlv
bkJhc2UoKS5iYXNlKCkpOyAgLy8gc2hvdWxkIGVxdWFsIHN0YXJ0IG9yIGVuZAogCiAgICAgLy8g
QmFzZSBtdXN0IGVxdWFsIHN0YXJ0IG9yIGVuZAogICAgIGlmIChiYXNlICE9IHN0YXJ0ICYmIGJh
c2UgIT0gZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBWaXNpYmxlUG9zaXRpb24gZXh0ZW50
KGZyYW1lU2VsZWN0aW9uLT5zZWxlY3Rpb24oKS5leHRlbnQoKSwgYWZmaW5pdHkpOworICAgIFZp
c2libGVQb3NpdGlvbiBleHRlbnQoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZXh0ZW50KCks
IGFmZmluaXR5KTsKICAgICAKICAgICAvLyBXZSBkb24ndCB5ZXQgc3VwcG9ydCBzbWFydCBleHRl
bnNpb24gZm9yIGxhbmd1YWdlcyB3aGljaAogICAgIC8vIHJlcXVpcmUgY29udGV4dCBmb3Igd29y
ZCBib3VuZGFyeS4KQEAgLTgxMiw3ICs4MDYsNyBAQCAtICh2b2lkKXNtYXJ0RXh0ZW5kUmFuZ2Vk
U2VsZWN0aW9uOihXZWJUZXh0U21hcnRFeHRlbmREaXJlY3Rpb24pZGlyZWN0aW9uCiAgICAgfQog
CiAgICAgaWYgKHNtYXJ0RXh0ZW50LmlzTm90TnVsbCgpICYmIHNtYXJ0RXh0ZW50ICE9IGV4dGVu
dCkKLSAgICAgICAgZnJhbWVTZWxlY3Rpb24tPm1vdmVUbyhiYXNlLCBzbWFydEV4dGVudCk7Cisg
ICAgICAgIGZyYW1lU2VsZWN0aW9uLm1vdmVUbyhiYXNlLCBzbWFydEV4dGVudCk7CiAKIH0KIApA
QCAtODU3LDEwICs4NTEsOCBAQCAtIChXZWJWaXNpYmxlUG9zaXRpb24gKilwcmV2aW91c1VucGVy
dHVyYmVkRGljdGF0aW9uUmVzdWx0Qm91bmRhcnlGcm9tUG9zaXRpb246KAogICAgIGlmIChjdXJy
ZW50VmlzaWJsZVBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gcG9zaXRpb247CiAg
ICAgCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY3VycmVudFZpc2libGVQb3NpdGlvbi5kZWVw
RXF1aXZhbGVudCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50
KQotICAgICAgICByZXR1cm4gcG9zaXRpb247Ci0gICAgCisgICAgRG9jdW1lbnQmIGRvY3VtZW50
ID0gY3VycmVudFZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmFuY2hvck5vZGUoKS0+
ZG9jdW1lbnQoKTsKKwogICAgIGlkIHVpa2l0RGVsZWdhdGUgPSBbW3NlbGYgd2ViVmlld10gX1VJ
S2l0RGVsZWdhdGVdOwogICAgIGlmICghW3Vpa2l0RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihpc1VucGVydHVyYmVkRGljdGF0aW9uUmVzdWx0TWFya2VyOildKQogICAgICAg
ICByZXR1cm4gcG9zaXRpb247CkBAIC04ODAsNyArODcyLDcgQEAgLSAoV2ViVmlzaWJsZVBvc2l0
aW9uICopcHJldmlvdXNVbnBlcnR1cmJlZERpY3RhdGlvblJlc3VsdEJvdW5kYXJ5RnJvbVBvc2l0
aW9uOigKICAgICAgICAgCiAgICAgICAgIFJlZlB0cjxSYW5nZT4gZ3JhcGhlbWVSYW5nZSA9IFJh
bmdlOjpjcmVhdGUoZG9jdW1lbnQsIHByZXZpb3VzVmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCksIGN1cnJlbnRWaXNpYmxlUG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKSk7CiAgICAgICAg
IAotICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0gZG9jdW1lbnQtPm1h
cmtlcnMoKS0+bWFya2Vyc0luUmFuZ2UoZ3JhcGhlbWVSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJr
ZXI6OkRpY3RhdGlvblJlc3VsdCk7CisgICAgICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1h
cmtlcnMgPSBkb2N1bWVudC5tYXJrZXJzKCkubWFya2Vyc0luUmFuZ2UoZ3JhcGhlbWVSYW5nZS5n
ZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkRpY3RhdGlvblJlc3VsdCk7CiAgICAgICAgIGlmIChtYXJr
ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjdXJyZW50V2ViVmlzaWJsZVBvc2l0
aW9uOwogICAgICAgICAKQEAgLTkxNSw5ICs5MDcsNyBAQCAtIChXZWJWaXNpYmxlUG9zaXRpb24g
KiluZXh0VW5wZXJ0dXJiZWREaWN0YXRpb25SZXN1bHRCb3VuZGFyeUZyb21Qb3NpdGlvbjooV2Vi
VgogICAgIGlmIChjdXJyZW50VmlzaWJsZVBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gcG9zaXRpb247CiAgICAgCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY3VycmVudFZpc2li
bGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gY3VycmVudFZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmFuY2hv
ck5vZGUoKS0+ZG9jdW1lbnQoKTsKICAgICAKICAgICBpZCB1aWtpdERlbGVnYXRlID0gW1tzZWxm
IHdlYlZpZXddIF9VSUtpdERlbGVnYXRlXTsKICAgICBpZiAoIVt1aWtpdERlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaXNVbnBlcnR1cmJlZERpY3RhdGlvblJlc3VsdE1hcmtl
cjopXSkKQEAgLTkzOCw3ICs5MjgsNyBAQCAtIChXZWJWaXNpYmxlUG9zaXRpb24gKiluZXh0VW5w
ZXJ0dXJiZWREaWN0YXRpb25SZXN1bHRCb3VuZGFyeUZyb21Qb3NpdGlvbjooV2ViVgogICAgICAg
ICAKICAgICAgICAgUmVmUHRyPFJhbmdlPiBncmFwaGVtZVJhbmdlID0gUmFuZ2U6OmNyZWF0ZShk
b2N1bWVudCwgY3VycmVudFZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLCBuZXh0Vmlz
aWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkpOwogICAgICAgICAKLSAgICAgICAgVmVjdG9y
PERvY3VtZW50TWFya2VyKj4gbWFya2VycyA9IGRvY3VtZW50LT5tYXJrZXJzKCktPm1hcmtlcnNJ
blJhbmdlKGdyYXBoZW1lUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpEaWN0YXRpb25SZXN1
bHQpOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0gZG9jdW1lbnQu
bWFya2VycygpLm1hcmtlcnNJblJhbmdlKGdyYXBoZW1lUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFy
a2VyOjpEaWN0YXRpb25SZXN1bHQpOwogICAgICAgICBpZiAobWFya2Vycy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gY3VycmVudFdlYlZpc2libGVQb3NpdGlvbjsKICAgICAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnRJT1MubW0KaW5kZXggY2E3NWQxZjc2OWYwMDZmYzBhMjU5ZDU4OWNhNTAxOTNlYTcz
MmMxZC4uMGQzNGRkZDA3YTFkOWY1OWQ2ZTNkZmFkYmE4MzViYjc1ZTljYjAxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudElPUy5tbQpAQCAtMzIsNyArMzIsNiBAQAogCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFs
LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3IuaCIKLSNpbXBvcnQgIldlYk5TTm90aWZpY2F0aW9u
Q2VudGVyRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOb2RlSGlnaGxpZ2h0ZXIuaCIKICNpbXBvcnQg
IldlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVy
Lmg+CkBAIC00Niw3ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJJbnNw
ZWN0b3JDbGllbnQ6OldlYkluc3BlY3RvckNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDog
bV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX2hpZ2hsaWdodGVyKEFkb3B0TlMsIFtbV2ViTm9k
ZUhpZ2hsaWdodGVyIGFsbG9jXSBpbml0V2l0aEluc3BlY3RlZFdlYlZpZXc6d2ViVmlld10pCisg
ICAgLCBtX2hpZ2hsaWdodGVyKGFkb3B0TlMoW1tXZWJOb2RlSGlnaGxpZ2h0ZXIgYWxsb2NdIGlu
aXRXaXRoSW5zcGVjdGVkV2ViVmlldzp3ZWJWaWV3XSkpCiAgICAgLCBtX2Zyb250ZW5kUGFnZSgw
KQogICAgICwgbV9mcm9udGVuZENsaWVudCgwKQogewpAQCAtOTIsMTQgKzkxLDEyIEBAIHZvaWQg
V2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKIHZvaWQgV2ViSW5zcGVjdG9yQ2xp
ZW50OjpkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wgZW5hYmxlZCkKIHsKICAgICBXZWJJbnNw
ZWN0b3IgKmluc3BlY3RvciA9IFttX3dlYlZpZXcgaW5zcGVjdG9yXTsKLQotICAgIGlmIChlbmFi
bGVkKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3RO
b3RpZmljYXRpb25Pbk1haW5UaHJlYWRXaXRoTmFtZTpXZWJJbnNwZWN0b3JEaWRTdGFydFNlYXJj
aGluZ0Zvck5vZGUgb2JqZWN0Omluc3BlY3Rvcl07Ci0gICAgZWxzZQotICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25Pbk1haW5UaHJl
YWRXaXRoTmFtZTpXZWJJbnNwZWN0b3JEaWRTdG9wU2VhcmNoaW5nRm9yTm9kZSBvYmplY3Q6aW5z
cGVjdG9yXTsKKyAgICBOU1N0cmluZyAqbm90aWZpY2F0aW9uTmFtZSA9IGVuYWJsZWQgPyBXZWJJ
bnNwZWN0b3JEaWRTdGFydFNlYXJjaGluZ0Zvck5vZGUgOiBXZWJJbnNwZWN0b3JEaWRTdG9wU2Vh
cmNoaW5nRm9yTm9kZTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeeworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBv
c3ROb3RpZmljYXRpb25OYW1lOm5vdGlmaWNhdGlvbk5hbWUgb2JqZWN0Omluc3BlY3Rvcl07Cisg
ICAgfSk7CiB9CiAKLQogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudCBJbXBsZW1lbnRhdGlvbgogCkBAIC0xMjMsNyArMTIwLDYgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25l
ZCkgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRUb29sYmFySGVpZ2h0
KHVuc2lnbmVkKSB7IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6Omluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50Ojp1cGRhdGVXaW5kb3dUaXRsZSgpIGNvbnN0IHsgfQotdm9pZCBXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6c2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sKSB7
IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKSB7IH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2libGVQb3NpdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2libGVQb3NpdGlvbi5t
bQppbmRleCBlODQ4MmRiNzk1ZDZjYWQzYTVkODFiMmYzMDRhYjQyOGQ5OTczMGUzLi5jNWQ3YjRl
NjFiMWY0MTU5NDk4ZmIyNTFhZTJlOWM3YTAxNTg1ZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpYmxlUG9zaXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaWJsZVBvc2l0aW9uLm1tCkBAIC00MTgs
MTkgKzQxOCwxNCBAQCAtIChET01SYW5nZSAqKWVuY2xvc2luZ1JhbmdlV2l0aERpY3RhdGlvblBo
cmFzZUFsdGVybmF0aXZlczooTlNBcnJheSAqKilhbHRlcm5hdAogICAgIHVuc2lnbmVkIG9mZnNl
dCA9IG87CiAgICAgCiAgICAgTm9kZSogbm9kZSA9IHAuZGVlcEVxdWl2YWxlbnQoKS5hbmNob3JO
b2RlKCk7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKLSAgICBp
ZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gbmlsOworICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IG5vZGUtPmRvY3VtZW50KCk7CiAgICAgCi0gICAgY29uc3QgVmVjdG9yPERvY3VtZW50TWFy
a2VyKj4mIG1hcmtlcnMgPSBkb2N1bWVudC0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUpOwor
ICAgIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcio+JiBtYXJrZXJzID0gZG9jdW1lbnQubWFy
a2VycygpLm1hcmtlcnNGb3Iobm9kZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzKERvY3Vt
ZW50TWFya2VyOjpEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzKSk7CiAgICAgaWYgKG1h
cmtlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1hcmtlcnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgY29uc3Qg
RG9jdW1lbnRNYXJrZXIqIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0gICAgICAgIGlmIChtYXJrZXIt
PnR5cGUoKSAhPSBEb2N1bWVudE1hcmtlcjo6RGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZl
cykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgCiAgICAgICAgIGlmIChtYXJr
ZXItPnN0YXJ0T2Zmc2V0KCkgPD0gb2Zmc2V0ICYmIG1hcmtlci0+ZW5kT2Zmc2V0KCkgPj0gb2Zm
c2V0KSB7CiAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWFya2VyQWx0ZXJuYXRp
dmVzID0gbWFya2VyLT5hbHRlcm5hdGl2ZXMoKTsKICAgICAgICAgICAgICphbHRlcm5hdGl2ZXMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6bWFya2VyQWx0ZXJuYXRpdmVzLnNp
emUoKV07CkBAIC00NTcsMjEgKzQ1MiwxNiBAQCAtIChET01SYW5nZSAqKWVuY2xvc2luZ1Jhbmdl
V2l0aENvcnJlY3Rpb25JbmRpY2F0b3IKICAgICB1bnNpZ25lZCBvZmZzZXQgPSBvOwogICAgIAog
ICAgIE5vZGUqIG5vZGUgPSBwLmRlZXBFcXVpdmFsZW50KCkuYW5jaG9yTm9kZSgpOwotICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkK
LSAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBub2RlLT5kb2N1
bWVudCgpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcj4mIG1hcmtlcnMg
PSBkb2N1bWVudC0+bWFya2VycygpLT5tYXJrZXJzRm9yTm9kZShub2RlKTsKKyAgICBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiYgbWFya2VycyA9IGRvY3VtZW50Lm1hcmtlcnMoKS5tYXJr
ZXJzRm9yKG5vZGUsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyhEb2N1bWVudE1hcmtlcjo6
U3BlbGxpbmcpKTsKICAgICBpZiAobWFya2Vycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgaSsr
KSB7Ci0gICAgICAgIGNvbnN0IERvY3VtZW50TWFya2VyJiBtYXJrZXIgPSBtYXJrZXJzW2ldOwot
ICAgICAgICBpZiAobWFya2VyLnR5cGUoKSAhPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpCi0g
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCi0gICAgICAgIGlmIChtYXJrZXIuc3RhcnRP
ZmZzZXQoKSA8PSBvZmZzZXQgJiYgbWFya2VyLmVuZE9mZnNldCgpID49IG9mZnNldCkgewotICAg
ICAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQsIG5v
ZGUsIG1hcmtlci5zdGFydE9mZnNldCgpLCBub2RlLCBtYXJrZXIuZW5kT2Zmc2V0KCkpOworICAg
ICAgICBjb25zdCBEb2N1bWVudE1hcmtlciogbWFya2VyID0gbWFya2Vyc1tpXTsKKyAgICAgICAg
aWYgKG1hcmtlci0+c3RhcnRPZmZzZXQoKSA8PSBvZmZzZXQgJiYgbWFya2VyLT5lbmRPZmZzZXQo
KSA+PSBvZmZzZXQpIHsKKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6
Y3JlYXRlKGRvY3VtZW50LCBub2RlLCBtYXJrZXItPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtl
ci0+ZW5kT2Zmc2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGtpdChyYW5nZS5nZXQoKSk7CiAg
ICAgICAgIH0KICAgICB9CkBAIC01ODcsNyArNTc3LDcgQEAgLSAoV2ViVmlzaWJsZVBvc2l0aW9u
ICopc3RhcnRQb3NpdGlvbgogICAgICAgICByZXR1cm4gW3N1cGVyIHN0YXJ0UG9zaXRpb25dOwog
ICAgIAogICAgIFJlbmRlclRleHRDb250cm9sICp0ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4dENv
bnRyb2wob2JqZWN0KTsKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0gdGV4
dENvbnRyb2wtPnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOworICAgIFZpc2libGVQb3NpdGlv
biB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgp
LnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOwogICAgIHJldHVybiBbV2ViVmlzaWJsZVBvc2l0
aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlvbl07CiB9CiAKQEAgLTU5OSw3
ICs1ODksNyBAQCAtIChXZWJWaXNpYmxlUG9zaXRpb24gKillbmRQb3NpdGlvbgogICAgICAgICBy
ZXR1cm4gW3N1cGVyIGVuZFBvc2l0aW9uXTsKICAgICAKICAgICBSZW5kZXJUZXh0Q29udHJvbCAq
dGV4dENvbnRyb2wgPSB0b1JlbmRlclRleHRDb250cm9sKG9iamVjdCk7Ci0gICAgVmlzaWJsZVBv
c2l0aW9uIHZpc2libGVQb3NpdGlvbiA9IHRleHRDb250cm9sLT52aXNpYmxlUG9zaXRpb25Gb3JJ
bmRleCh0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLT52YWx1ZSgpLmxlbmd0
aCgpKTsKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0gdGV4dENvbnRyb2wt
PnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS52aXNpYmxlUG9zaXRpb25Gb3JJbmRleCh0ZXh0Q29u
dHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZhbHVlKCkubGVuZ3RoKCkpOwogICAgIHJl
dHVybiBbV2ViVmlzaWJsZVBvc2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3Np
dGlvbl07CiB9CiAKQEAgLTYxNSw3ICs2MDUsNyBAQCAtIChXZWJWaXNpYmxlUG9zaXRpb24gKilz
dGFydFBvc2l0aW9uCiAgICAgICAgIHJldHVybiBbc3VwZXIgc3RhcnRQb3NpdGlvbl07CiAgICAg
CiAgICAgUmVuZGVyVGV4dENvbnRyb2wgKnRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJv
bChvYmplY3QpOwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29u
dHJvbC0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoMCk7CisgICAgVmlzaWJsZVBvc2l0aW9uIHZp
c2libGVQb3NpdGlvbiA9IHRleHRDb250cm9sLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkudmlz
aWJsZVBvc2l0aW9uRm9ySW5kZXgoMCk7CiAgICAgcmV0dXJuIFtXZWJWaXNpYmxlUG9zaXRpb24g
X3dyYXBWaXNpYmxlUG9zaXRpb246dmlzaWJsZVBvc2l0aW9uXTsKIH0KIApAQCAtNjI3LDcgKzYx
Nyw3IEBAIC0gKFdlYlZpc2libGVQb3NpdGlvbiAqKWVuZFBvc2l0aW9uCiAgICAgICAgIHJldHVy
biBbc3VwZXIgZW5kUG9zaXRpb25dOwogICAgIAogICAgIFJlbmRlclRleHRDb250cm9sICp0ZXh0
Q29udHJvbCA9IHRvUmVuZGVyVGV4dENvbnRyb2wob2JqZWN0KTsKLSAgICBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uID0gdGV4dENvbnRyb2wtPnZpc2libGVQb3NpdGlvbkZvckluZGV4
KHRleHRDb250cm9sLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCktPnZhbHVlKCkubGVuZ3RoKCkp
OworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4
dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KHRleHRDb250cm9s
LT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkudmFsdWUoKS5sZW5ndGgoKSk7CiAgICAgcmV0dXJu
IFtXZWJWaXNpYmxlUG9zaXRpb24gX3dyYXBWaXNpYmxlUG9zaXRpb246dmlzaWJsZVBvc2l0aW9u
XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3SU9TLm1tCmluZGV4
IDU1YzVlZjUyYTg5ODM2NGM0YjU1ZjhmZTk3ZjMwYmU4NDhjZWNlZjIuLmU4NjE1NmEzNjllNTI1
NmY5YmZiY2RhZGQyY2U0OTU4YmZjMDUzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9z
L1dlYlZpZXcvV2ViUERGVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3
L1dlYlBERlZpZXdJT1MubW0KQEAgLTczLDE0ICs3MywxNCBAQCArIChOU0FycmF5ICopc3VwcG9y
dGVkTUlNRVR5cGVzCiAKICsgKENHQ29sb3JSZWYpc2hhZG93Q29sb3IKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFJldGFpblB0cjxDR0NvbG9yUmVmPiwgc2hhZG93Q29sb3IsIChBZG9wdENG
LCBjcmVhdGVDR0NvbG9yV2l0aERldmljZVdoaXRlKDAuMCwgMi4wIC8gMy4wKSkpOwotICAgIHJl
dHVybiBzaGFkb3dDb2xvci5nZXQoKTsKKyAgICBzdGF0aWMgQ0dDb2xvclJlZiBzaGFkb3dDb2xv
ciA9IGNyZWF0ZUNHQ29sb3JXaXRoRGV2aWNlV2hpdGUoMCwgMi4wIC8gMyk7CisgICAgcmV0dXJu
IHNoYWRvd0NvbG9yOwogfQogCiArIChDR0NvbG9yUmVmKWJhY2tncm91bmRDb2xvcgogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPENHQ29sb3JSZWY+LCBiYWNrZ3JvdW5kQ29s
b3IsIChBZG9wdENGLCBjcmVhdGVDR0NvbG9yV2l0aERldmljZVdoaXRlKDIwNC4wIC8gMjU1LjAs
IDEuMCkpKTsKLSAgICByZXR1cm4gYmFja2dyb3VuZENvbG9yLmdldCgpOworICAgIHN0YXRpYyBD
R0NvbG9yUmVmIGJhY2tncm91bmRDb2xvciA9IGNyZWF0ZUNHQ29sb3JXaXRoRGV2aWNlV2hpdGUo
MjA0LjAgLyAyNTUsIDEpOworICAgIHJldHVybiBiYWNrZ3JvdW5kQ29sb3I7CiB9CiAKIC8vIFRo
aXMgaXMgYSBzZWNyZXQgcHJvdG9jb2wgZm9yIFdlYkRhdGFTb3VyY2UgYW5kIFdlYkZyYW1lVmll
dyB0byBvZmZlciB1cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCAK
QEAgLTI4OSw3ICsyODksNyBAQCAtICh2b2lkKV9jaGVja1BERlRpdGxlCiAgICAgaWYgKFt0aXRs
ZSBsZW5ndGhdKSB7CiAgICAgICAgIFtfdGl0bGUgcmVsZWFzZV07CiAgICAgICAgIF90aXRsZSA9
IFt0aXRsZSBjb3B5XTsKLSAgICAgICAgY29yZShbc2VsZiBfZnJhbWVdKS0+bG9hZGVyKCktPmNs
aWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVUaXRsZShTdHJpbmdXaXRoRGlyZWN0aW9uKHRpdGxl
LCBMVFIpKTsKKyAgICAgICAgY29yZShbc2VsZiBfZnJhbWVdKS0+bG9hZGVyKCkuY2xpZW50KCku
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoU3RyaW5nV2l0aERpcmVjdGlvbih0aXRsZSwgTFRSKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlBE
RlZpZXdQbGFjZWhvbGRlci5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmll
d1BsYWNlaG9sZGVyLm1tCmluZGV4IDA3NjczZmNlOTgwMGY3MjcwOWFiYmVhZmVhNTk5ZDY5NDQ4
NjU5YzIuLmYxYjQ3ODU4NmQyZDA2NWQwNzAyMGM4YmRmM2FkODVhYzc4ODZkNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCkBA
IC00OCw2ICs0OCw4IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNWaWV3RXh0cmFzLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViUERGRG9jdW1lbnRFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJW
aWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYv
VmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtNDg3LDExICs0ODksMTEgQEAgLSAodm9pZClzaW11bGF0ZUNsaWNrT25MaW5rVG9V
Ukw6KE5TVVJMICopVVJMCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0cnVjdCBhbiBl
dmVudCB0byBzaW11bGF0ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3Vz
ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIDAsIDEs
IDAsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCAwLCB0cnVlKTsK
KyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgMCwgdHJ1ZSk7CiAKICAgICAvLyBD
YWxsIHRvIHRoZSBmcmFtZSBsb2FkZXIgYmVjYXVzZSB0aGlzIGlzIHdoZXJlIG91ciBzZWN1cml0
eSBjaGVja3MgYXJlIG1hZGUuCiAgICAgRnJhbWUqIGZyYW1lID0gY29yZShbX2RhdGFTb3VyY2Ug
d2ViRnJhbWVdKTsKLSAgICBmcmFtZS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVM
b2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VS
ZXF1ZXN0KFVSTCkpLCBmYWxzZSwgZmFsc2UsIGV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZl
cnJlcik7CisgICAgZnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVx
dWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0
KFVSTCkpLCBmYWxzZSwgZmFsc2UsIGV2ZW50LmdldCgpLCAwLCBNYXliZVNlbmRSZWZlcnJlcik7
CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlL
aXREZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRl
LmgKaW5kZXggMDZhY2YzNGI1ZjAyNTllMzMyZWM3MmEzYzM2Yjk3ODZkMzljMTU2ZC4uZGRkNjU4
NmJkMGYyYmFmYzljYTJmM2U3Mzg3ZWVhZmQxYzVkNmQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9p
b3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAKIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRGaW5pc2hMb2FkRm9yRnJhbWU6KFdlYkZyYW1l
ICopZnJhbWU7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmFpbExvYWRX
aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciBmb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZTsKIC0g
KHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2VGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZTsKLS0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXdlYlZpZXcgZGlkUmVjZWl2ZURvY1R5cGVGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZTsKKy0g
KHZvaWQpd2ViVmlld0RpZFJlY2VpdmVNb2JpbGVEb2NUeXBlOihXZWJWaWV3ICopd2ViVmlldzsK
IC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKWFXZWJWaWV3IGRpZFJlY2VpdmVWaWV3cG9ydEFy
Z3VtZW50czooTlNEaWN0aW9uYXJ5ICopYXJndW1lbnRzOwogLSAodm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopYVdlYlZpZXcgbmVlZHNTY3JvbGxOb3RpZmljYXRpb25zOihOU051bWJlciAqKWFOdW1i
ZXIgZm9yRnJhbWU6KFdlYkZyYW1lICopYUZyYW1lOwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3
ICopd2ViVmlldyBzYXZlU3RhdGVUb0hpc3RvcnlJdGVtOihXZWJIaXN0b3J5SXRlbSAqKWl0ZW0g
Zm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWU7Cg==
</data>
<flag name="review"
          id="241834"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>